OpenHarmony在Amlogic A311D芯片平台的快速开发上手指南 原创 精华
目前最新发布的版本为OpenHarmony-3.1-Release版本,该版本发布于今年3月30日,带来很多新功能,及原有功能的增强。发布伊始,就已经开始基于该版本,在Amlogic A311D芯片平台进行了适配。
一、开发环境准备
- Ubuntu 20.04(或18.04)服务器或虚拟机 – (用于源码编译)
同时也可以采用作者提供的Docker镜像,OpenHarmony的Ubuntu 20.04自制镜像链接如下:
链接: https://pan.baidu.com/s/1eIIL_2Y3G-Os5_HptpX2JQ?pwd=a2im
提取码: a2im - Windows电脑 – (用于镜像的烧录)
- A311D主控的开发板及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个全千兆接口。
开发板针对芯片硬件资源,进行了定制,外观如下:
主要接口简介:
*1 Micro USB 数据线,PC 端需要安装 CH340G 驱动才能正常使用串口功能。
*2 多功能扩展接口为 40PIN,接口兼容树莓派40PIN引脚;
*3 I2S 接口为 16PIN 双列插针接口;
*4 位姿传感器采用板载应美盛公司的高灵敏度 9 轴传感器芯片 ICM-20948;
*5 4G 通 讯 模 组 可 采 用 本 公 司 的 4G 模 组 , 或 者 相 应 接 口 序 列 的 模 组 ;
*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,目前暂未合入到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相关补丁到openharmony中(注意:请在代码下载完成后执行)
./device/unionpi/build/patch-unionpi.sh
注:源码下载过程需要10几分钟不等,请耐心等待,如果上次未下载完成,可以继续下载。
2、编译方法
./build.sh --product-name a311d --ccache
编译完成后,效果如下图所示:
第一次编译可能需要20几分钟,第二次编译时间比较短
三、固件打包与下载
编译完成后需要,进行对镜像进行打包,然后进行烧写。
1、固件打包
执行以下命令
./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)、开发板上电,并同时按住升级键(中间位置),等待Windows电脑识别到开发板;
2)、打开烧录软件,此时会在烧录软件界面,显示识别到的设备:
接下来在工具栏,文件-> 选择烧录的OpenHarmony.img固件,并可选择不进行校验,然后点击 <开始> 进行烧录即可,如下图所示:
烧录过程状态如下:
等待烧录完成后,设备自动重启即可。
四、结语
在Amlogic A311D 芯片上OpenHarmony的适配基本过程,和目前开源的代码,同样可以适配到其他A311D芯片平台的开发板或机顶盒等,甚至Amlogic或其他芯片平台都有借鉴意义。
至此,A311D的快速开发上手完毕。
相关视频演示效果参考:https://www.bilibili.com/video/BV1Yr4y1i7Aw/