RK3568主板(DC_A568)适配电鸿PowerHarmony双屏显示开发实践
随着新型电力系统、电气数字化、智能配电和边缘计算的发展,很多电力终端开始采用嵌入式计算平台完成数据采集、设备控制、状态显示和边缘分析。操作系统软件上,电鸿PowerHarmony就是面向电力行业及相关嵌入式、边缘设备的操作系统体系。对于采用Arm Cortex-A系列处理器的设备,可以结合PowerHarmony+EulerEmbeddedSystem(PHR)等进行端侧应用开发,比如手持终端、人脸门禁、智能输电监测设备等端侧设备。
本文以定昌电子的RK3568开发板DC_A568为例,从SDK准备、编译环境搭建,到DTS设备树修改以及HDMI+LVDS双屏显示调试,对PowerHarmony适配过程进行梳理,为后续电力终端、智能变电设备、智能输电监测、边缘网关等设备开发提供参考。

01、案例效果展示



02、PowerHarmony 简介
PowerHarmony是面向电力及行业终端场景的操作系统体系,根据应用处理器和设备形态,主要有PowerHarmony+EulerEmbeddedSystem(PHR)和 PowerHarmony+EulerServerSystem(PEE) 等几类:
PHR主要面向Arm Cortex-A系列应用处理器,支持设备最低128MB内存,并提供图形界面、3D GPU、硬件合成、应用框架以及更加丰富的控件和动效,适合手持终端、人脸门禁、智能输电监测等端侧设备。
PEE则面向X86_64、ARM、SW64、RISC-V、LoongArch等处理器平台,最低支持512MB内存,多操作系统(内核)的异构混合部署(运行),边端软总线,多设备自发现,自组网,支持实时能力,支持应用安全隔离技术,安全应用独占资源,支持轻量级容器技术(iSula)。主要应用于视频云节点、充电桩、智能量侧终端等嵌入式边侧设备。

对于采用瑞芯微RK3568这类Arm Cortex-A系列处理器的嵌入式设备而言,PHR体系与其应用场景具有较好的匹配度。
03、RK3568主板适配电鸿
RK3568主板公板DC_A568是面向多系统、多接口扩展的通用开发平台。在系统层面,平台已经支持Android、Ubuntu、星光麒麟、OpenHarmony4.1.3等多种操作系统环境,并提供相应的开发支持;在硬件层面,内置3个VOP,可实现双屏同显、异显,板子提供LVDS、HDMI、MIPI DSI、EDP多显示接口,可据项目需求搭配显示方案,比如HDMI+LVDS、LVDS+EDP、LVDS+MIPI等组合。

对于电力终端开发,这种硬件扩展能力可用于开发带人机交互界面HMI设备。例如主屏显示实时运行参数,副屏显示状态信息或辅助操作界面;通过RS485、RS232、I2C、Modbus等接口,还可以进一步连接传感器、控制器及其他工业设备。因此,适配PowerHarmony系统,DC_A568除了可以验证系统启动和双屏显示功能,还能在外设驱动、数据采集、图形交互及行业应用开发延伸,后续可能会继续更新。
04、powerharmony 开发环境
需要先准备对应版本的PowerHarmony SDK:
PowerHarmony_SDK_V1.0.1.0.tar.gz
完成SDK解压后,可以先确认源码目录结构以及对应的开发板配置。DTS配置,直接参考安卓平台的。安装编译工具:
// 在源码目录/build/ 下执行prebuilts脚本,安装编译器及二进制工具 ./prebuilts_download.sh
// 在源码根目录安装 hbpython3 -m pip install --user build/hb
// 设置环境变量 Echo export PATH=~/.local/bin:$PATH' >> ~/.bashrcsource~/.bashrc
05、LVDS+HDMI双显调试
PowerHarmony RK3568主板首先要增加DTS文件:
device/board/hihope/rk3568/kernel/dts/rockchip/ztl-rk3568-a.dts
本次PowerHarmony适配以LVDS+HDMI双屏显示为例进行调试。首先打开DTS中的HDMI相关节点,并配置显示数据输出路径:
&hdmi {
status = "okay";};
&hdmi_in_vp0 {
status = "okay";};
&hdmi_in_vp1 {
status = "disabled";};
&route_hdmi {
status = "okay";
connect = <&vp0_out_hdmi>;
};
LVDS显示部分则需要结合GM8775转换芯片进行配置,在DTS中打开GM8775:
gm8775: gm8775@2d{
status ="okay";
compatible ="ztl,gm8775";
reg = <0x2d>;
rst_gpio = <&gpio3 RK_PB5 GPIO_ACTIVE_HIGH>;
};
dsi0_panel: dsi0-panel@0{
status ="okay";
compatible ="simple-panel-dsi";
reg = <0>;reset-delay-ms = <60>;
enable-delay-ms = <60>;
prepare-delay-ms = <60>;
unprepare-delay-ms = <60>;
disable-delay-ms = <60>;
dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;
dsi,format= <MIPI_DSI_FMT_RGB888>;
//bus-format= <MEDIA_BUS_FMT_RGB888_1X24>;
rockchip,data-mapping ="vesa";
rockchip,data-width = <24>;
dsi,lanes = <4>;
panel-init-sequence = [
23 00 02 27 AA
23 00 02 48 02
23 00 02 B6 20
编译:
usage() {
echo"Usage:"
echo" ./build.sh -k compile the board kernel"
echo" ./build.sh -a full rk3568 build"
echo" ./build.sh -p pack GB-PWOHOS-RK3568-<time>-a.img"
}
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)