本文来源电子发烧友社区,作者:许浩然, 帖子地址:https://bbs.elecfans.com/jishu_2028169_1_1.html
1、首先说明下我的硬件环境: 笔记本电脑(P570WM),双系统(Win7+Ubuntu 20.04)。
2、其次我认为整个开发环境分为两个部分: 开发-编译环境(Ubuntu 20.04);
烧录环境(Win 7);
3、参考文献:
鸿蒙官方网站相关资料,链接如下:https://device.harmonyos.com/cn/docs/start/introduce/oem_quickstart_3861_build-0000001054781998。
4、构建开发-编译环境
如前文所说,本次环境搭建为一台电脑上的双系统环境,故不存在虚拟机相关问题,只存在重启电脑切换系统的情况。
A)确认Ubuntu默认的shell 程序是不是bash,命令如下:
ls -l /bin/sh
通过执行命令,我们可以看到Ubuntu 20.04 默认的是dash,不是bash,所以我们需要把shell的默认程序切换为bash,我用到的命令是: sudo dpkg-reconfigure dash
输入完密码后会弹出一个确认shell 默认程序的对话框,选择No,即默认不用dash,即可,系统会自动切换成bash,至此第一步完成。
B)确认Python 版本,要求使用Python3.7以上的版本,查看本级所用版本的命令如下:
python3 --version
通过执行命令可以看到Ubuntu20.04自带的Python版本是3.8.2 大于3.7,所以可以直接使用。
C)将Pyhton 软连接到Python3.8上,通过命令:
python --version
我们可以看到Ubuntu并没有默认的Pyhton命令,所以我们需要将Python3.8 软连接到Python上,具体命令如下:
cd /usr/bin && sudo rm python3 && sudo ln -s /usr/bin/python3.8 python && sudo ln -s /usr/bin/python3.8 python3 && python3 --version && python --version
执行完这条命令后,会显示两个Python的版本均为3.8.2,则表示软连接修改成功。
D)安装并省级Pyrhon包管理工具,命令如下
sudo apt-get install python3-setuptools python3-pip -y
E)安装Python的setuptools模块,命令如下:
pip3install setuptools
执行完命令,提示我们系统已经安装。
F)安装GUI menuconfig工具(Kconfiglib),命令如下:
sudo pip3 install kconfiglib
敲完回车后,秒安装完成
G) 安装pycryptodome,命令如下:
sudo pip3 install pycryptodome
这个下载有点慢,大家可以抽空上个厕所。
H)安装six,命令如下:
sudo pip3 install six --upgrade --ignore-instalLEDsix
在执行完上述命令,安装完six之后,我发现系统提示testsources 没有装,so,一个命令安装上就好了,命令如下:
sudo pip3 install testresources
I)安装ecdsa,命令如下:
sudo pip3 install ecdsa
J)安装Scons,命令如下:
sudo apt-get install scons -y
K)安装gn,这个没有直接的命令,需要大家先下载到本地,然后手动安装
wget https://repo.huaweicloud.com/harmonyos/compiler/gn/1523/linux/gn.1523.tar
解压gn安装包至~/gn路径下。
tar -xvf gn.1523.tar -C ~/
设置环境变量。
vim ~/.bashrc
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=~/gn:$PATH
生效环境变量。
source ~/.bashrc
L) 安装ninja
wget https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar
解压ninja安装包至~/ninja路径下。
tar -xvf ninja.1.9.0.tar -C ~/
设置环境变量。
vim ~/.bashrc
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=~/ninja:$PATH
生效环境变量。
source ~/.bashrc
M)安装最后一个,也是最重要的一个软件 gcc_riscv32
M-1、首先准备好编译环境,命令如下:
sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install flex bison && sudo apt-get install texinfo
M-2、其次从git clone 源代码
git clone --recursive https://github.com/riscv/riscv-gnu-toolchain
M-3、打开文件夹riscv-gnu-toolchain,先删除空文件夹,以防止下载newlib,binutils,gcc时冲突。
cd riscv-gnu-toolchain && rm -RFriscv-newlib && rm -rf riscv-binutils && rm -rf riscv-gcc
M-4、下载riscv-newlib-3.0.0。
git clone -b riscv-newlib-3.0.0 https://github.com/riscv/riscv-newlib.git
M-5、下载riscv-binutils-2.31.1。
git clone -b riscv-binutils-2.31.1 https://github.com/riscv/riscv-binutils-gdb.git
M-6、下载riscv-gcc-7.3.0。
git clone -b riscv-gcc-7.3.0 https://github.com/riscv/riscv-gcc
M-7、下载riscv-gcc-7.3.0补丁。
这里官方的打补丁操作没看懂,也没操作成功,最后根据git的diff,手动修改了对应代码文件,没遇到沙问题。
M-8、下载GMP 6.1.2,
wgethttps://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2
并解压安装。
sudo tar -jxvf gmp-6.1.2.tar.bz2 && mkdir build_gmp && cd build_gmp && ../gmp-6.1.2/configure --prefix=/usr/local/gmp-6.1.2 --disable-shared && make && make install
(在这里遇到官方网站的一个Bug,居然把mpfr的安装命令放在了gmp下,还好我及时发现了,没有在这一步浪费太多时间。)
M-9、下载mpfr-4.0.2 ,
wget https://www.mpfr.org/mpfr-4.0.2/mpfr-4.0.2.tar.gz
并解压安装。
tar -xvf mpfr-4.0.2.tar.gz && mkdir build_mpfr && cd build_mpfr && ../mpfr-4.0.2/configure --prefix=/usr/local/mpfr-4.0.2 --with-gmp=/usr/local/gmp-6.1.2 --disable-shared && make && make install
M-10、下载mpc-1.1.0 ,
wgethttps://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
并解压安装。
tar -xvf mpc-1.1.0.tar.gz && mkdir build_mpc && cd build_mpc && ../mpc-1.1.0/configure --prefix=/usr/local/mpc-1.1.0 --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.2 --disable-shared && make && make install
M-11、打开文件夹riscv-gnu-toolchain,新建工具链输出目录。
cd /opt && mkdir gcc_riscv32
M-12、编译bintutils。
mkdir build_binutils && cd build_binutils && ../riscv-binutils-gdb/configure --prefix=/opt/gcc_riscv32 --target=riscv32-unknown-elf --with-arch=rv32imc --with-abi=ilp32 --disable-__cxa_atexit --disable-libgomp --disable-libmudflap --enable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-multilib --enable-poison-system-directories --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-newlib --with-system-zlib CFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" CFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" --bindir=/opt/gcc_riscv32/bin --libexecdir=/opt/gcc_riscv32/riscv32 --libdir=/opt/gcc_riscv32 --includedir=/opt/gcc_riscv32 && make -j16 && make install
M-13、编译newlib。
mkdir build_newlib && cd build_newlib && ../riscv-newlib/configure --prefix=/opt/gcc_riscv32 --target=riscv32-unknown-elf --with-arch=rv32imc --with-abi=ilp32 --disable-__cxa_atexit --disable-libgomp --disable-libmudflap --enable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-multilib --enable-poison-system-directories --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-newlib --with-system-zlib CFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" CFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" --bindir=/opt/gcc_riscv32/bin --libexecdir=/opt/gcc_riscv32 --libdir=/opt/gcc_riscv32 --includedir=/opt/gcc_riscv32 && make -j16 && make install
M-14、编译gcc。
mkdir build_gcc && cd build_gcc && ../riscv-gcc/configure --prefix=/opt/gcc_riscv32 --target=riscv32-unknown-elf --with-arch=rv32imc --with-abi=ilp32 --disable-__cxa_atexit --disable-libgomp --disable-libmudflap --enable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-multilib --enable-poison-system-directories --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-newlib --with-system-zlib CFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" LDFLAGS="-Wl,-z,relro,-z,now,-z,noexecstack" CXXFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" CFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" --with-headers="/opt/gcc-riscv32/riscv32-unknown-elf/include" --with-mpc=/usr/local/mpc-1.1.0 --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.2 && make -j16 && make install
M-15、设置环境变量。
vim ~/.bashrc
M-16、将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=/opt/gcc_riscv32/bin:$PATH
M-17、生效环境变量。
source ~/.bashrc
M-18、最终执行如下命令出现版本号,即表示编译器安装成功
riscv32-unknown-elf-gcc -v
在构建环境中的问题:
1、git clone 速度太慢,经常超时,改用http下载方式解决,下载速度很快
2、GMP 安装命令错误,导致执行了两遍,均失败后,check了下命令发现有问题,修改成正确命令后,问题解决。
3、编译newlib时,生成make文件时报错,没有找到riscv32-unknown-elf-gcc命令,下载了gcc_riscv32-linux-7.3.0.tar.gz,解压后将目录加到环境变量后,终端执行riscv32-unknown-elf-gcc 命令正常,退出终端重新进入,再生成make文件不再报错,问题解决。
4、安装newlib时,又报错riscv32-unknown-elf-ranlib命令找不到,后发现是root没有权限,以root身份修改/etc/sudoers后解决。
1、首先说明下我的硬件环境: 笔记本电脑(P570WM),双系统(Win7+Ubuntu 20.04)。
2、其次我认为整个开发环境分为两个部分: 开发-编译环境(Ubuntu 20.04);
烧录环境(Win 7);
3、参考文献:
鸿蒙官方网站相关资料,链接如下:https://device.harmonyos.com/cn/docs/start/introduce/oem_quickstart_3861_build-0000001054781998。
4、构建开发-编译环境
如前文所说,本次环境搭建为一台电脑上的双系统环境,故不存在虚拟机相关问题,只存在重启电脑切换系统的情况。
A)确认Ubuntu默认的shell 程序是不是bash,命令如下:
ls -l /bin/sh
通过执行命令,我们可以看到Ubuntu 20.04 默认的是dash,不是bash,所以我们需要把shell的默认程序切换为bash,我用到的命令是: sudo dpkg-reconfigure dash
输入完密码后会弹出一个确认shell 默认程序的对话框,选择No,即默认不用dash,即可,系统会自动切换成bash,至此第一步完成。
B)确认Python 版本,要求使用Python3.7以上的版本,查看本级所用版本的命令如下:
python3 --version
通过执行命令可以看到Ubuntu20.04自带的Python版本是3.8.2 大于3.7,所以可以直接使用。
C)将Pyhton 软连接到Python3.8上,通过命令:
python --version
我们可以看到Ubuntu并没有默认的Pyhton命令,所以我们需要将Python3.8 软连接到Python上,具体命令如下:
cd /usr/bin && sudo rm python3 && sudo ln -s /usr/bin/python3.8 python && sudo ln -s /usr/bin/python3.8 python3 && python3 --version && python --version
执行完这条命令后,会显示两个Python的版本均为3.8.2,则表示软连接修改成功。
D)安装并省级Pyrhon包管理工具,命令如下
sudo apt-get install python3-setuptools python3-pip -y
E)安装Python的setuptools模块,命令如下:
pip3install setuptools
执行完命令,提示我们系统已经安装。
F)安装GUI menuconfig工具(Kconfiglib),命令如下:
sudo pip3 install kconfiglib
敲完回车后,秒安装完成
G) 安装pycryptodome,命令如下:
sudo pip3 install pycryptodome
这个下载有点慢,大家可以抽空上个厕所。
H)安装six,命令如下:
sudo pip3 install six --upgrade --ignore-instalLEDsix
在执行完上述命令,安装完six之后,我发现系统提示testsources 没有装,so,一个命令安装上就好了,命令如下:
sudo pip3 install testresources
I)安装ecdsa,命令如下:
sudo pip3 install ecdsa
J)安装Scons,命令如下:
sudo apt-get install scons -y
K)安装gn,这个没有直接的命令,需要大家先下载到本地,然后手动安装
wget https://repo.huaweicloud.com/harmonyos/compiler/gn/1523/linux/gn.1523.tar
解压gn安装包至~/gn路径下。
tar -xvf gn.1523.tar -C ~/
设置环境变量。
vim ~/.bashrc
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=~/gn:$PATH
生效环境变量。
source ~/.bashrc
L) 安装ninja
wget https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar
解压ninja安装包至~/ninja路径下。
tar -xvf ninja.1.9.0.tar -C ~/
设置环境变量。
vim ~/.bashrc
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=~/ninja:$PATH
生效环境变量。
source ~/.bashrc
M)安装最后一个,也是最重要的一个软件 gcc_riscv32
M-1、首先准备好编译环境,命令如下:
sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install flex bison && sudo apt-get install texinfo
M-2、其次从git clone 源代码
git clone --recursive https://github.com/riscv/riscv-gnu-toolchain
M-3、打开文件夹riscv-gnu-toolchain,先删除空文件夹,以防止下载newlib,binutils,gcc时冲突。
cd riscv-gnu-toolchain && rm -RFriscv-newlib && rm -rf riscv-binutils && rm -rf riscv-gcc
M-4、下载riscv-newlib-3.0.0。
git clone -b riscv-newlib-3.0.0 https://github.com/riscv/riscv-newlib.git
M-5、下载riscv-binutils-2.31.1。
git clone -b riscv-binutils-2.31.1 https://github.com/riscv/riscv-binutils-gdb.git
M-6、下载riscv-gcc-7.3.0。
git clone -b riscv-gcc-7.3.0 https://github.com/riscv/riscv-gcc
M-7、下载riscv-gcc-7.3.0补丁。
这里官方的打补丁操作没看懂,也没操作成功,最后根据git的diff,手动修改了对应代码文件,没遇到沙问题。
M-8、下载GMP 6.1.2,
wgethttps://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2
并解压安装。
sudo tar -jxvf gmp-6.1.2.tar.bz2 && mkdir build_gmp && cd build_gmp && ../gmp-6.1.2/configure --prefix=/usr/local/gmp-6.1.2 --disable-shared && make && make install
(在这里遇到官方网站的一个Bug,居然把mpfr的安装命令放在了gmp下,还好我及时发现了,没有在这一步浪费太多时间。)
M-9、下载mpfr-4.0.2 ,
wget https://www.mpfr.org/mpfr-4.0.2/mpfr-4.0.2.tar.gz
并解压安装。
tar -xvf mpfr-4.0.2.tar.gz && mkdir build_mpfr && cd build_mpfr && ../mpfr-4.0.2/configure --prefix=/usr/local/mpfr-4.0.2 --with-gmp=/usr/local/gmp-6.1.2 --disable-shared && make && make install
M-10、下载mpc-1.1.0 ,
wgethttps://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
并解压安装。
tar -xvf mpc-1.1.0.tar.gz && mkdir build_mpc && cd build_mpc && ../mpc-1.1.0/configure --prefix=/usr/local/mpc-1.1.0 --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.2 --disable-shared && make && make install
M-11、打开文件夹riscv-gnu-toolchain,新建工具链输出目录。
cd /opt && mkdir gcc_riscv32
M-12、编译bintutils。
mkdir build_binutils && cd build_binutils && ../riscv-binutils-gdb/configure --prefix=/opt/gcc_riscv32 --target=riscv32-unknown-elf --with-arch=rv32imc --with-abi=ilp32 --disable-__cxa_atexit --disable-libgomp --disable-libmudflap --enable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-multilib --enable-poison-system-directories --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-newlib --with-system-zlib CFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" CFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" --bindir=/opt/gcc_riscv32/bin --libexecdir=/opt/gcc_riscv32/riscv32 --libdir=/opt/gcc_riscv32 --includedir=/opt/gcc_riscv32 && make -j16 && make install
M-13、编译newlib。
mkdir build_newlib && cd build_newlib && ../riscv-newlib/configure --prefix=/opt/gcc_riscv32 --target=riscv32-unknown-elf --with-arch=rv32imc --with-abi=ilp32 --disable-__cxa_atexit --disable-libgomp --disable-libmudflap --enable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-multilib --enable-poison-system-directories --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-newlib --with-system-zlib CFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" CFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" --bindir=/opt/gcc_riscv32/bin --libexecdir=/opt/gcc_riscv32 --libdir=/opt/gcc_riscv32 --includedir=/opt/gcc_riscv32 && make -j16 && make install
M-14、编译gcc。
mkdir build_gcc && cd build_gcc && ../riscv-gcc/configure --prefix=/opt/gcc_riscv32 --target=riscv32-unknown-elf --with-arch=rv32imc --with-abi=ilp32 --disable-__cxa_atexit --disable-libgomp --disable-libmudflap --enable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-multilib --enable-poison-system-directories --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-newlib --with-system-zlib CFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" LDFLAGS="-Wl,-z,relro,-z,now,-z,noexecstack" CXXFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" CFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" --with-headers="/opt/gcc-riscv32/riscv32-unknown-elf/include" --with-mpc=/usr/local/mpc-1.1.0 --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.2 && make -j16 && make install
M-15、设置环境变量。
vim ~/.bashrc
M-16、将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=/opt/gcc_riscv32/bin:$PATH
M-17、生效环境变量。
source ~/.bashrc
M-18、最终执行如下命令出现版本号,即表示编译器安装成功
riscv32-unknown-elf-gcc -v
在构建环境中的问题:
1、git clone 速度太慢,经常超时,改用http下载方式解决,下载速度很快
2、GMP 安装命令错误,导致执行了两遍,均失败后,check了下命令发现有问题,修改成正确命令后,问题解决。
3、编译newlib时,生成make文件时报错,没有找到riscv32-unknown-elf-gcc命令,下载了gcc_riscv32-linux-7.3.0.tar.gz,解压后将目录加到环境变量后,终端执行riscv32-unknown-elf-gcc 命令正常,退出终端重新进入,再生成make文件不再报错,问题解决。
4、安装newlib时,又报错riscv32-unknown-elf-ranlib命令找不到,后发现是root没有权限,以root身份修改/etc/sudoers后解决。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
wi-fi
+关注
关注
14文章
2082浏览量
124173 -
HarmonyOS
+关注
关注
79文章
1963浏览量
29937 -
HiSpark
+关注
关注
1文章
156浏览量
6889
发布评论请先 登录
相关推荐
如何记住ESP8266中的Wi-Fi凭据?
您好,我正在与ESP8266合作,在公司进行一个项目。在成功智能配置后,我无法记住 Wi-Fi 凭据。ESP8266软件版本如下:
在GMR
AT版本:1.2.0.0(Jul 1, 2016 20
发表于 07-15 07:07
DA16200 超低功耗 Wi-Fi 模块开发套件 Pro数据手册
电子发烧友网站提供《DA16200 超低功耗 Wi-Fi 模块开发套件 Pro数据手册.rar》资料免费下载
发表于 05-30 17:53
•1次下载
DA16200 超低功耗 Wi-Fi 模块开发套件数据手册
电子发烧友网站提供《DA16200 超低功耗 Wi-Fi 模块开发套件数据手册.rar》资料免费下载
发表于 05-30 17:13
•0次下载
验证物联网Wi-Fi HaLow用例的MM6108-EKH08开发套件来啦
验证物联网Wi-Fi HaLow用例的MM6108-EKH08开发套件来啦 MM6108-EKH08开发套件专为验证物联网Wi-Fi HaLow用例而设计。该
Wi-Fi的诞生与发展
短距离无线通信技术有Wi-Fi、ZigBee、蓝牙以及Z-Wave,今天我们先揭开Wi-Fi的神秘面纱。Chrent短距离无线通信技术——Wi-Fi过去的20多年,Wi-Fi靠着仅有的
Wi-Fi HaLow和传统Wi-Fi的区别
Wi-Fi HaLow和传统Wi-Fi的区别 Wi-Fi是一种无线网络技术,可以连接到互联网或局域网,为用户提供无线上网的便利。随着科技的发展和互联网的普及,Wi-Fi也在不断演进和
康普携手Wi-Fi联盟,RUCKUS Wi-Fi 7系列接入点成Wi-Fi
康普高级副总裁兼网络、智能蜂窝和安全解决方案总裁Bart Giordano对此表示: “我们非常荣幸能与Wi-Fi Alliance形成长期合作伙伴关系,将我们的RUCKUS Wi-Fi 7 接入点平台作为Wi-Fi CERT
BT Wi-Fi模式是否可以通过ModustoolBox对套件进行编程来实现?
想配置用于分析 CYW43439 的 CY8CPROTO-062S2-43439 原型开发套件。
浏览文档我无法弄清楚如何在不同的 Wi-Fi 和蓝牙模式(电源模式、连接模式等)下配置套件
发表于 01-22 06:19
Wi-Fi 6和Wi-Fi 5之间有哪些区别呢?
可提供的速度为10 Gbps,而Wi-Fi 5最高只能提供3.5 Gbps的速度。这意味着Wi-Fi 6可以更快地下载和上传文件,同时更好地支持多个设备同时连接。 2.带宽管理: Wi-Fi
紫光展锐Wi-Fi 6成功通过Wi-Fi联盟认证
近日,紫光展锐Wi-Fi 6产品成功通过Wi-Fi联盟 (简称“WFA”) Qualified Solution 认证,并支持Wi-Fi 6 Release 2,标志着紫光展锐自研
什么是2.4 GHz Wi-Fi? 如何提升2.4 GHz Wi-Fi的性能?
GHz Wi-Fi现在还有用吗? 2.4 GHz Wi-Fi是一种无线通信技术,通过使用2.4 GHz频段的无线电波来传输数据。它是目前最常见的Wi-Fi频段之一,并且被广泛用于家庭和办公
评论