适配OpenHarmony到YY3568上的流程

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详细的硬件说明
yy3568正面硬件描述
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 yournamegit config --global user.email your-email-addressgit 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/repopip3 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-verifyrepo sync -crepo forall -c 'git lfs pull'  
通过repo + https 下载。
repo init -u https://gitee.com/openharmony/manifest -b refs/tags/openharmony-v3.2-beta5 --no-repo-verifyrepo sync -crepo forall -c 'git lfs pull'  
适配yy3568
适配vendor仓
作者已经适配好了对应的vendor仓库,仓库如下:https://gitee.com/ricechen0/vendor_yy3568
直接克隆适配好的vendor操作流程:
youyootee@youyootee:~/ohos/project/youyootee/yy3568$ cd vendoryouyootee@youyootee:~/ohos/project/youyootee/yy3568/vendor$ mkdir youyooteeyouyootee@youyootee:~/ohos/project/youyootee/yy3568/vendor$ cd youyooteeyouyootee@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 youyooteeyouyootee@youyootee:~/ohos/project/youyootee/yy3568/device/board$ cd youyooteeyouyootee@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/khdfkhdf_framework_root_dir = drivers/hdf/frameworkkhdf_audio_root_dir = ../../../../../framework/model/audioobj-$(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.oobj-$(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/includeccflags-$(config_drivers_hdf_audio_cap_report) += -daudio_enable_cap_threshold  
构建yy3568
安装编译器及二进制工具
在源码根目录执行如下命令:
youyootee@youyootee:~/ohos/project/youyootee/yy3568$ bash build/prebuilts_download.shlooking in indexes: http://repo.huaweicloud.com/repository/pypi/simplerequirement already satisfied: rich in /home/rice/.local/lib/python3.8/site-packages (13.3.1)requirement already satisfied: markdown-it-py=2.1.0 in /home/rice/.local/lib/python3.8/site-packages (from rich) (2.2.0)requirement already satisfied: pygments=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$ lsboot_linux.img  config.cfg         parameter.txt  resource.img  system.img  updater.img   vendor.imgchip_prod.img   miniloaderall.bin  ramdisk.img    sys_prod.img  uboot.img   userdata.imgyouyootee@youyootee:~/ohos/project/youyootee/yy3568/out/yy3568/packages/phone/images$   
使用rkdevtool.exe烧录固件,在镜像目录中存在一个config.cfg,在rkdevtool.exe导入该配置,导入完配置确定一下你的镜像目录是不是全部正确。
yy3568烧录导入配置
板子按住recovery键,然后上电,这时设备进入loader模式,rkdevtool.exe会显示发现一个loader设备,点击执行。
yy3568烧录流程


基于PPS组装的锂金属电池具有优异的循环稳定性和安全性
有什么便宜的国产蓝牙耳机?盘点四款便宜好用的国产蓝牙
小米折叠屏手机设计图疑似曝光
Spansion荣获中兴通讯两项大奖
光照培养箱的运作模式及维护方式的说明
适配OpenHarmony到YY3568上的流程
智能充电管理集成电路MAX1870简介及应用
家电能效标识怎么看?家电能效标识怎么申请?
哈尔滨新增28个电改精髓增量配网试点
华为云帮助企业做好核心数据灾备,为企业数据安全与稳定发展提供保障
如何选择液晶拼接屏
基于74LS164交通信号控制系统逻辑电路的设计
揭秘大功率绕线电感封装尺寸变化对电感参数的影响
特斯拉回应磷酸铁锂版Model3车主称电量无法充满
三星S8评测:高屏占比里面的小秘密,偷偷告诉你
自制空芯电感,Coil
2019华南工业智造展深圳开幕在即!汇聚业界翘楚,解读5G时代
萌版蜘蛛侠:爬墙机器人DIY作品秀
固态硬盘Trim指令是什么有什么作用如何正常工作
网络视频监控系统相关知识科普