电子产业一站式赋能平台

PCB联盟网

搜索
查看: 76|回复: 0
收起左侧

真香!在嵌入式开发板上面适配 OpenHarmony!

[复制链接]

478

主题

478

帖子

1544

积分

三级会员

Rank: 3Rank: 3

积分
1544
发表于 2024-9-23 17:50:00 | 显示全部楼层 |阅读模式
我是老温,一名热爱学习的嵌入式工程师
1 q4 [; Z! E4 E1 i7 a关注我,一起变得更加优秀!6 n7 W* r1 ?# |- C. P# p+ k
我们在前面的文章里面提到,不管是国家政策层面,还是企事业单位方案决策,抑或是高校教育教材,无不体现出了嵌入式软硬件全面国产化的技术趋势。3 W" v# T# f6 n$ Y* \
. W: p7 l: ~$ Q4 e
现在很多嵌入式开发板为了顺应技术国产化的时代趋势,分别根据自身的产品特点,推出了软硬件全国产解决方案,可以点击以下链接进行回顾。
  R+ `6 U0 }# M% v3 E/ f" E& z* D# |3 V# n8 L/ M4 e1 E# w
苹果iPhone16发布了,嵌入式鸿蒙,国产化程度有多高?- P- p4 z5 j# f' G9 v5 X; v
/ W4 X" z7 ^0 K6 l! [5 p
在开源国产软件框架方面,OpenHarmony可以算是一个典型的代表,它是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目。
) z6 x# G/ L$ x) A9 K2 }1 h
( J4 I' }) ~! I1 ^% r' T7 vOpenHarmony 的目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。" m  b( N- h* f9 j; ~0 J* L
/ }9 W% u+ x5 w1 [) _, m
OpenHarmony 的开发者主要分两种类别:面向设备开发和面向应用开发。面向应用开发主要是手机APP侧的,而面向设备开发,就是属于我们嵌入式软件开发的范畴(也称嵌入式OpenHarmony)。
  U% T- R/ V# E3 C; E9 b* A
* `# L1 q: l6 h0 [+ @
' g* O4 [6 R1 I根据硬件芯片的内存资源情况,嵌入式设备端的OpenHarmony主要分为三种类型:轻量系统,小型系统,标准系统,如下图所示:
- r' g/ C7 e! K* }5 U
' U0 b/ w4 o. x$ k0 }  h
$ B% U9 a; J5 T6 C" U0 J# r1 u+ ~: c- r/ i* T4 Z& {( }

3 z$ A2 a, F/ W; Z6 v6 B本篇文章,我们基于创龙的 TL3568-EVM 开发板,从配套资料、编译SDK、系统烧录运行、快速测试和应用开发这几个方面,来综合体验一下嵌入式OpenHarmony标准版操作系统。
9 a3 f, V" }, [
. t7 k. I6 j2 J创龙TL3568-EVM开发板资源图解# E8 d" X( @' B5 i2 O& b
' B4 X3 `2 Z# s5 @$ }( j8 Y
一、配套资料构成$ n* f! i/ m6 S/ X2 H" T
  S' ]( D8 u! a; t7 I9 i
TL3568-EVM 开发板所配套的 OpenHarmony 资料包如下图所示,其中,最关键的软件文档主要集中在【3-用户手册】、【4-软件资料】、【6-开发参考资料】这几个文件夹。
# }- S0 K) n7 z1 n* a2 L
; D( Z2 v+ P8 ^3 R$ C& @: d& D0 o
% f& v0 B! ^4 s0 \+ \* Y& G% y
, |8 \7 F5 c+ p1 G在【3-用户手册】文件夹里面,主要提供了开发环境搭建和调试软件安装教程,提供了快速测试指引文档,提供了串口读写应用开发手册,以及提供了OpenHarmony SDK的编译和固化文档,如下图所示。
+ b4 E7 l" b: r* j( o8 A' P: ?% F1 Y% }- v, t  n, T( z* ~7 z. b: @1 t& s
% K" ~3 u) W+ i) _
1 I- U# s: Y7 E2 O+ Y9 f
【4-软件资料】文件夹主要是OpenHarmony-v3.2.4-Release-v1.0 标准系统 SDK,以及一些开发过程中需要使用到的工具软件,等等。
  S* {9 L1 {8 Q
' ~+ f. b& g; J) y8 a【6-开发参考资料】文件夹主要是 Rockchip RK3568 的官方参考文档以及芯片数据手册,还有创龙根据自身经验总结的开发参考笔记。
- S# |* w7 u2 o" [: g5 V6 b5 b- V
二、编译 OpenHarmony SDK6 @( o% A2 A' \! }. I* ]' S7 l

( M3 n6 t8 ^' V2 K8 ^" Z& V5 M根据《3-1-OpenHarmony系统使用手册.pdf》里面的内容,可以完成OpenHarmony-v3.2.4-Release-v1.0标准系统的编译工作。3 ?/ P4 l: F, w* c
* r. M* Y9 S7 o5 _! r
根据文档的指引,先把OpenHarmonySDK上传到ubuntu的工作目录下,然后对其进行解压,整个SDK软件包解压前大约7.5GB空间,解压后预计占用14GB空间。
& |8 G2 H$ `4 ^8 L3 C$ y. [' Q* |+ P2 s$ p& O6 A4 J7 \4 X
(友情提示:目前OpenHarmony-v3.2.4-Release仅支持在ubuntu18或ubuntu20系统进行编译,不支持更高版本的ubuntu系统)6 `4 \7 p8 x6 i3 G  _9 e

; g( i) Q7 H0 p
9 u5 t8 K7 \. y在编译SDK之前,需要根据文档的1.2节的内容,安装Python3相关的工具,以及执行以下两个脚本:env_setup.sh 和 prebuilts_download.sh,安装编译SDK所需的软件包和工具链。
3 X: y; j+ o( B. t$ C/ p1 t9 ?, F5 g& a, Z) a
最后执行 sudo dpkg-reconfigure dash 把 Shell 终端切换为 Bash,至此,编译环境搭建完成。
5 X  V& l& D( M  o$ p" ]7 L9 t/ C# T- E& T3 ?6 R
在 OpenHarmony SDK 目录下,执行 ./build.sh --product-name rk3568 --ccache 命令,开始进行 SDK 编译。
( D; K% K. C) L
0 @0 L- W" ^6 l3 t: z( l* ^# l; |

. A% M/ K  ]& F! r/ y. X经过漫长的等待(取决于你的电脑性能),如无意外一般都会编译成功。(通常都会发生意外,一般都是内存分配不足导致的)- D9 Z* f% Z6 @' I1 C
9 g& K' t  k! ?7 S+ z$ ^
  D: {: U. w7 A0 Q$ z3 w" l  Q8 q
8 i$ f1 D5 M) J9 l+ O

& ?3 K' \$ J) ~/ W; ]编译成功后,会在 out/rk3568/packages/phone/images/ 目录下,生成各个镜像配置文件,如 uboot.img、resource.img、boot_linux.img、system.img 等文件,这些文件将会用来制作 SD 启动卡或固化到 eMMC 里面。- k! |. I+ {8 z* Z. a; J
, j" [; S3 E4 w
' m! K7 e" S* |: h
$ V- ?1 a& ^: ~' E
三、烧录并运行系统
, j. X3 K, W8 @  {5 q: f+ z: J8 q0 d" l& B6 u, z8 F) T
根据《3-2-系统启动卡制作及系统固化.pdf》里面的内容,可以把编译成功的镜像,制作成SD启动卡,并且让开发板从 SD 启动卡启动 OpenHarmony系统。
. q' R3 A& f# ]; x0 I) `$ \. \
3 D8 v/ n. J/ i% s4 l* K& o也可以制作 SD 升级卡,通过 SD 升级卡把系统固化在eMMC里面,这种方式通常用于产品批量生产的时候。
! j$ y! ~3 k0 @9 e, H% \9 `% ?, k
- f* }; ~0 d% c, t, J7 D5 H. C7 M; c
; D# I+ P5 _4 p3 F5 a6 O" o' B
资料配套的软件 SD_Firmware_Tool.exe 主要是用来制作 SD 启动卡或 SD 升级卡的,而 RKDevTool.exe 主要是通过USB的方式,把系统固化到 eMMC 里面的。# d; K! m, ~3 o9 u4 K
1 }" w2 K1 K1 _$ v
四、快速测试和应用开发* W5 P3 b- {" @* l3 H
  B; I3 Z3 B4 l; t1 U
根据《2-1-评估板测试手册.pdf》里面的内容,我们可以在ubuntu系统里面安装 HDC 调试工具,在ubuntu环境下,对开发板的多种硬件外设进行快速测试,目前支持的测试项目,如下图所示。
% u' g$ d2 u9 \2 Y& e4 G4 G5 D: t$ B9 R/ k1 m" J& H

: L) P- v: V" G# v( w$ A0 q6 u7 A0 M
根据《2-2-OpenHarmony应用开发手册.pdf》里面的内容,开发板目前配套了一个串口读写例程 uart_rw,可以用于检验开发板的 RS232 和 RS485 通信功能。' r9 E4 i" W& S5 I- Y

+ g) i" _" d7 i$ Q5 s/ I8 b5 V  E' t( W8 z8 z/ M

3 t' q. a0 @% I+ j" c2 n7 |(通过阅读源码发现,这个例程其实是基于Linux的系统调用接口开发的 Linux C 应用程序,而不是基于 HDF 驱动框架开发的应用程序。)
4 P" t1 \. g2 o( X( B
" {) v  w8 r0 G$ T0 Q( S+ j( Q五、测评总结
, g6 G; H$ k9 n* H' f$ f$ q6 a  W
" W$ S$ x' D. h- j1 `$ _* y8 c根据创龙 TL3568-EVM 开发板提供的 OpenHarmony 配套资料,开发者可以体验一套比较完整的嵌入式设备端OpenHarmony开发流程,包括:开发环境搭建,编译SDK,烧录和固化系统镜像,编写简单的应用程序,等等。: r9 M% g% n) R2 m  p
* w% ^+ Y$ Y3 k. ~- c1 l
由于这款开发板刚推出不久,并且 OpenHarmony 相关的资料还在不断迭代更新,所以这款开发板所适配的 OpenHarmony 驱动程序数量还不是很多,目前支持如下图所示的外设驱动程序。
( K6 w2 S; V  B4 T% c. o0 i6 Z) Y7 H) R, P

+ c* e8 t& o! R! @6 x; s$ x6 v* c# y/ J" B5 T8 Z  Q4 m
配套资料里面没有提供详细的 OpenHarmony SDK 移植适配过程,SDK的具体介绍和相关的 HDF 驱动手册也有待更新,但对专注于应用业务开发的工程师来说,影响不是很大。2 `" j% A0 n/ {/ n2 R
, \4 y7 R9 F; D& Y+ r
(目前网络上貌似也比较少嵌入式 OpenHarmony 的系统教程,期待不久的将来能有开发板厂家可以跟进~)
3 X$ U5 n+ b! ]. `( t# v) |  H5 Z+ z2 n& Y( p1 [
总的来说,TL3568-EVM 所配套的 OpenHarmony 系统,适合用在一些HDF驱动程序已经适配的业务场景,面向的用户群体是有一定开发经验的嵌入式软件工程师,不太适合新手进行学习入门。# @  t$ X- Z4 z" z$ ?' ?* X& I  s

6 E' x7 r1 q7 |' d% j  F% w/ m/ t& ]4 }& [3 r. d8 v+ b, q, k# R
! k7 W5 X- f0 g8 z; `

# w8 Q7 T" r% g. H" r8 Z
0 Y7 u5 u$ J- H1 T- k" V) {/ K7 f% c- w; @5 c
$ L5 g$ o$ Z# w3 q8 g: ?- s  \
9 |  z( ~5 W+ Z- v
) ]  w8 }) {. `$ @
-END-
! {& S; K: Q. `# o2 |( D' d& [往期推荐:点击图片即可跳转阅读) y0 [8 v( V' E
                                                        : H3 S/ h; r+ P% s
                                                               
3 b) R1 k+ W2 B" L' H                                                                       
' x  p6 A4 O& Q! R5 z5 s/ A                                                                                ' F: H" b$ n; f5 c$ W( s
  l  d- |0 L+ f( S+ Z+ l
                                                                               
6 _5 g, T, R, A6 X$ w5 F# _$ C; |' T                                                                                        苹果iPhone16发布了,嵌入式鸿蒙,国产化程度有多高?
6 X% I; `1 U; j+ Z1 U# X' o. o                                                       
! y' Y, e( q- z# \                                                               
" _- o9 p: ~8 Z4 q- c) \                                                                       
; l; o3 N8 ?! I% x. N  T$ m                                                                               
% I9 R' H# p5 @8 e0 r  U! W2 e0 K% S  R$ E1 z0 g. u1 Q
                                                                                / l' A$ x# o; W% p. e
                                                                                        【5折福利】选型必看!这款RK3588开发板究竟有何魅力?
" F! u8 l7 _" d: Q/ l* l, {                                                               
8 P/ |5 C% f; r1 _                                                                       
! n9 V. w; ^- y; @! l9 P                                                                                1 U! p; ~) ]/ X% i' ?4 L( h( j, O
! O5 K) o8 @2 M9 I* R1 U" U  T
                                                                                , @2 _! B$ ?0 d; K, s/ [* x4 k
                                                                                        用模块化和面向对象的方式,编写单片机LCD驱动程序5 ]; J  q! s/ F3 l# K. t
                                                                                ! W0 f  x( |& D
                                                                        0 @+ d3 F5 R* h8 q
                                                               
- c2 [: K- |8 i/ O1 Q                                                        我是老温,一名热爱学习的嵌入式工程师3 w7 r2 k9 D0 R4 \
关注我,一起变得更加优秀!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表