0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙OpenHarmony【輕量系統(tǒng) 環(huán)境搭建】 (基于Hi3861開發(fā)板)

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-26 17:47 ? 次閱讀

安裝Hi3861開發(fā)板特有環(huán)境

除上述[安裝庫和工具集]和[安裝編譯工具]外,針對Hi3861開發(fā)板還需要安裝特定的編譯工具。

工具要求

表1 Hi3861 WLAN模組需要安裝的編譯工具

開發(fā)工具用途
SCons3.0.4+編譯構(gòu)建工具
python模塊:setuptools、kconfiglib、pycryptodome、six、ecdsa編譯構(gòu)建工具
gcc riscv32編譯構(gòu)建工具

操作步驟

相關(guān)操作在Ubuntu環(huán)境下進(jìn)行。

安裝Scons

  1. 運(yùn)行如下命令,安裝SCons安裝包。

    python3 -m pip install scons
    
  2. 運(yùn)行如下命令,查看是否安裝成功。如果安裝成功,查詢結(jié)果下圖所示。

    scons -v
    

    圖1 SCons安裝成功界面,版本要求3.0.4以上

    hi3861-scons-install-success

鴻蒙開發(fā)指導(dǎo)文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

安裝python模塊

  1. 運(yùn)行如下命令,安裝python模塊setuptools。
    pip3 install setuptools
    
  2. 安裝GUI menuconfig工具(Kconfiglib),建議安裝Kconfiglib 13.2.0+版本,任選如下一種方式。
    • 命令行方式:
      sudo pip3 install kconfiglib
      
    • 安裝包方式:
      1. 下載.whl文件(例如:kconfiglib-13.2.0-py2.py3-none-any.whl)。 下載路徑:“[https://pypi.org/project/kconfiglib#files]”
      2. 運(yùn)行如下命令,安裝.whl文件。
        sudo pip3 install kconfiglib-13.2.0-py2.py3-none-any.whl
        
  3. 安裝pycryptodome,任選如下一種方式。
    安裝升級文件簽名依賴的Python組件包,包括:pycryptodome、six、ecdsa。安裝ecdsa依賴six,請先安裝six,再安裝ecdsa。
    • 命令行方式:
      sudo pip3 install pycryptodome
      
    • 安裝包方式:
      1. 下載.whl文件(例如:pycryptodome-3.9.9-cp38-cp38-manylinux1_x86_64.whl)。 下載路徑:“[https://pypi.org/project/pycryptodome/#files]”。
      2. 運(yùn)行如下命令,安裝.whl文件。
        sudo pip3 install pycryptodome-3.9.9-cp38-cp38-manylinux1_x86_64.whl
        
  4. 安裝six,任選如下一種方式。
    • 命令行方式:
      sudo pip3 install six --upgrade --ignore-installed six
      
    • 安裝包方式:
      1. 下載.whl文件(例如:six-1.12.0-py2.py3-none-any.whl)。 下載路徑:“[https://pypi.org/project/six/#files]”
      2. 運(yùn)行如下命令,安裝.whl文件。
        sudo pip3 install six-1.12.0-py2.py3-none-any.whl
        
  5. 安裝ecdsa,任選如下一種方式。
    • 命令行方式:
      sudo pip3 install ecdsa
      
    • 安裝包方式:
      1. 下載.whl文件(例如:ecdsa-0.14.1-py2.py3-none-any.whl)。 下載路徑:“[https://pypi.org/project/ecdsa/#files]”
      2. 運(yùn)行如下命令,安裝.whl文件。
        sudo pip3 install ecdsa-0.14.1-py2.py3-none-any.whl
        

安裝gcc_riscv32(WLAN模組類編譯工具鏈)

須知:

  • Hi3861開發(fā)板平臺僅支持使用libgcc運(yùn)行時庫的靜態(tài)鏈接,不建議開發(fā)者使用libgcc運(yùn)行時庫的動態(tài)鏈接,以免產(chǎn)品需遵從GPLV3許可證。
  • 通過下述步驟2-14,編譯好了gcc_riscv32鏡像,提供給開發(fā)者[直接下載]使用。直接下載gcc_riscv32鏡像的開發(fā)者可省略下述2-14步。
  1. 打開Linux編譯服務(wù)器終端。
  2. 下載riscv-gnu-toolchain交叉編譯工具鏈。
    git clone --recursive https://gitee.com/mirrors/riscv-gnu-toolchain.git
    
  3. 打開文件夾riscv-gnu-toolchain,先刪除空文件夾,以防止下載newlib,binutils,gcc時沖突。
    cd riscv-gnu-toolchain && rm -rf riscv-newlib && rm -rf riscv-binutils && rm -rf riscv-gcc
    
  4. 下載riscv-newlib-3.0.0。
    git clone -b riscv-newlib-3.0.0 https://github.com/riscv/riscv-newlib.git
    
  5. 下載riscv-binutils-2.31.1。
    git clone -b riscv-binutils-2.31.1 https://github.com/riscv/riscv-binutils-gdb.git
    
  6. 下載riscv-gcc-7.3.0。
    git clone -b riscv-gcc-7.3.0 https://github.com/riscv/riscv-gcc
    
  7. 添加riscv-gcc-7.3.0補(bǔ)丁。
    訪問gcc官方補(bǔ)丁鏈接[89411],[86724],按照補(bǔ)丁鏈接中要求的修改,手動將變更添加到對應(yīng)的.c和.h文件中,注意由于patch版本與下載的gcc版本有所偏差,行數(shù)有可能對應(yīng)不上,請自行查找patch中的關(guān)鍵字定位到對應(yīng)行。
  8. 下載[GMP 6.1.2],并解壓安裝。
    tar -xvf 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 --enable-cxx && make && make install
    
  9. 下載[mpfr-4.0.2 ],并解壓安裝。
    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
    
  10. 下載mpc-1.1.0 ,并解壓安裝。
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
  1. 打開文件夾riscv-gnu-toolchain,新建工具鏈輸出目錄。
cd /opt && mkdir gcc_riscv32
  1. 編譯binutils。
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 && cd ..
  1. 編譯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 && cd ..
  1. 編譯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

HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

搜狗高速瀏覽器截圖20240326151547.png

  1. 設(shè)置環(huán)境變量。

說明:

如果直接采用編譯好的riscv32 gcc包,請先執(zhí)行以下命令將壓縮包解壓到根目錄:

> tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~ >

注意之后設(shè)置和生效環(huán)境變量時,所設(shè)置的路徑為根目錄。

打開`.bashrc`文件。

vim /opt/.bashrc

將以下命令拷貝到的最后一行,保存并退出。

export PATH=/opt/gcc_riscv32/bin:$PATH


  1. 生效環(huán)境變量。
    source /opt/.bashrc
    
  2. Shell命令行中輸入如下命令,如果能正確顯示編譯器版本號,表明編譯器安裝成功。
    riscv32-unknown-elf-gcc -v
    

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5050

    瀏覽量

    97456
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2351

    瀏覽量

    42849
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1975

    瀏覽量

    30182
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3722

    瀏覽量

    16313
收藏 人收藏

    評論

    相關(guān)推薦

    鴻蒙OpenHarmony系統(tǒng)運(yùn)行】 (基于Hi3861開發(fā)板

    由于Hi3861為WLAN模組,您可以在版本編譯及燒錄后,通過如下操作,使開發(fā)板實(shí)現(xiàn)聯(lián)網(wǎng)功能。
    的頭像 發(fā)表于 04-23 09:50 ?774次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>【<b class='flag-5'>輕</b><b class='flag-5'>量</b><b class='flag-5'>系統(tǒng)</b>運(yùn)行】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>開發(fā)板</b>)

    鴻蒙OpenHarmony【集成三方SDK】 (基于Hi3861開發(fā)板

    OpenHarmony致力于打造一套更加開放完善的IoT生態(tài)系統(tǒng),為此OpenHarmony規(guī)劃了一組目錄,用于將各廠商的SDK集成到OpenHarmony中。本文檔基于
    的頭像 發(fā)表于 04-24 15:11 ?1115次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>【集成三方SDK】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>開發(fā)板</b>)

    鴻蒙OpenHarmony系統(tǒng) 燒錄】 (基于Hi3861開發(fā)板

    針對Hi3861開發(fā)板,除了DevEco Device Tool
    的頭像 發(fā)表于 05-10 16:59 ?1135次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>【<b class='flag-5'>輕</b><b class='flag-5'>量</b><b class='flag-5'>系統(tǒng)</b> 燒錄】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>開發(fā)板</b>)

    鴻蒙OpenHarmony系統(tǒng) 運(yùn)行】 (基于Hi3861開發(fā)板

    由于Hi3861為WLAN模組,您可以在版本編譯及燒錄后,通過如下操作,使開發(fā)板實(shí)現(xiàn)聯(lián)網(wǎng)功能。
    的頭像 發(fā)表于 05-10 16:38 ?704次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>【<b class='flag-5'>輕</b><b class='flag-5'>量</b><b class='flag-5'>系統(tǒng)</b> 運(yùn)行】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>開發(fā)板</b>)

    盤點(diǎn)那些硬件+項目學(xué)習(xí)套件:Hi3861鴻蒙開發(fā)板及入門常見問題解答

    ,一個是鴻蒙應(yīng)用開發(fā),一個是鴻蒙設(shè)備開發(fā)。我們的Hi3861鴻蒙
    發(fā)表于 02-01 16:55

    鴻蒙硬件HI3861開發(fā)環(huán)境搭建 精選資料分享

    鴻蒙HI3861開發(fā)環(huán)境搭建1.板子在哪里買https://item.taobao.com/item.htm?spm=a1z09.2.0.0
    發(fā)表于 07-22 06:42

    OpenHarmony與小型系統(tǒng)入門概述

    。 本文將介紹如何基于Windows+Ubuntu環(huán)境進(jìn)行OpenHarmony開發(fā)。 開發(fā)板 本文基于以下兩款典型開發(fā)板進(jìn)行
    發(fā)表于 05-06 15:48

    HI3861 鴻蒙開發(fā)環(huán)境怎么搭建

    Hi3861鴻蒙開發(fā)環(huán)境怎么搭建,有沒詳細(xì)說明交叉編譯工具包在哪下載鴻蒙設(shè)備
    發(fā)表于 05-08 20:25

    如何使用 HiBurn 工具燒錄鴻蒙的 .bin 文件到 Hi3861 開發(fā)板

    鴻蒙官方文檔的Hi3861開發(fā)板第一個示例程序中描述了如何使用 DevEco Device Tool 工具燒錄二進(jìn)制文件到 Hi3861 開發(fā)板
    的頭像 發(fā)表于 10-25 09:23 ?4694次閱讀

    關(guān)于OpenHarmony系統(tǒng)開發(fā)

    還記得2020年9月OpenHarmony大會后,我開始在社區(qū)寫了一些OpenHarmony系統(tǒng)開發(fā)的文章,基于
    的頭像 發(fā)表于 01-24 14:54 ?1879次閱讀

    基于鴻蒙系統(tǒng)+Hi3861的WiFi小車開發(fā)

    本文簡單介紹鴻蒙系統(tǒng) + Hi3861 的WiFi小車開發(fā),適用于開發(fā)潤和Hi3861
    的頭像 發(fā)表于 03-03 09:31 ?5721次閱讀
    基于<b class='flag-5'>鴻蒙</b><b class='flag-5'>系統(tǒng)</b>+<b class='flag-5'>Hi3861</b>的WiFi小車<b class='flag-5'>開發(fā)</b>

    自制Hi3861開發(fā)板(附原理圖和電路圖)

    OpenHarmony的發(fā)展已經(jīng)進(jìn)入了新的階段,逐步把重點(diǎn)向富設(shè)備開發(fā)方向。OpenHarmony 3.x的各大特性也是針對富設(shè)備來的,但是仍然支持
    的頭像 發(fā)表于 04-14 10:23 ?1w次閱讀
    自制<b class='flag-5'>Hi3861</b><b class='flag-5'>開發(fā)板</b>(附原理圖和電路圖)

    潤開鴻Hi3861開發(fā)板介紹

    Hi3861開發(fā)板是一片大約2cm*5cm大小的開發(fā)板,是一款高度集成的2.4GHz WLAN SoC芯片,集成IEEE 802.11b/g/n基帶和RF(Radio Frequency)電路。支持
    的頭像 發(fā)表于 04-27 10:59 ?3631次閱讀
    潤開鴻<b class='flag-5'>Hi3861</b><b class='flag-5'>開發(fā)板</b>介紹

    鴻蒙OpenHarmony系統(tǒng)編譯】 (基于Hi3861開發(fā)板

    DevEco Device Tool支持Hi3861V100開發(fā)板的源碼一鍵編譯功能,提供編譯工具鏈和編譯環(huán)境依賴的檢測及一鍵安裝,簡化復(fù)雜編譯環(huán)境的同時,提升了編譯的效率。
    的頭像 發(fā)表于 04-22 15:19 ?566次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>【<b class='flag-5'>輕</b><b class='flag-5'>量</b><b class='flag-5'>系統(tǒng)</b>編譯】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>開發(fā)板</b>)

    鴻蒙OpenHarmony南向:【Hi3861開發(fā)板介紹】

    Hi3861開發(fā)板是一片大約2cm*5cm大小的開發(fā)板,是一款高度集成的2.4GHz WLAN SoC芯片,集成IEEE 802.11b/g/n基帶和RF(Radio Frequency)電路。支持,并配套提供開放、易用的
    的頭像 發(fā)表于 05-06 17:19 ?1127次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>南向:【<b class='flag-5'>Hi3861</b><b class='flag-5'>開發(fā)板</b>介紹】