适配OpenHarmony到YY3568上的流程

电子说

1.3w人已加入

描述

YY3568开发板

YY3568开发板是基于Rockchip RK3568 芯片平台设计的开发板,四核 64Cortex-A55 核,主频最高达 2GHz,集成双核心架构GPU以及高效能NPU,芯片性能优异。开发板功能接口丰富,多媒体性能强悍、可在物联网、工业控制、智慧交通、轻量级人工智能等领域发挥独特优势。

板载有 2路DSI、1路HDMI 和 1路edp显示接口。支持双屏异显输出和4K分辨率。强大的显示性能,并且适配了自研的7寸mipi屏和edp屏。在多屏广告机、电子站牌、自助服务机、工业HMI等领域可发挥强大优势以及更低的成本。

板载 2 路千兆 以太网,可通过双网口访问和传输内外网的数据。拥有WIFI/BT,PCIE 3.0接口及 SIM 座,可接 4G 通信模块,提高网络传输效率。满足NVR、工业网关等多网口产品需求。

板载 5路 串口,能够大大降低通信成本。2 路IIC,可接多个IIC设备。1路CAN,能够满足汽车电子领域需求。

板载PCIE3.0和SATA接口,支持固态硬盘M.2,SATA硬盘,可扩展大容量硬盘。

硬件接口定义

YY3568详细的硬件说明

PCIe接口

YY3568正面硬件描述

PCIe接口

YY3568背面硬件描述

固件升级及调试

官方开发板默认支持系统

Android系统

开发指南

Debian系统

开发板支持配件

对YY3568开发板提供了丰富的配件,包括显示屏,摄像头,雷达,通信模块等

适配OpenHarmony到YY3568

适配准备知识

OpenHarmony是华为开源出来的一个操作系统,目前支持4个内核,分别为:liteos_m,liteos_a,uniproton,linux。而我们本次移植适配的内核是Linux。

如果从0开始移植是非常麻烦的,润和公司已经针对DAYU200开发板(核心RK3568)适配了OpenHarmony。所以我们可以基于这个开发板来适配YY3568开发板。

OpenHarmony的linux内核支持两个版本,分别:4.19和5.10。DAYU200开发板是基于内核版本5.10做了适配。

适配OpenHarmony,如果该芯片没有人移植的话,我们需要关注三个仓库,分别board仓,soc仓和vendor仓。由于润和公司适配过RK3568,所以我们不用关心soc仓,我们只需要关注两个仓库,分别board仓和vendor仓。

环境搭建

安装依赖工具

安装命令如下:

 

sudo apt-get update && sudo apt-get install binutils git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby

 

说明:以上安装命令适用于Ubuntu18.04,其他版本请根据安装包名称采用对应的安装命令。

获取标准系统源码

前提条件

注册码云gitee账号。

注册码云SSH公钥,请参考码云帮助中心。

安装git客户端和git-lfs并配置用户信息。

 

git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store

 

安装码云repo工具,可以执行如下命令。

 

curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 >
/usr/local/bin/repo #如果没有权限,可下载至其他目录,并将其配置到环境变量中

chmod a+x /usr/local/bin/repo

pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests

 

获取源码操作步骤

通过repo + ssh 下载(需注册公钥,请参考码云帮助中心)。

 

repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v3.2-Beta5 --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

 

通过repo + https 下载。

 

repo init -u https://gitee.com/openharmony/manifest -b refs/tags/OpenHarmony-v3.2-Beta5 --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

 

适配YY3568

适配vendor仓

作者已经适配好了对应的vendor仓库,仓库如下:https://gitee.com/RiceChen0/vendor_yy3568

直接克隆适配好的vendor操作流程:

 

youyootee@youyootee:~/ohos/project/youyootee/yy3568$ cd vendor
youyootee@youyootee:~/ohos/project/youyootee/yy3568/vendor$ mkdir youyootee
youyootee@youyootee:~/ohos/project/youyootee/yy3568/vendor$ cd youyootee
youyootee@youyootee:~/ohos/project/youyootee/yy3568/vendor/youyootee$ git clone https://gitee.com/RiceChen0/vendor_yy3568.git yy3568

 

适配board仓

作者已经适配好了对应的vendor仓库,仓库如下:https://gitee.com/RiceChen0/board_yy3568

直接克隆适配好的board操作流程:

 

youyootee@youyootee:~/ohos/project/youyootee/yy3568$ cd device/board/
youyootee@youyootee:~/ohos/project/youyootee/yy3568/device/board$ mkdir youyootee
youyootee@youyootee:~/ohos/project/youyootee/yy3568/device/board$ cd youyootee
youyootee@youyootee:~/ohos/project/youyootee/yy3568/device/board/youyootee$ git clone https://gitee.com/RiceChen0/board_yy3568.git yy3568

 

修改依赖

在OpenHarmony中的hdf_core/adapter/khdf/linux/model/audio目录下的Makefile存在芯片板机相关的依赖,这一点是很不友好的,这类基础组件不应该有依赖关系。将Makefile的内容修改如下:

 

KHDF_AUDIO_BASE_ROOT_DIR = ../../../../../../..
KHDF_AUDIO_KHDF_ROOT_DIR = drivers/hdf/khdf
KHDF_FRAMEWORK_ROOT_DIR = drivers/hdf/framework
KHDF_AUDIO_ROOT_DIR = ../../../../../framework/model/audio

obj-$(CONFIG_DRIVERS_HDF_AUDIO) += 
          $(KHDF_AUDIO_ROOT_DIR)/core/src/audio_core.o 
          $(KHDF_AUDIO_ROOT_DIR)/core/src/audio_host.o 
          $(KHDF_AUDIO_ROOT_DIR)/core/src/audio_parse.o 
          $(KHDF_AUDIO_ROOT_DIR)/common/src/audio_codec_base.o 
          $(KHDF_AUDIO_ROOT_DIR)/common/src/audio_dsp_base.o 
          $(KHDF_AUDIO_ROOT_DIR)/common/src/audio_dai_base.o 
          $(KHDF_AUDIO_ROOT_DIR)/common/src/audio_platform_base.o 
          $(KHDF_AUDIO_ROOT_DIR)/common/src/audio_dma_base.o 
          $(KHDF_AUDIO_ROOT_DIR)/sapm/src/audio_sapm.o 
          $(KHDF_AUDIO_ROOT_DIR)/dispatch/src/audio_stream_dispatch.o 
          $(KHDF_AUDIO_ROOT_DIR)/dispatch/src/audio_control_dispatch.o

obj-$(CONFIG_DRIVERS_HDF_AUDIO_RK3568) += 
          $(KHDF_AUDIO_BASE_ROOT_DIR)/device/board/youyootee/yy3568/audio_drivers/

ccflags-$(CONFIG_DRIVERS_HDF_AUDIO) += -lm -lc -lgcc -std=gnu99 -Werror
             -I$(srctree)/$(KHDF_AUDIO_KHDF_ROOT_DIR)/osal/include 
             -I$(srctree)/$(KHDF_FRAMEWORK_ROOT_DIR)/include/core 
             -I$(srctree)/$(KHDF_FRAMEWORK_ROOT_DIR)/include/utils 
             -I$(srctree)/$(KHDF_FRAMEWORK_ROOT_DIR)/include/osal 
             -I$(srctree)/$(KHDF_FRAMEWORK_ROOT_DIR)/include/platform 
             -I$(srctree)/$(KHDF_FRAMEWORK_ROOT_DIR)/include/config 
             -I$(srctree)/$(KHDF_FRAMEWORK_ROOT_DIR)/include/audio 
             -I$(srctree)/$(KHDF_FRAMEWORK_ROOT_DIR)/ability/sbuf/include 
             -I$(srctree)/$(KHDF_FRAMEWORK_ROOT_DIR)/core/common/include/host 
             -I$(srctree)/$(KHDF_FRAMEWORK_ROOT_DIR)/core/host/include 
             -I$(srctree)/$(KHDF_FRAMEWORK_ROOT_DIR)/model/audio/core/include 
             -I$(srctree)/$(KHDF_FRAMEWORK_ROOT_DIR)/model/audio/sapm/include 
             -I$(srctree)/$(KHDF_FRAMEWORK_ROOT_DIR)/model/audio/dispatch/include 
             -I$(srctree)/$(KHDF_FRAMEWORK_ROOT_DIR)/model/audio/common/include 
             -I$(srctree)/bounds_checking_function/include

ccflags-$(CONFIG_DRIVERS_HDF_AUDIO_CAP_REPORT) += -DAUDIO_ENABLE_CAP_THRESHOLD

 

构建YY3568

安装编译器及二进制工具

在源码根目录执行如下命令:

 

youyootee@youyootee:~/ohos/project/youyootee/yy3568$ bash build/prebuilts_download.sh
Looking in indexes: http://repo.huaweicloud.com/repository/pypi/simple
Requirement already satisfied: rich in /home/rice/.local/lib/python3.8/site-packages (13.3.1)
Requirement already satisfied: markdown-it-py<3.0.0,>=2.1.0 in /home/rice/.local/lib/python3.8/site-packages (from rich) (2.2.0)
Requirement already satisfied: pygments<3.0.0,>=2.14.0 in /home/rice/.local/lib/python3.8/site-packages (from rich) (2.14.0)

.....

(from prompt_toolkit==1.0.14) (1.16.0)
Requirement already satisfied: wcwidth in ./prebuilts/python/linux-x86/3.9.2/lib/python3.9/site-packages (from prompt_toolkit==1.0.14) (0.2.5)
WARNING: You are using pip version 20.2.3; however, version 23.0.1 is available.
You should consider upgrading via the '/home/rice/ohos/project/youyootee/yy3568/prebuilts/python/linux-x86/3.9.2/bin/python3.9 -m pip install --upgrade pip' command.
youyootee@youyootee:~/ohos/project/youyootee/yy3568$

 

构建工程

源码根目录执行如下命令:

 

youyootee@youyootee:~/ohos/project/youyootee/yy3568$ ./build.sh --product-name yy3568 –ccache
++++++++++++++++++++++++++++++++++++++++
The system shell is bash 5.0.17(1)-release
++++++++++++++++++++++++++++++++++++++++
2023-04-03 17:45:50
--product-name yy3568 –ccache
[OHOS INFO] Set cache size limit to 100.0 GB

......

[OHOS INFO] c overall build overlap rate: 1.06
[OHOS INFO] 
[OHOS INFO] 
[OHOS INFO] yy3568 build success
[OHOS INFO] cost time: 0:13:17
=====build  successful=====
2023-04-03 17:59:08
++++++++++++++++++++++++++++++++++++++++
youyootee@youyootee:~/ohos/project/youyootee/yy3568$

 

烧录验证

编译完成之后,固件生成到目录:

 

youyootee@youyootee:~/ohos/project/youyootee/yy3568/out/yy3568/packages/phone/images$ ls
boot_linux.img  config.cfg         parameter.txt  resource.img  system.img  updater.img   vendor.img
chip_prod.img   MiniLoaderAll.bin  ramdisk.img    sys_prod.img  uboot.img   userdata.img
youyootee@youyootee:~/ohos/project/youyootee/yy3568/out/yy3568/packages/phone/images$ 

 

使用RKDevTool.exe烧录固件,在镜像目录中存在一个config.cfg,在RKDevTool.exe导入该配置,导入完配置确定一下你的镜像目录是不是全部正确。

PCIe接口

YY3568烧录导入配置

板子按住RECOVERY键,然后上电,这时设备进入loader模式,RKDevTool.exe会显示发现一个LOADER设备,点击执行。

PCIe接口

YY3568烧录流程






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分