国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】CHAPTER 2 ---- 環境搭建

開發板試用精選 ? 來源:開發板試用 ? 作者:電子發燒友論壇 ? 2022-11-02 11:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文來源電子發燒友社區,作者:許浩然, 帖子地址:https://bbs.elecfans.com/jishu_2028169_1_1.html


1、首先說明下我的硬件環境:
筆記本電腦P570WM),雙系統(Win7+Ubuntu 20.04)。
202346zp5zg8cuuk9yqseo.jpg
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
234508c8xy8ax50y868anx.png
通過執行命令,我們可以看到Ubuntu 20.04 默認的是dash,不是bash,所以我們需要把shell的默認程序切換為bash,我用到的命令是: sudo dpkg-reconfigure dash
輸入完密碼后會彈出一個確認shell 默認程序的對話框,選擇No,即默認不用dash,即可,系統會自動切換成bash,至此第一步完成。
234540vwz73aeca3aku9c7.png
B)確認Python 版本,要求使用Python3.7以上的版本,查看本級所用版本的命令如下:
python3 --version
通過執行命令可以看到Ubuntu20.04自帶的Python版本是3.8.2 大于3.7,所以可以直接使用。

C)將Pyhton 軟連接到Python3.8上,通過命令:
python --version
234701k8hedixmdk8hxtmk.png
我們可以看到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,則表示軟連接修改成功。
234719lltzefuqk8nq8kl3.png
D)安裝并省級Pyrhon包管理工具,命令如下
sudo apt-get install python3-setuptools python3-pip -y
202637lwff13wn1d3zhwxz.png
E)安裝Python的setuptools模塊,命令如下:
pip3install setuptools

202715kl5mkvqqkxeikkev.png
執行完命令,提示我們系統已經安裝。
F)安裝GUI menuconfig工具(Kconfiglib),命令如下:
sudo pip3 install kconfiglib

202809op26a6hmaff9y60a.png
敲完回車后,秒安裝完成
G) 安裝pycryptodome,命令如下:
sudo pip3 install pycryptodome

202843g929dmzym6hv56f1.png
這個下載有點慢,大家可以抽空上個廁所。
H)安裝six,命令如下:

sudo pip3 install six --upgrade --ignore-instalLEDsix

202921sid0up8p1z7bl03m.png
在執行完上述命令,安裝完six之后,我發現系統提示testsources 沒有裝,so,一個命令安裝上就好了,命令如下:
sudo pip3 install testresources
I)安裝ecdsa,命令如下:
sudo pip3 install ecdsa

203413bitfkqip444pib4z.png
J)安裝Scons,命令如下:
sudo apt-get install scons -y

203447chxhahahjbvgpash.png
K)安裝gn,這個沒有直接的命令,需要大家先下載到本地,然后手動安裝
wget https://repo.huaweicloud.com/harmonyos/compiler/gn/1523/linux/gn.1523.tar
解壓gn安裝包至~/gn路徑下。
tar -xvf gn.1523.tar -C ~/

203606d3qw2dd7ust0qo2t.png
設置環境變量。
vim ~/.bashrc
將以下命令拷貝到.bashrc文件的最后一行,保存并退出。
export PATH=~/gn:$PATH

203634q7mi8csoh7obo5bh.png
生效環境變量。
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 ~/

204009nlizozxug3vql8sf.png?? ?
設置環境變量。
vim ~/.bashrc
將以下命令拷貝到.bashrc文件的最后一行,保存并退出。
export PATH=~/ninja:$PATH

204040jy72g4w0ummyu00i.png
生效環境變量。
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

204119tfvw15vviypbvj1z.png
M-2、其次從git clone 源代碼

git clone --recursive https://github.com/riscv/riscv-gnu-toolchain
204150bauvpv0pfu0rfpr6.png
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
210310huacl3yrebqebbny.png?
M-17、生效環境變量。
source ~/.bashrc
M-18、最終執行如下命令出現版本號,即表示編譯器安裝成功
riscv32-unknown-elf-gcc -v
204338b5e48m215a8x0k14.png

在構建環境中的問題:
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
    +關注

    關注

    15

    文章

    2424

    瀏覽量

    129566
  • HarmonyOS
    +關注

    關注

    80

    文章

    2153

    瀏覽量

    36057
  • HiSpark
    +關注

    關注

    1

    文章

    156

    瀏覽量

    7757
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    技術資訊 I Wi-Fi 模塊設計

    本文要點Wi-Fi模塊設計旨在打造一套緊湊且高效的硬件和軟件解決方案,使設備能夠通過Wi-Fi網絡實現通信。Wi-Fi模塊設計是一個復雜的過程,要求研發人員兼具硬件與軟件工程方面的專業知識
    的頭像 發表于 02-27 17:12 ?573次閱讀
    技術資訊 I <b class='flag-5'>Wi-Fi</b> 模塊設計

    Wi-Fi:無線連接的全球通用語

    現代生活中不可或缺的無線連接方式。二、Wi-Fi的核心特點1. 高速率,寬帶寬支持從幾十Mbps到數Gbps的傳輸速率,滿足高清視頻、在線游戲等高帶寬應用需求。2. 廣泛兼容,生態成熟幾乎所有智能終端均內置
    發表于 01-07 09:49

    探索CY8CPROTO - 062S2 - 43439 PSoC? 62S2 Wi-Fi藍牙原型套件

    探索CY8CPROTO - 062S2 - 43439 PSoC? 62S2 Wi-Fi藍牙原型套件 引言 在物聯網(IoT)和可穿戴設備蓬
    的頭像 發表于 12-20 14:50 ?1519次閱讀

    Nordic發布nRF7002 EBII 開發板, 支持Wi-Fi 6, 解鎖nRF54L新玩法

    Wi-Fi 6 功能,幫助開發人員創建高性能、高能效的Wi-Fi 6 物聯網解決方案。 基于 Nordic 的 nRF7002 Wi-Fi 協同 IC,nRF7002 EBII幫助 采用
    發表于 12-10 11:58

    Wi-Fi模塊選型指南 | 低功耗藍牙/Wi-Fi 6模塊推薦 | 物聯網設備集成攻略

    物聯網的快速發展,Wi-Fi技術的成熟的情況下,越來越多的場景需要用到Wi-Fi來無線傳輸數據,尤其是移動設備中,怎么再設備中選擇合適的Wi-Fi模塊呢?下面我們來介紹下Wi-Fi模塊
    的頭像 發表于 12-09 11:27 ?1073次閱讀
    <b class='flag-5'>Wi-Fi</b>模塊選型指南 | 低功耗藍牙/<b class='flag-5'>Wi-Fi</b> 6模塊推薦 | 物聯網設備集成攻略

    淺談Wi-Fi 6E與Wi-Fi 7的關鍵器件——BAW濾波器新技術

    作者: Qorvo 亞太區無線連接事業部高級行銷經理林健富 ? 2020年1月,Wi-Fi聯盟正式宣布開放6GHz頻段(5925MHz-7125MHz),并將其命名為Wi-Fi 6E。2020年4月
    發表于 09-19 18:29 ?2137次閱讀
    淺談<b class='flag-5'>Wi-Fi</b> 6E與<b class='flag-5'>Wi-Fi</b> 7的關鍵器件——BAW濾波器新技術

    如何更新 NuMaker IoT 板上的 Wi-Fi 模塊固件?

    更新 NuMaker IoT 板上的 Wi-Fi 模塊固件
    發表于 09-04 08:28

    基于 SSID 的 Wi-Fi 定位:與其他定位服務的性能比較

    ,我們將使用 nRF9160 DK、nRF7002 EK和 PPK2 執行并展示實際功耗和準確性測量,以比較 nRF Cloud 提供的不同定位服務的性能。 背景知識 Wi-Fi 定位服務 Wi-Fi
    發表于 08-31 21:01

    LitePoint Wi-Fi測試軟件減輕客戶設計負擔

    Wi-Fi 7于一年多前獲得Wi-Fi聯盟認證以來,作為最新一代通信技術,Wi-Fi正逐步成為用戶實現無所不在無線連接的新選擇。隨著每一代Wi-Fi信號復雜性的提升,建議將硬件測試納
    的頭像 發表于 08-06 15:34 ?1199次閱讀
    LitePoint <b class='flag-5'>Wi-Fi</b>測試軟件減輕客戶設計負擔

    Wi-Fi 8:開啟極高可靠性 (UHR) 連接的新紀元——2

    不連續的頻譜 (non-continuous spectrum) 環境下,也能夠執行前導碼打孔操作。 圖4 展示了Wi-Fi 7中MRU的顯著效果,其能讓RU將信號干擾所導致的可用頻道損耗從75%降低
    發表于 06-13 11:15

    Wi-Fi 8:開啟極高可靠性 (UHR) 連接的新紀元——1

    、5GHz與6GHz。關于標準正式發布的年份,業界目前預估為2028年,但真正的標準制定完成日期仍需以IEEE 與Wi-Fi Alliance 工作小組的進度為準。 圖2展示了IEEE正在進行
    發表于 06-13 11:09

    Wi-Fi HaLow如何突破傳統Wi-Fi性能瓶頸?

    視頻推薦在萬物互聯的時代,傳統Wi-Fi在覆蓋范圍、功耗、連接數上漸顯不足。而Wi-FiHaLow的誕生,正在用黑科技打破傳統Wi-Fi的性能瓶頸!今天,我們一起來探究Wi-FiHaL
    的頭像 發表于 04-22 11:38 ?1126次閱讀
    <b class='flag-5'>Wi-Fi</b> HaLow如何突破傳統<b class='flag-5'>Wi-Fi</b>性能瓶頸?

    基于 Wi-Fi 的定位服務

    以下捕獲使用 location_wifi_get 函數請求 Wi-Fi 定位服務。該事件的總功耗為 125.85mC,日志顯示精確度為 30.0m。 Got location: method
    發表于 04-17 15:16

    nRF Cloud Wi-Fi 定位服務

    、Predictive-GPS、Single-Cell、Multi-Cell 和 Wi-Fi 定位。通過利用 nRF Cloud 的優化定位算法,基于 Nordic SoC 和 模組的產品可在定位用例
    發表于 04-17 15:07

    Wi-Fi 定位服務

    Wi-Fi 是一種著名的無線網絡技術,用于設備的局域網和互聯網接入。Wi-Fi 通過 Wi-Fi 網絡為家庭、辦公室和學校等環境提供便捷的無線互聯網接入服務。
    發表于 04-17 15:01