OpenHarmony輕量系統開發【3】代碼編譯和燒錄
??https://harmonyos.51cto.com??
春節不停更,此文正在參加「星光計劃-春節更帖活動」https://harmonyos.51cto.com/posts/9923
摘要:本文簡單介紹OpenHarmony最新版本代碼目錄簡單解讀、編譯、燒錄
適合群體:適用于Hi3861開發板
3.1源碼目錄
下載完代碼后,大家可以進入代碼目錄:
這里重點介紹幾個比較重要的文件夾:
1 vendor文件夾
該文件夾存放的是廠商相關的配置,包括組件配置、HDF相關配置,代碼目錄如下:
可以看到有hisilicon文件夾,下面有Hi3516DV300、hispark_aries等,其中hi3861開發板對應的是hispark_pegasus
里面有如下文件:
其中比較重要的是 config.json配置文件,里面定義了內核類型,和使用了哪些子系統。具體我們后再做具體解讀。
2 device文件夾
該文件夾存放的是具體開發板、芯片相關的源碼。這里OpenHarmony又分為SoC和Board兩大塊。其中SoC里面是具體芯片相關的代碼、包括該芯片相關的驅動; board是開發板相關的代碼,具體跟開發板相關。
之所以這樣設計,是為將SoC和board區分出來,實現soc相關代碼可復用。因為后續可能存在一個soc多個board的情況。
其中,潤和的WiFi IoT開發板對應的soc是 hi3861v100文件夾,對應的board是 hispark_pegasus
3 arch文件夾
該文件夾存放具體芯片架構的代碼,文件夾路徑:
kernel/liteos_m/arch
代碼路徑如下:
于是OpenHarmony實現了ARCH(架構)、soc(芯片)、board(開發板)3層隔離,降低了代碼的耦合性。設計比較合理。
4 applications文件夾
該文件夾存放應用相關代碼,后續我們編寫代碼需要在該文件夾下添加。
3.2編譯
輕量系統采用hb編譯,在代碼根目錄下執行
hb set
首次輸入可以會提示需要輸入路徑,直接輸入 . (英文的點號)即可
這里我們選擇 wifiiot_hispark_pegasus
之后輸入:
hb build -f
開始編譯
看到如下即表示編譯成功:
編譯出來的固件位于:out/hispark_pegasus/wifiiot_hispark_pegasus/
其中,Hi3861_wifiiot_app_allinone.bin 是我們要燒錄到開發板的。
3.3燒錄
(1)基于vscode方式燒錄
OpenHarmony可以基于vscode的方式進行燒錄,但是該方式比較復雜,這里暫時不推薦。
如果讀者感興趣可以參考:
https://device.harmonyos.com/cn/docs/documentation/guide/quickstart-lite-steps-hi3861-burn-0000001190053075
(2)基于hiburn工具燒錄
推薦讀者采用此方式,比較簡單便捷。
首先下載HiBurn工具,下載鏈接:
https://harmonyos.51cto.com/resource/29
使用USB線連接到3861開發板,如圖:
(1)打開HiBurn工具,
(2)點擊select file 選擇要下載的Hi3861_wifiiot_app_allinone.bin文件,
(3)勾選上 Auto burn選項
(4)單擊 Connect按鈕
(5)此時按下開發板上面的 RST 復位按鈕,即可看到程序已經開始下載:
(6)注意下載后,我們點擊disconnect按鈕,不然我們再次復位會重新燒錄。我們也可以關閉掉 HiBurn 程序。
3.4運行效果
燒錄完后,我們可以打開串口工具,查看串口打印:
這是因為默認打開了xts測試,開發板跑起來系統后會做xts測試。
看到如下提示,則表示xts測試通過
??https://harmonyos.51cto.com??