用鴻蒙開發AI應用(三)軟件篇
https://harmonyos.51cto.com/#zz
前言
上一篇,我們在 Win10 上用虛擬機安裝了 Ubuntu,并設置了文件共享。這一篇,在此基礎上編譯鴻蒙os的源碼,并進行設備燒錄。
HarmonyOS 簡介
1. 系統定義
HarmonyOS是一款“面向未來”、面向全場景(移動辦公、運動健康、社交通信、媒體娛樂等)的分布式操作系統。在傳統的單設備系統能力的基礎上,HarmonyOS提出了基于同一套系統能力、適配多種終端形態的分布式理念,能夠支持多種終端設備。
2. 技術架構
HarmonyOS整體遵從分層設計,從下向上依次為:內核層、系統服務層、框架層和應用層。系統功能按照“系統 > 子系統 > 功能/模塊”逐級展開,在多設備部署場景下,支持根據實際需求裁剪某些非必要的子系統或功能/模塊。

這次開源的內核僅包含HarmonyOS微內核的部分,Linux內核要等下一個版本。
3. 分布式軟總線
分布式軟總線是多種終端設備的統一基座,為設備之間的互聯互通提供了統一的分布式通信能力,能夠快速發現并連接設備,高效地分發任務和傳輸數據。
4. 分布式設備虛擬化
分布式設備虛擬化平臺可以實現不同設備的資源融合、設備管理、數據處理,多種設備共同形成一個超級虛擬終端。針對不同類型的任務,為用戶匹配并選擇能力合適的執行硬件,讓業務連續地在不同設備間流轉,充分發揮不同設備的資源優勢。

主要特性還是分布式架構和設備虛擬化技術,更詳細的資料,參考官網描述
https://device.harmonyos.com/cn/docs/start/learn/oem_des_define-0000001055232642
DevEco Device Tool(windows下)
官網下載Visual Studio Code軟件包,要求為1.45.1及以上版本。
1. 工具簡介
HUAWEI DevEco Device Tool(以下簡稱DevEco Device Tool)是HarmonyOS面向智能設備開發者提供的一站式集成開發環境,支持HarmonyOS的組件按需定制,支持代碼編輯、燒錄和調試等功能,支持C/C++語言,以插件的形式部署在Visual Studio Code上。該工具具有以下特點:
DevEco Device Tool以Visual Studio Code插件形式提供,體積小巧。
支持代碼查找、代碼高亮、代碼自動補齊、代碼輸入提示、代碼檢查等,開發者可以輕松、高效編碼。
支持多種類型開發板,包括ARM架構的Hi3516/Hi3518系列和RISC-V架構的Hi3861系列開發板,提供一鍵式的燒錄和調試GUI界面。
支持單步調試能力和查看內存、變量、調用棧、寄存器、匯編等調試信息。
2. 安裝 Visual Studio Code
https://code.visualstudio.com/

懶得下載的,在文末網盤里也能獲取最新版本的安裝包。
3. 安裝Node.js
官網下載鏈接,請選擇LTS版本12.0.0及以上,Windows 64位對應的軟件包。
https://nodejs.org/en/download/

安裝完畢,在“此電腦 > 屬性 > 高級系統設置 > 高級 > 環境變量 >系統變量”中,新增NODE_PATH變量,值為:C:\Users\{userName}\AppData\Roaming\npm\node_modules,其中userName請替換為實際的用戶名稱。

4. 安裝JDK
下載并安裝JDK,版本要求為:1.8版本。
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

下載完成后,安裝 jdk-8u271-windows-x64.exe即可。
5. 安裝hpm
基于 node.js ,全局模式安裝腳手架
- npm install -g @ohos/hpm-cli
測試安裝是否成功
- hpm -V
6. 安裝DevEco Device Tool插件
如果您已經安裝過DevEco Device Tool 插件,在您安裝新版本前,請先手動將已安裝的DevEco Device Tool 插件卸載后再按照如下步驟進行安裝。

在產品頁下載工具插件
https://device.harmonyos.com/cn/ide

采用從本地磁盤安裝方式,安裝DevEco Device Tool。

7. 安裝C/C++插件
HarmonysOS設備開發采用C/C++語言,Visual Studio Code工具對C/C++語言的支持插件非常豐富,可以安裝“C/C++”插件來實現C/C++代碼智能提示、代碼高亮、格式化等功能,幫助您更高效、便利的開發更規范和優美的代碼。
在Visual Studio Code的插件市場,輸入“C/C++”,然后點擊“Install”。

獲取源碼(切換到ubuntu)
官網提供了4種方式,這里我們采用從代碼倉庫獲取,進入虛擬機的 ubuntu 系統。
1. 將Linux shell改為bash
查看shell是否為bash,在終端運行如下命令
- ls -l /bin/sh
如果顯示為“/bin/sh -> bash”則為正常,否則請按以下方式修改:
在終端運行如下命令,然后選擇 no。
- sudo dpkg-reconfigure dash
2. 安裝ssh server (可選)
如果要通過ssh對外提供鏈接的話,可以安裝ssh服務
- sudo apt-get install openssh-server
其余相關命令
- # 查看ssh 服務
- sudo ps -e | grep ssh
- # 開啟服務
- sudo /etc/init.d/ssh start
- # 查看服務狀態
- sudo service ssh status
- # 關閉服務
- sudo service ssh stop
- # 重啟服務
- sudo service ssh restart
這時其他電腦就能通過 ssh 命令來訪問 ubuntu 了,如果喜歡的話,也可以安裝putty-64bit-0.74-installer.msi來連接。

3. 配置 python 環境
Ubuntu 20.04.1 默認已經帶了 python3.8
- which python
- /usr/bin/python3.8
建立軟鏈接,指向 python
- cd /usr/bin
- sudo ln -s /usr/bin/python3.8 python && python --version
4. 安裝并升級Python包管理工具(pip3)
- sudo apt-get install python3-setuptools python3-pip -y
- sudo pip3 install --upgrade pip
配置 pip 換源,新建 ~/.pip/pip.conf ,寫入清華源
- [global]
- index-url = https://pypi.tuna.tsinghua.edu.cn/simple
安裝python模塊setuptools
- pip3 install setuptools
安裝GUI menuconfig工具(Kconfiglib),建議安裝Kconfiglib 13.2.0+版本
- sudo pip3 install kconfiglib
5. 安裝文件打包工具
- sudo apt-get install dosfstools mtools mtd-utils
6. 下載、配置編譯工具鏈
- mkdir -p ~/harmony/tools && cd ~/harmony/tools
- # 下載gn/ninja/LLVM/hc-gen包:
- URL_PREFIX=https://repo.huaweicloud.com/harmonyos/compiler
- wget $URL_PREFIX/gn/1523/linux/gn.1523.tar
- wget $URL_PREFIX/ninja/1.9.0/linux/ninja.1.9.0.tar
- wget $URL_PREFIX/clang/9.0.0-34042/linux/llvm-linux-9.0.0-34042.tar
- wget $URL_PREFIX/hc-gen/0.65/linux/hc-gen-0.65-linux.tar
- # 解壓gn/ninja/LLVM/hc-gen包:
- tar -C ~/harmony/tools/ -xvf gn.1523.tar
- tar -C ~/harmony/tools/ -xvf ninja.1.9.0.tar
- tar -C ~/harmony/tools/ -xvf llvm-linux-9.0.0-34042.tar
- tar -C ~/harmony/tools/ -xvf hc-gen-0.65-linux.tar
- # 向 ~/.bashrc 中追加gn/ninja/LLVM/hc-gen路徑配置:
- cat <> ~/.bashrc
- export PATH=~/harmony/tools/gn:\$PATH
- export PATH=~/harmony/tools/ninja:\$PATH
- export PATH=~/harmony/tools/llvm/bin:\$PATH
- export PATH=~/harmony/tools/hc-gen:\$PATH
- EOF
- # 生效環境變量
- source ~/.bashrc
7. 安裝虛擬環境
- sudo pip3 install -U virtualenv
- virtualenv -p python3 ~/my_envs/harmonyos
- source ~/my_envs/harmonyos/bin/activate
- pip install requests # 后續repo需要
8. 配置 repo 工具
- sudo apt install curl
- curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/harmony/tools/repo
- chmod +x ~/harmony/tools/repo
- echo 'export PATH=~/harmony/tools:$PATH' >> ~/.bashrc
- source ~/.bashrc
9. 下載Harmony OS源碼
- mkdir -p ~/harmony/openharmony && cd ~/harmony/openharmony
- sudo apt install git
- # 配置用戶信息
- git config --global user.name "yourname"
- git config --global user.email "your-email-address"
- git config --global credential.helper store
- repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
- repo sync -c # 同步遠程倉
稍等一會兒,源碼倉的代碼就同步到 openharmony目錄下了。
10. 編譯源碼
- python build.py ipcamera_hi3516dv300
稍微等待一會兒,編譯時間取決于虛擬機的資源,如果太慢可以多分配一些。詳細方法可以參照上一篇文章所述。

同樣根據用鴻蒙開發AI應用(二)系統篇里的方法,將 ~/harmony共享給 Win10系統來訪問。
燒錄程序(切換回windows)
1. 映射網絡驅動器
將 ubuntu 里共享的源碼目錄,映射成網絡驅動器

2. 導入源碼
HarmonyOS暫不支持Windows系統源碼,請從映射的Linux服務器的共享路徑,導入源碼。

3. 配置工程
導入工程源碼文件后,請對工程進行配置,如工程燒錄和調試依賴的工具等信息。
點擊底部工具欄中的“Board”按鈕,選擇對應開發板的配置模板,例如:Hi3516DV300。

4. 安裝燒錄依賴工具
網絡燒錄ftp工具
- npm install -g tftp
串口燒錄工具
- npm install -g serialport
- npm install -g @serialport/parser-readline

usb 燒錄工具
- npm install -g usb
燒錄后 crc 校驗工具
- npm install -g crc
5. 安裝串口驅動
PL-2303 的驅動文件,USB-to-Serial Comm Port.exe

插上串口線和網線,

在設備管理器中,可以找到對應的串口號(COM4)

6. 串口調試
點擊底部串口,可進行串口連接,用命令行進行設備配置。你也可以用 SSCOM這類傳統串口調試工具來測試。

7. 插件網絡方式燒錄
硬件連接方式如下圖所示,這里我們的 Linux 編譯服務器為虛擬機形式。

7.1 查詢 IP 地址
ubuntu的ip地址采用ifconfig 查詢,映射網絡驅動器用;

windows的ip地址采用ipconfig 查詢,燒錄時需要用到;

7.2 配置串口
打開 vscode,點擊 配置-燒錄,選擇燒錄方式為 network;選擇對應的串口號(這里是COM4)

7.3 配置目標板網絡
Hi3516DV300的ip地址,可以設置到同網段下未使用的地址,最末段取 2-254 均可(這里58除外)。

7.4 配置存儲器類型
根據之前的硬件定義,Hi3516DV300 存儲器類型設置為 emmc

7.5 配置文件和寫入地址
在之前編譯生成的文件夾中找到以下文件,按下列表格進行配置
- Z:\openharmony\out\ipcamera_hi3516dv300
點擊保存按鈕,保存設置。
7.6 運行燒錄命令
在DevEco Device Tool中,點擊燒錄后的箭頭圖標。插件會執行 upload命令進行燒錄。

7.7 設置腳本權限
如果遇到這個錯誤信息

在系統中搜索框 輸入 Windows PowerShell
點擊“管理員身份運行”
輸入“ set-ExecutionPolicy RemoteSigned”回車
根據提示,輸入A,回車

7.8 設置防火墻
如果網絡地址完全正確(仔細查看setenv命令參數),遇到 crc32 校驗錯。

則需設置防火墻通行
放行 vscode 應用程序
放行 node.js 程序 (這個特別容易遺漏)

7.9 燒錄成功
一切順利的話,看到提示重啟開發板,就能寫入成功,網絡燒錄速度還是非常快的。

8. HiTool 燒錄(推薦)
采用 HiTool 工具來燒片就不需要安裝node.js 以及前面一堆依賴包了,相對來說會更為方便。
解壓Hi3516-HiTool.zip,直接運行HiTool.exe即可。
8.1 選擇芯片
菜單芯片-切換芯片-Hi3516DV300

8.2 關閉 tftp 加速
菜單窗口-首選項-TFTP設置里,由于Hi3516DV300不支持加速功能,取消這個配置的復選框。

8.3 串口燒錄
串口選擇 COM4,填好文件和寫入地址,點擊燒寫按鈕即可。不過速度會慢到令人懷疑人生...

8.4 網口燒錄
參數設置見下圖,不多敘述了。網絡燒錄則速度快得多,2 分鐘搞定!

這里注意,一定要同時插串口線和網線,因為即使是網口燒錄方式,網絡配置命令和fastboot段都是通過串口傳輸的。
另有 usb燒錄方式,需要多插一根usb線,速度也不快。默認還會對開發板充電,有時候會干擾重啟操作,蠻雞肋的,就不詳述了。
重啟開發板后,就能看到久違的 demo示例程序了。
資料下載

下一篇預告
至此所有配置都已打通,
下一篇,
可以開始編寫自己的程序,
真正進行應用開發之旅了
敬請期待...

©著作權歸作者和HarmonyOS技術社區共同所有,如需轉載,請注明出處,否則將追究法律責任
https://harmonyos.51cto.com/#zz