電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 38|回復(fù): 0
收起左側(cè)

真香!在嵌入式開發(fā)板上面適配 OpenHarmony!

[復(fù)制鏈接]

448

主題

448

帖子

539

積分

二級會員

Rank: 2

積分
539
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2024-9-23 17:50:00 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
我是老溫,一名熱愛學(xué)習(xí)的嵌入式工程師
; U0 @/ A( X: C- m關(guān)注我,一起變得更加優(yōu)秀!2 {( f' I$ d  W0 E6 M9 l9 {
我們在前面的文章里面提到,不管是國家政策層面,還是企事業(yè)單位方案決策,抑或是高校教育教材,無不體現(xiàn)出了嵌入式軟硬件全面國產(chǎn)化的技術(shù)趨勢。
5 Y, B/ ?; {# M, P& ~5 a% J; y, P" Z4 l) _; b; T
現(xiàn)在很多嵌入式開發(fā)板為了順應(yīng)技術(shù)國產(chǎn)化的時代趨勢,分別根據(jù)自身的產(chǎn)品特點(diǎn),推出了軟硬件全國產(chǎn)解決方案,可以點(diǎn)擊以下鏈接進(jìn)行回顧。
7 o& {( l3 Y* H. x( S1 O; z# ~, r/ A1 m+ A
蘋果iPhone16發(fā)布了,嵌入式鴻蒙,國產(chǎn)化程度有多高?
5 B; P  `- ^2 O: T
) }& L  B3 c7 E6 Z9 y) M在開源國產(chǎn)軟件框架方面,OpenHarmony可以算是一個典型的代表,它是由開放原子開源基金會(OpenAtom Foundation)孵化及運(yùn)營的開源項(xiàng)目。. x9 a/ f5 H# q+ v% m

* n0 J) n; H) R* ~0 C- iOpenHarmony 的目標(biāo)是面向全場景、全連接、全智能時代,基于開源的方式,搭建一個智能終端設(shè)備操作系統(tǒng)的框架和平臺,促進(jìn)萬物互聯(lián)產(chǎn)業(yè)的繁榮發(fā)展。+ ~& q: c4 j5 [, [: w+ E
  h% k- A! N4 L7 b( a) y1 e  A
OpenHarmony 的開發(fā)者主要分兩種類別:面向設(shè)備開發(fā)和面向應(yīng)用開發(fā)。面向應(yīng)用開發(fā)主要是手機(jī)APP側(cè)的,而面向設(shè)備開發(fā),就是屬于我們嵌入式軟件開發(fā)的范疇(也稱嵌入式OpenHarmony)。! O* N0 ]4 G, z- {: n6 t4 X/ s

) W  D2 _) W/ e3 v: H
% c% K/ o4 s# V/ l/ J) d; l根據(jù)硬件芯片的內(nèi)存資源情況,嵌入式設(shè)備端的OpenHarmony主要分為三種類型:輕量系統(tǒng),小型系統(tǒng),標(biāo)準(zhǔn)系統(tǒng),如下圖所示:* H; y- i# \0 u3 c& _& v& w% f

" r4 X, T) H6 P3 M4 q% P5 I  t. j) N2 Q6 d/ e! f
3 S" v# v% n! G0 U* z* G2 }
4 G7 C7 d6 a% P8 U
本篇文章,我們基于創(chuàng)龍的 TL3568-EVM 開發(fā)板,從配套資料、編譯SDK、系統(tǒng)燒錄運(yùn)行、快速測試和應(yīng)用開發(fā)這幾個方面,來綜合體驗(yàn)一下嵌入式OpenHarmony標(biāo)準(zhǔn)版操作系統(tǒng)。
) x8 o5 Q. S: a9 ~* N5 v8 C4 j6 `  l; B) e- S3 P0 u4 ~1 N' t2 y
創(chuàng)龍TL3568-EVM開發(fā)板資源圖解3 a5 Z! c) ~4 r, P3 @/ y8 D0 m

8 K% o0 Z& T' r& h( l/ J9 P一、配套資料構(gòu)成
' j% l5 t2 W2 y$ H) F- Q  ~
6 E, _/ {/ \% N* }# RTL3568-EVM 開發(fā)板所配套的 OpenHarmony 資料包如下圖所示,其中,最關(guān)鍵的軟件文檔主要集中在【3-用戶手冊】、【4-軟件資料】、【6-開發(fā)參考資料】這幾個文件夾。" m  y) L# r5 I- _+ j  a

* ~$ E( Z  J- ^2 j% @8 a7 o
/ K/ B) {' J8 h
9 g( {; ?$ b, W在【3-用戶手冊】文件夾里面,主要提供了開發(fā)環(huán)境搭建和調(diào)試軟件安裝教程,提供了快速測試指引文檔,提供了串口讀寫應(yīng)用開發(fā)手冊,以及提供了OpenHarmony SDK的編譯和固化文檔,如下圖所示。
; P8 @" c4 B5 t2 D; V$ B
+ P0 ~2 B; a" A" V; x$ H  G
! o5 {+ P& m! H& V& e1 C$ r
/ \9 K2 h* B, h【4-軟件資料】文件夾主要是OpenHarmony-v3.2.4-Release-v1.0 標(biāo)準(zhǔn)系統(tǒng) SDK,以及一些開發(fā)過程中需要使用到的工具軟件,等等。  o0 V8 O6 p# Q

! ^8 z7 N7 O! G, c, K% ^) C9 G; t【6-開發(fā)參考資料】文件夾主要是 Rockchip RK3568 的官方參考文檔以及芯片數(shù)據(jù)手冊,還有創(chuàng)龍根據(jù)自身經(jīng)驗(yàn)總結(jié)的開發(fā)參考筆記。/ O. \9 k" h+ i

1 l  H; n; g' [( |: Q  v+ Y二、編譯 OpenHarmony SDK
# p+ a2 f# D* P3 f
- H! C: r5 E+ g根據(jù)《3-1-OpenHarmony系統(tǒng)使用手冊.pdf》里面的內(nèi)容,可以完成OpenHarmony-v3.2.4-Release-v1.0標(biāo)準(zhǔn)系統(tǒng)的編譯工作。
+ C4 a8 S1 Z7 b$ {+ F+ Z( r2 Q6 M* i
根據(jù)文檔的指引,先把OpenHarmonySDK上傳到ubuntu的工作目錄下,然后對其進(jìn)行解壓,整個SDK軟件包解壓前大約7.5GB空間,解壓后預(yù)計(jì)占用14GB空間。: t+ G' z' q4 h6 v$ z: p, J
7 A. i# _: ~+ D: R2 |7 y
(友情提示:目前OpenHarmony-v3.2.4-Release僅支持在ubuntu18或ubuntu20系統(tǒng)進(jìn)行編譯,不支持更高版本的ubuntu系統(tǒng))# g* W" q8 W$ L0 {# f" h6 z* y
8 p  d* R/ C6 t5 Y' Z
2 R8 p& ]2 G* x: n  }1 v2 i
在編譯SDK之前,需要根據(jù)文檔的1.2節(jié)的內(nèi)容,安裝Python3相關(guān)的工具,以及執(zhí)行以下兩個腳本:env_setup.sh 和 prebuilts_download.sh,安裝編譯SDK所需的軟件包和工具鏈。8 j) r$ v; _  W9 H6 W$ \# y

% O" k2 o# I: H, ]! t最后執(zhí)行 sudo dpkg-reconfigure dash 把 Shell 終端切換為 Bash,至此,編譯環(huán)境搭建完成。, q* E& m2 X! Q- V
" H* _3 i- p. T! W; f: @6 f; |
在 OpenHarmony SDK 目錄下,執(zhí)行 ./build.sh --product-name rk3568 --ccache 命令,開始進(jìn)行 SDK 編譯。# e' [, f) |5 E9 H; Z; l
5 J" H5 b; B; s9 _* a# j2 T

7 M# V0 H# |9 J# @4 L; t* R/ p5 o" m# n0 x
經(jīng)過漫長的等待(取決于你的電腦性能),如無意外一般都會編譯成功。(通常都會發(fā)生意外,一般都是內(nèi)存分配不足導(dǎo)致的)
6 C; p- @8 ?, {) V3 W+ L; g! ~/ {$ G+ v( [/ Q

0 U: x4 V) P6 N9 K- Q( v4 v# j. I- ?) [
7 {8 h( Q/ V9 h- P4 a6 G1 a5 U
編譯成功后,會在 out/rk3568/packages/phone/images/ 目錄下,生成各個鏡像配置文件,如 uboot.img、resource.img、boot_linux.img、system.img 等文件,這些文件將會用來制作 SD 啟動卡或固化到 eMMC 里面。
6 y/ o. P9 n. m0 n
6 v% U' O; }4 a. T3 d$ E, C' T7 L) U# }6 P4 J

- i/ Z4 j1 R. C' u三、燒錄并運(yùn)行系統(tǒng)
$ A( S2 M% ]% I/ B( `: C$ H4 e( p+ V. l# {
根據(jù)《3-2-系統(tǒng)啟動卡制作及系統(tǒng)固化.pdf》里面的內(nèi)容,可以把編譯成功的鏡像,制作成SD啟動卡,并且讓開發(fā)板從 SD 啟動卡啟動 OpenHarmony系統(tǒng)。
; Q) v* ~* ?$ e) d4 L9 _: I
/ k8 e; M) S4 W! N3 k8 P也可以制作 SD 升級卡,通過 SD 升級卡把系統(tǒng)固化在eMMC里面,這種方式通常用于產(chǎn)品批量生產(chǎn)的時候。. S5 x1 J9 c' e' ]$ `* ~, @% c

1 w3 a6 t* c% N
, u: R& r7 g: N9 W# U6 q$ `( G# p, M8 j% j# ?! s7 W- h* e4 [
資料配套的軟件 SD_Firmware_Tool.exe 主要是用來制作 SD 啟動卡或 SD 升級卡的,而 RKDevTool.exe 主要是通過USB的方式,把系統(tǒng)固化到 eMMC 里面的。  Y1 ]1 ?8 x$ p4 s0 n, h. h% Q

' Q/ U; H1 |3 o. p' U/ M四、快速測試和應(yīng)用開發(fā)
5 [) r2 S# o5 d) c5 \5 y: U) M* R
) A( }% H3 l. U7 B* {) Z根據(jù)《2-1-評估板測試手冊.pdf》里面的內(nèi)容,我們可以在ubuntu系統(tǒng)里面安裝 HDC 調(diào)試工具,在ubuntu環(huán)境下,對開發(fā)板的多種硬件外設(shè)進(jìn)行快速測試,目前支持的測試項(xiàng)目,如下圖所示。
1 v& b- X: Z2 @
# S: |! k& d: l- z
& Y6 c# h4 W+ V8 T% J" O1 G: ^; V/ g: O& S+ C7 O; A, b
根據(jù)《2-2-OpenHarmony應(yīng)用開發(fā)手冊.pdf》里面的內(nèi)容,開發(fā)板目前配套了一個串口讀寫例程 uart_rw,可以用于檢驗(yàn)開發(fā)板的 RS232 和 RS485 通信功能。
' x$ Q! Z) a. p7 X$ i+ h1 T! ^3 _8 p4 P; h. S4 z" J$ y

) o: m: ?6 A  [3 _
) g/ B$ w! V8 r9 }" \6 f(通過閱讀源碼發(fā)現(xiàn),這個例程其實(shí)是基于Linux的系統(tǒng)調(diào)用接口開發(fā)的 Linux C 應(yīng)用程序,而不是基于 HDF 驅(qū)動框架開發(fā)的應(yīng)用程序。)* ~- C8 ~) {" z5 e7 Z

" m" |! x, T* }3 [. `8 a五、測評總結(jié)
. `) s" h* V. f9 S  o4 W* T! P' \1 l) r& \
根據(jù)創(chuàng)龍 TL3568-EVM 開發(fā)板提供的 OpenHarmony 配套資料,開發(fā)者可以體驗(yàn)一套比較完整的嵌入式設(shè)備端OpenHarmony開發(fā)流程,包括:開發(fā)環(huán)境搭建,編譯SDK,燒錄和固化系統(tǒng)鏡像,編寫簡單的應(yīng)用程序,等等。( U- R* W- d) u; y8 \8 O

/ F9 Y) O; n8 J- P. m由于這款開發(fā)板剛推出不久,并且 OpenHarmony 相關(guān)的資料還在不斷迭代更新,所以這款開發(fā)板所適配的 OpenHarmony 驅(qū)動程序數(shù)量還不是很多,目前支持如下圖所示的外設(shè)驅(qū)動程序。
) E! _  Q5 Y" r, m1 u" F4 `6 {; P- T5 }! U- I# M0 k

9 m) g1 T( c0 Y7 |6 R; M0 V* Z8 [* R8 I3 O' u9 ^( x" w% X
配套資料里面沒有提供詳細(xì)的 OpenHarmony SDK 移植適配過程,SDK的具體介紹和相關(guān)的 HDF 驅(qū)動手冊也有待更新,但對專注于應(yīng)用業(yè)務(wù)開發(fā)的工程師來說,影響不是很大。
( h# R" A, n5 j1 e2 t  E0 ^/ D; X
3 t- [# P, M* n1 T" f; U, m(目前網(wǎng)絡(luò)上貌似也比較少嵌入式 OpenHarmony 的系統(tǒng)教程,期待不久的將來能有開發(fā)板廠家可以跟進(jìn)~), e0 d7 `! K4 w! t- ~) O( V2 h0 X
, I* a2 C: [& {6 k4 j# K- m3 A: j
總的來說,TL3568-EVM 所配套的 OpenHarmony 系統(tǒng),適合用在一些HDF驅(qū)動程序已經(jīng)適配的業(yè)務(wù)場景,面向的用戶群體是有一定開發(fā)經(jīng)驗(yàn)的嵌入式軟件工程師,不太適合新手進(jìn)行學(xué)習(xí)入門。
7 \. M, M4 @5 C* g, Y- g, Y5 J3 ~
% K1 x+ V% R% T! n
- ?& P' [0 G+ [; `# t+ W8 x9 z4 {9 k% y: y6 z" |) `: v

0 f) s5 Z8 x: e  I
$ F6 J1 W5 h7 m5 i# l& c
. y" ?* l: n  H& Q: c" G/ R
. M& {2 r! C) E4 w( N& i1 S0 t+ c5 ~6 A: ^  m& [3 I

, X: O/ D6 [# i2 H-END-
+ [+ ^3 a% S0 J( j2 h: I1 j往期推薦:點(diǎn)擊圖片即可跳轉(zhuǎn)閱讀* R7 ?+ f# s7 z9 W4 u
                                                        # [6 ^. X( p8 d4 b3 o
                                                               
, G0 Z( |' M0 S4 D# f' b                                                                       
- p$ f- z, K" ?  Y% L                                                                                . ^/ X. j. i' h& w& ~
/ w( v& H4 [- q9 F  I) ]: V
                                                                               
5 o7 S8 `) T! n9 E+ H2 _$ z/ H                                                                                        蘋果iPhone16發(fā)布了,嵌入式鴻蒙,國產(chǎn)化程度有多高?
+ u% k' l% T9 t; m, k$ p- K* n. u                                                       
- S1 c5 D* @; c8 y* t                                                               
# Q* l3 f! h3 w! }                                                                       
; T, V" B4 D4 R! F5 M                                                                                ! U/ x, c7 a; o2 }( l

& j7 r' w* F7 }0 j- p) X( `                                                                                & j; ]' P- y* N' l" i  a# e- H
                                                                                        【5折福利】選型必看!這款RK3588開發(fā)板究竟有何魅力?3 T* `) g0 m- F" ~4 w% r
                                                                # E& l* _2 F) D7 T1 k* X
                                                                        # p* m- N+ H3 Z+ J# W
                                                                                - r1 A9 P8 N* N& V4 H

6 ]+ z' `# h( I+ ~# C2 o                                                                                . X2 e- g; _$ U" Q0 y5 i: q
                                                                                        用模塊化和面向?qū)ο蟮姆绞,編寫單片機(jī)LCD驅(qū)動程序
9 W8 f( ~! \, t$ E( [                                                                               
4 f: J' f  J/ b4 j! w- p                                                                        : o" u: r& c/ y) j( R
                                                               
3 R/ ~' l5 U& l. B2 A                                                        我是老溫,一名熱愛學(xué)習(xí)的嵌入式工程師
! f9 u' I7 G- P( w3 `關(guān)注我,一起變得更加優(yōu)秀!

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

關(guān)閉

站長推薦上一條 /1 下一條


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表