OpenHarmony在Amlogic A311D芯片平臺的快速開發(fā)上手指南
目前最新發(fā)布的版本為OpenHarmony-3.1-Release版本,該版本發(fā)布于今年3月30日,帶來很多新功能,及原有功能的增強。發(fā)布伊始,就已經(jīng)開始基于該版本,在Amlogic A311D芯片平臺進行了適配。
一、開發(fā)環(huán)境準備
1. Ubuntu 20.04(或18.04)服務(wù)器或虛擬機??-- (用于源碼編譯)
同時也可以采用作者提供的Docker鏡像,OpenHarmony的Ubuntu 20.04自制鏡像鏈接如下:
? ? 鏈接:?https://pan.baidu.com/s/1eIIL_2Y3G-Os5_HptpX2JQ?pwd=a2im
? ? 提取碼: a2im
2. Windows電腦 -- (用于鏡像的燒錄)
3. A311D主控的開發(fā)板及MIPI屏(沒有MIPI屏,可以用HDMI顯示)
? ?Amlogic A311D采用四核ARM Cortex-A73和雙核ARM Cortex-A53 CPU,ARM G52 MP4(6EE) GPU,NPU for AI 支持 5.0 TOPS算力,支持攝像頭和MIPI-CSI接口,HDMI輸出,2個全千兆接口。
? ?開發(fā)板針對芯片硬件資源,進行了定制,外觀如下:
? ?? ?? ?? ??

主要接口簡介:
1).? Micro USB 數(shù)據(jù)線,PC 端需要安裝 CH340G 驅(qū)動才能正常使用串口功能。
2). 多功能擴展接口為 40PIN,接口兼容樹莓派40PIN引腳;
3). I2S 接口為 16PIN 雙列插針接口;
4). 位姿傳感器采用板載應(yīng)美盛公司的高靈敏度 9 軸傳感器芯片 ICM-20948;
5). 4G 通 訊 模 組 可 采 用 本 公 司 的 4G 模 組 , 或 者 相 應(yīng) 接 口 序 列 的 模 組 ;
6). MIPI CSI 接口 接口序列兼容樹莓派;
7). MIPI DSI 接口 接口序列兼容樹莓派;
8). PWM 接口 接口序列為: 3V3/PWM_1/PWM_2/GND;
9). TTL 接口 接入時需注意信號接電平為: 1.8V 接口序列為: 3V3/TX/RX/GND;
10). ADC 接口接入時需注意信號接電平為: 1.8V 接口序列為: 3V3/ADC_1/ADC_2/GND;
11). 485 接口 接口序列為: GND/485_B/485_A /5V;
12). CAN bus 接口 接口序列為: 5V/CAN_L/CAN_H/GND;
13). 喇叭接口 接口序列為: SPKR-/ SPKR +/ SPKL -/ SPKL+;
二、源碼下載與編譯
? ?源碼下載地址:[gitee](https://gitee.com/algoideas/device_unionpi),目前暫未合入到Openharmony主倉庫(目前在進行中),請先按照以下參考步驟進行下載,或參考gitee介紹進行下載。
1、源碼下載
mkdir openharmony
cd openharmony
repo init??-u??https://gitee.com/algoideas/unionpi??-b OpenHarmony-3.1-Release -m??devboard_unionpi.xml --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
./build/prebuilts_download.sh --skip-ssl
# 打入unionpi相關(guān)補丁到openharmony中(注意下載完成后執(zhí)行)
./device/unionpi/build/patch-unionpi.sh
注:源碼下載過程需要10幾分鐘不等,請耐心等待,如果上次未下載完成,可以繼續(xù)下載。
2、編譯方法
./build.sh --product-name a311d --ccache
? ?編譯完成后,效果如下圖所示:

第一次編譯可能需要20幾分鐘,第二次編譯時間比較短
三、固件打包與下載
? ???編譯完成后需要,進行對鏡像進行打包,然后進行燒寫。
1、固件打包
? ?執(zhí)行以下命令
./device/unionpi/build/packer-unionpi.sh
? ?固件打包完成,生成路徑為編譯根目錄下的out/a311d/packages/phone/images/OpenHarmony.img
? ?其中部分打包日志如下:? ?? ???
[Msg]Pack Item[USB? ?? ?? ?,? ?? ?? ?? ???DDR] from (/home/AlgoIdeas/openharmony/OpenHarmony-3.1-Release/device/unionpi/prebuilts/images/u-boot.bin),sz[0x189770]B,fileType[normal]
[Msg]Pack Item[USB? ?? ?? ?,? ?? ?? ?? ?UBOOT] from (/home/AlgoIdeas/openharmony/OpenHarmony-3.1-Release/device/unionpi/prebuilts/images/u-boot.bin),Duplicated for DDR.USB
... ...
[Msg]Pack Item[PARTITION? ?,? ?? ?? ???system] from (/home/AlgoIdeas/openharmony/OpenHarmony-3.1-Release/device/unionpi/prebuilts/images/system.img),sz[0x25800000]B,fileType[normal]
[Msg]Pack Item[VERIFY? ?? ?,? ?? ?? ???system] from (/home/AlgoIdeas/openharmony/OpenHarmony-3.1-Release/device/unionpi/prebuilts/images/system.img),vry[sha1sum af04555d04c096cb3b968dbba00895e856c980ec]
[Msg]Pack Item[PARTITION? ?,? ?? ?? ???vendor] from (/home/AlgoIdeas/openharmony/OpenHarmony-3.1-Release/device/unionpi/prebuilts/images/vendor.img),sz[0xffff000]B,fileType[normal]
[Msg]Pack Item[VERIFY? ?? ?,? ?? ?? ???vendor] from (/home/AlgoIdeas/openharmony/OpenHarmony-3.1-Release/device/unionpi/prebuilts/images/vendor.img),vry[sha1sum 80ca8bdaeb68f24e69649381c9e0125ac87b0951]
[Msg]version:0x2 crc:0x69625cf8 size:1469162720 bytes[1401MB]
Pack image[/home/AlgoIdeas/openharmony/OpenHarmony-3.1-Release/out/a311d/packages/phone/images/OpenHarmony.img] OK
2、固件燒錄
? ?固件支持USB燒寫,也支持TFTP及U盤燒寫,以下主要介紹USB燒寫,燒寫前需要安裝好Amlogic USB燒寫工具,工具下載地址在devic/unionpi/a311d/tools/windows目錄下。
? ?燒錄步驟:
? ?1)、開發(fā)板上電,并同時按住升級鍵(中間位置),等待Windows電腦識別到開發(fā)板;
? ?2)、打開燒錄軟件,此時會在燒錄軟件界面,顯示識別到的設(shè)備:

? ? 接下來在工具欄,文件-> 選擇燒錄的OpenHarmony.img固件,并可選擇不進行校驗,然后點擊 <開始> 進行燒錄即可,如下圖所示:

? ? 燒錄過程狀態(tài)如下:? ?? ???

? ???等待燒錄完成后,設(shè)備自動重啟即可。
四、結(jié)語
? ?在Amlogic A311D 芯片上OpenHarmony的適配基本過程,和目前開源的代碼,同樣可以適配到其他A311D芯片平臺的開發(fā)板或機頂盒等,甚至Amlogic或其他芯片平臺都有借鑒意義。
? ? 至此,A311D的快速開發(fā)上手完畢。