电子产业一站式赋能平台

PCB联盟网

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

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

[复制链接]

569

主题

569

帖子

4259

积分

四级会员

Rank: 4

积分
4259
发表于 2024-9-23 17:50:00 | 显示全部楼层 |阅读模式
我是老温,一名热爱学习的嵌入式工程师3 d  y- I; d( [5 s
关注我,一起变得更加优秀!6 L' r$ n/ H2 Z1 K' P
我们在前面的文章里面提到,不管是国家政策层面,还是企事业单位方案决策,抑或是高校教育教材,无不体现出了嵌入式软硬件全面国产化的技术趋势。
' u- ]7 y8 f* J# y! K% I) a; L# g9 R/ h7 y7 T5 O
现在很多嵌入式开发板为了顺应技术国产化的时代趋势,分别根据自身的产品特点,推出了软硬件全国产解决方案,可以点击以下链接进行回顾。
' w( m" U3 S9 ?' D& D' ~9 d# l6 Y8 j9 y( W) q6 Q  X6 X
苹果iPhone16发布了,嵌入式鸿蒙,国产化程度有多高?# ^% [; M; k7 Z1 E' g5 h; U; v
4 N& y$ e: _2 M: m$ u' T# I0 b
在开源国产软件框架方面,OpenHarmony可以算是一个典型的代表,它是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目。' @! ?) w/ Y2 l  K; Y

7 \" t2 b. N3 A+ P& s3 l$ ]% IOpenHarmony 的目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。
3 Z! k9 r- ?0 R0 y
* ?4 ^# B( U  nOpenHarmony 的开发者主要分两种类别:面向设备开发和面向应用开发。面向应用开发主要是手机APP侧的,而面向设备开发,就是属于我们嵌入式软件开发的范畴(也称嵌入式OpenHarmony)。
( _, O- R, w; \' i2 H; J/ w
# T) O; P$ J% w5 E0 u& q5 ]: f0 F/ s; K
根据硬件芯片的内存资源情况,嵌入式设备端的OpenHarmony主要分为三种类型:轻量系统,小型系统,标准系统,如下图所示:
5 \6 ]/ M; Q! H6 d' J
/ ~' l* L! ?( ~- A# e1 E- x
8 @; D, h; N8 t% u% H& |
8 C) l; Z1 I0 X* c
+ I$ }1 F3 A! L  z本篇文章,我们基于创龙的 TL3568-EVM 开发板,从配套资料、编译SDK、系统烧录运行、快速测试和应用开发这几个方面,来综合体验一下嵌入式OpenHarmony标准版操作系统。
3 X) n- m) Z% E! [' ?
% d7 o* ~% p; C" C( W! @. y* l: @$ s) o创龙TL3568-EVM开发板资源图解
2 k3 _1 d5 }: M
; l4 i, Z/ V, I4 `' Z一、配套资料构成
+ N% L8 n4 w$ Q5 K# \! o: h2 i: {8 K, ?! G- \- A9 U
TL3568-EVM 开发板所配套的 OpenHarmony 资料包如下图所示,其中,最关键的软件文档主要集中在【3-用户手册】、【4-软件资料】、【6-开发参考资料】这几个文件夹。: ?* ?) [  i" t% q( X9 j% P- W% Y

3 |  O; I! k% t( L" j- f  z( L$ y. z& B% q/ g6 G) ^3 E% _

0 g: B/ Y1 B* {, a; j" w在【3-用户手册】文件夹里面,主要提供了开发环境搭建和调试软件安装教程,提供了快速测试指引文档,提供了串口读写应用开发手册,以及提供了OpenHarmony SDK的编译和固化文档,如下图所示。8 Z, a' u% t. Y" R- e+ L: ?$ |
4 q2 B# H; Z# t) q, `* W
+ l+ U& `' p# u7 \# W  U; r
% z7 U# k7 F4 \6 A3 r/ \
【4-软件资料】文件夹主要是OpenHarmony-v3.2.4-Release-v1.0 标准系统 SDK,以及一些开发过程中需要使用到的工具软件,等等。7 T' a5 k$ s: `! r7 E# _7 l, Z  _

4 V2 j& K/ W& ?) i& V0 S0 Y+ }【6-开发参考资料】文件夹主要是 Rockchip RK3568 的官方参考文档以及芯片数据手册,还有创龙根据自身经验总结的开发参考笔记。" t% D& ~+ g( m! a# t
# E  ]/ r  y2 n* ?( _% t# G
二、编译 OpenHarmony SDK6 X7 V/ C" v/ s4 J

( |8 G' x/ {2 J根据《3-1-OpenHarmony系统使用手册.pdf》里面的内容,可以完成OpenHarmony-v3.2.4-Release-v1.0标准系统的编译工作。
3 i2 w3 q  C8 i' ^
& G% D8 @+ }/ k! k- e# n根据文档的指引,先把OpenHarmonySDK上传到ubuntu的工作目录下,然后对其进行解压,整个SDK软件包解压前大约7.5GB空间,解压后预计占用14GB空间。+ S3 N9 G% Y, T) G/ ]
! \2 `, b! U! s( e4 f9 \) a
(友情提示:目前OpenHarmony-v3.2.4-Release仅支持在ubuntu18或ubuntu20系统进行编译,不支持更高版本的ubuntu系统)
& m) }. k  y& ?. u. \+ e; ]& A

% g3 h& u/ E! D" d; T; r; ]! ^; c" y在编译SDK之前,需要根据文档的1.2节的内容,安装Python3相关的工具,以及执行以下两个脚本:env_setup.sh 和 prebuilts_download.sh,安装编译SDK所需的软件包和工具链。
0 ]4 l( k% b% a% {& q& h; t+ \4 G4 t0 z/ V  Z9 ?
最后执行 sudo dpkg-reconfigure dash 把 Shell 终端切换为 Bash,至此,编译环境搭建完成。- n" T5 H' o+ h0 U' f
( t) D, C1 [* G. y
在 OpenHarmony SDK 目录下,执行 ./build.sh --product-name rk3568 --ccache 命令,开始进行 SDK 编译。
8 g# A" F  u' |/ f# P( |
  Z' g$ r* E1 d1 `' _+ q
- x" ]2 t3 X' D* x& P
- `" ^6 N- i  d经过漫长的等待(取决于你的电脑性能),如无意外一般都会编译成功。(通常都会发生意外,一般都是内存分配不足导致的)0 M  D4 M0 O6 Q8 W* W, `4 ~! k

8 Q4 a& }) B; N
# o0 [7 F" o& O0 U' a8 G( @/ H  m, U$ X9 p4 k- r4 G. q
9 N% I1 S5 K5 @$ H! t* x! d  {
编译成功后,会在 out/rk3568/packages/phone/images/ 目录下,生成各个镜像配置文件,如 uboot.img、resource.img、boot_linux.img、system.img 等文件,这些文件将会用来制作 SD 启动卡或固化到 eMMC 里面。
) X( J- w* j9 ?8 d
9 W5 B6 B  j% t" J. N- U+ d  x+ Y6 @1 X6 |0 k

8 ^9 C8 g+ J, e) i+ R! |三、烧录并运行系统
0 \+ p: [* e" h9 L7 s% m: |+ L: ?$ \8 y# D, j) [3 O' ]# S
根据《3-2-系统启动卡制作及系统固化.pdf》里面的内容,可以把编译成功的镜像,制作成SD启动卡,并且让开发板从 SD 启动卡启动 OpenHarmony系统。1 X/ L; D7 ?+ V4 R& |; a

2 t" `+ X4 V3 X也可以制作 SD 升级卡,通过 SD 升级卡把系统固化在eMMC里面,这种方式通常用于产品批量生产的时候。
+ a# H- a: J+ d2 v) w, O! l% q4 t) \; A8 U9 H2 s" s3 z) ~- B0 d/ |8 @
+ a- v" R( d, K5 C2 H

+ E3 D3 j0 g# d1 I9 t7 _* C9 K8 j5 r资料配套的软件 SD_Firmware_Tool.exe 主要是用来制作 SD 启动卡或 SD 升级卡的,而 RKDevTool.exe 主要是通过USB的方式,把系统固化到 eMMC 里面的。. i% T* Z* g: k

! f3 p2 t$ q% j四、快速测试和应用开发
8 C: [* _3 ?& Y  y0 A% v% K& I! E/ [- }2 {' O5 p' u$ S
根据《2-1-评估板测试手册.pdf》里面的内容,我们可以在ubuntu系统里面安装 HDC 调试工具,在ubuntu环境下,对开发板的多种硬件外设进行快速测试,目前支持的测试项目,如下图所示。
/ |) z* W( v$ Q9 r2 ?, B% y
; t5 H- j' w3 U3 N6 z: Z1 ?4 ^; F6 v6 Y7 z& r4 `; I

; K& H9 g* w) c+ a9 Y根据《2-2-OpenHarmony应用开发手册.pdf》里面的内容,开发板目前配套了一个串口读写例程 uart_rw,可以用于检验开发板的 RS232 和 RS485 通信功能。
1 D- E7 Y! }1 R, |, _1 z, d; i/ M$ T" {8 a8 D6 b" K5 x9 E

0 U4 `/ P, h) R6 `$ a4 V+ r8 Z; \" p2 S1 |* L
(通过阅读源码发现,这个例程其实是基于Linux的系统调用接口开发的 Linux C 应用程序,而不是基于 HDF 驱动框架开发的应用程序。)$ t- o  Q: X: n( N5 p/ z7 h/ x+ Y1 S7 m
2 n! p! f4 U6 r4 L, B
五、测评总结
$ g" m& U6 |: h
$ L! U9 N5 h1 m  E0 H) z根据创龙 TL3568-EVM 开发板提供的 OpenHarmony 配套资料,开发者可以体验一套比较完整的嵌入式设备端OpenHarmony开发流程,包括:开发环境搭建,编译SDK,烧录和固化系统镜像,编写简单的应用程序,等等。- ^0 R1 T$ u2 ~# \) Z
& M! K" R4 \+ O9 w. @
由于这款开发板刚推出不久,并且 OpenHarmony 相关的资料还在不断迭代更新,所以这款开发板所适配的 OpenHarmony 驱动程序数量还不是很多,目前支持如下图所示的外设驱动程序。
& y0 G! v& P* L+ e) }1 C2 G  O! k5 ~8 H& t# _6 D

! ^8 t& x; E% [% n' q' [0 O+ I
* t7 y5 r+ f0 t4 X配套资料里面没有提供详细的 OpenHarmony SDK 移植适配过程,SDK的具体介绍和相关的 HDF 驱动手册也有待更新,但对专注于应用业务开发的工程师来说,影响不是很大。
# G% \4 z9 a3 P3 ?* R4 N1 R3 s; |! I0 V# S) ~' C- ^
(目前网络上貌似也比较少嵌入式 OpenHarmony 的系统教程,期待不久的将来能有开发板厂家可以跟进~)
* m& y; c. J6 U( |# v6 s' v% N1 K- J. X/ n8 i; J( f
总的来说,TL3568-EVM 所配套的 OpenHarmony 系统,适合用在一些HDF驱动程序已经适配的业务场景,面向的用户群体是有一定开发经验的嵌入式软件工程师,不太适合新手进行学习入门。$ g6 T: h# V8 |* z7 g8 d6 Y

1 |$ O5 _/ S( {0 a! r/ ?5 I' b8 U7 T6 u, ?* S

0 Q: E! j: ^! _8 R/ y
  B, v; u5 L  w. p# w; _0 o7 |0 w: j" d$ F: ^

# w* C- D4 O. w9 M; z; r
) u; e5 X9 C" |8 V9 f
$ ^% E# @: ]. U1 m( @# X! `; o& E" j6 L0 Y+ B# e5 N" h) L6 J
-END-/ Z& y2 o' q; S% G
往期推荐:点击图片即可跳转阅读- @/ B# G; u$ X  i
                                                        ; Q6 V  i/ z- b8 F7 j6 a4 _
                                                               
: K& a7 u8 p1 T                                                                        5 c! l$ ?' Z; h0 i# w
                                                                                ( R/ R8 u. }/ _# W) t. c

- y# c; ]6 B; h8 L# b5 f# u                                                                               
( ^* }; `6 e3 X2 V                                                                                        苹果iPhone16发布了,嵌入式鸿蒙,国产化程度有多高?0 L2 `/ k# c7 {3 m! N) O, \
                                                       
; Z' l( @2 u0 o4 T5 C                                                                . ]- l2 U0 N" j0 e# g
                                                                       
" |: B/ G2 ^; z% b                                                                                ! U1 @1 |7 U) e8 k& Q& X" O, }  l

- t2 p7 _, z' B7 S& g! y                                                                                $ j) X% T; O( H
                                                                                        【5折福利】选型必看!这款RK3588开发板究竟有何魅力?& U( U2 K1 D* B
                                                                0 J3 ~9 x' P& Q+ F* [
                                                                       
$ |8 p  K) I" i                                                                                1 F/ r% M$ I( _! j$ c* e

) U/ ]5 L, f8 k  p' g% ?) b                                                                                ( m5 J* T' y5 U5 |
                                                                                        用模块化和面向对象的方式,编写单片机LCD驱动程序$ t% p% j8 l4 u) m
                                                                                1 A. k: r) O9 L' |
                                                                       
5 n) B0 a* K8 a0 S( N/ X                                                                + g9 l/ @: R- `. n- z% a# J  i
                                                        我是老温,一名热爱学习的嵌入式工程师
: t1 V! C6 ]9 J" X0 `/ Q$ D8 ?' o6 K关注我,一起变得更加优秀!
回复

使用道具 举报

发表回复

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

本版积分规则


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