AlgoIdeas · 2022年04月11日

OpenHarmony在Amlogic A311D芯片平台的快速开发上手指南

目前最新发布的版本为OpenHarmony-3.1-Release版本,该版本发布于今年3月30日,带来很多新功能,及原有功能的增强。发布伊始,就已经开始基于该版本,在Amlogic A311D芯片平台进行了适配。

一、开发环境准备

  1. Ubuntu 20.04(或18.04)服务器或虚拟机  -- (用于源码编译)
    同时也可以采用作者提供的Docker镜像,OpenHarmony的Ubuntu 20.04自制镜像链接如下:
    链接: https://pan.baidu.com/s/1eIIL...
    提取码: a2im
  2. Windows电脑 -- (用于镜像的烧录)
  3. 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个全千兆接口。
       开发板针对芯片硬件资源,进行了定制,外观如下:
    底板核心板.png

主要接口简介:
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

编译完成后,效果如下图所示:

20220409_221851.png

第一次编译可能需要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)、打开烧录软件,此时会在烧录软件界面,显示识别到的设备:
20220409_223514.png
       
   接下来在工具栏,文件-> 选择烧录的OpenHarmony.img固件,并可选择不进行校验,然后点击 <开始> 进行烧录即可,如下图所示:
屏幕截图 20220409 224148.png
烧录过程状态如下:        
屏幕截图 20220409 224503.png
   等待烧录完成后,设备自动重启即可。

相关视频演示效果参考:https://www.bilibili.com/vide...

四、结语

在Amlogic A311D 芯片上OpenHarmony的适配基本过程,和目前开源的代码,同样可以适配到其他A311D芯片平台的开发板或机顶盒等,甚至Amlogic或其他芯片平台都有借鉴意义。
至此,A311D的快速开发上手完毕。

推荐阅读
关注数
2
文章数
5
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息