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

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

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

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

[復(fù)制鏈接]

448

主題

448

帖子

539

積分

二級(jí)會(huì)員

Rank: 2

積分
539
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2024-9-23 17:50:00 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
我是老溫,一名熱愛(ài)學(xué)習(xí)的嵌入式工程師
  Y" ]! N6 b+ r關(guān)注我,一起變得更加優(yōu)秀!
: `: V2 X4 [* i0 V我們?cè)谇懊娴奈恼吕锩嫣岬,不管是?guó)家政策層面,還是企事業(yè)單位方案決策,抑或是高校教育教材,無(wú)不體現(xiàn)出了嵌入式軟硬件全面國(guó)產(chǎn)化的技術(shù)趨勢(shì)。0 @2 y* f4 p6 l# M

9 F4 A7 e/ e, Q+ `2 R- D現(xiàn)在很多嵌入式開(kāi)發(fā)板為了順應(yīng)技術(shù)國(guó)產(chǎn)化的時(shí)代趨勢(shì),分別根據(jù)自身的產(chǎn)品特點(diǎn),推出了軟硬件全國(guó)產(chǎn)解決方案,可以點(diǎn)擊以下鏈接進(jìn)行回顧。6 P! A3 {5 E, b2 w+ U' ]

& a! Z5 x. v9 c4 Y" |& V5 o蘋(píng)果iPhone16發(fā)布了,嵌入式鴻蒙,國(guó)產(chǎn)化程度有多高?
3 ?  ~  G& Q. g5 z# @1 H; L
7 ?; L) y0 C; a+ i在開(kāi)源國(guó)產(chǎn)軟件框架方面,OpenHarmony可以算是一個(gè)典型的代表,它是由開(kāi)放原子開(kāi)源基金會(huì)(OpenAtom Foundation)孵化及運(yùn)營(yíng)的開(kāi)源項(xiàng)目。/ U! \% ^% O+ k- C

4 A2 ~/ O1 J2 q6 x9 EOpenHarmony 的目標(biāo)是面向全場(chǎng)景、全連接、全智能時(shí)代,基于開(kāi)源的方式,搭建一個(gè)智能終端設(shè)備操作系統(tǒng)的框架和平臺(tái),促進(jìn)萬(wàn)物互聯(lián)產(chǎn)業(yè)的繁榮發(fā)展。
8 K6 L' D! \0 V- s5 Y# G5 K$ _# A* L! i) ?/ Q& e
OpenHarmony 的開(kāi)發(fā)者主要分兩種類(lèi)別:面向設(shè)備開(kāi)發(fā)和面向應(yīng)用開(kāi)發(fā)。面向應(yīng)用開(kāi)發(fā)主要是手機(jī)APP側(cè)的,而面向設(shè)備開(kāi)發(fā),就是屬于我們嵌入式軟件開(kāi)發(fā)的范疇(也稱(chēng)嵌入式OpenHarmony)。3 l7 c; _6 H% Y

9 s" g# D- a3 i7 E% c1 ?( n/ @1 q
( @$ s3 f" ]( h根據(jù)硬件芯片的內(nèi)存資源情況,嵌入式設(shè)備端的OpenHarmony主要分為三種類(lèi)型:輕量系統(tǒng),小型系統(tǒng),標(biāo)準(zhǔn)系統(tǒng),如下圖所示:9 n1 T3 X3 P- c* o$ n

* j8 R7 s  l4 m  y- _
  U" s( g8 B7 o5 I  l+ x
+ ^  Y! ]5 n+ m5 ]7 g- u& m+ I$ S& ~3 ~9 `' l# v: a
本篇文章,我們基于創(chuàng)龍的 TL3568-EVM 開(kāi)發(fā)板,從配套資料、編譯SDK、系統(tǒng)燒錄運(yùn)行、快速測(cè)試和應(yīng)用開(kāi)發(fā)這幾個(gè)方面,來(lái)綜合體驗(yàn)一下嵌入式OpenHarmony標(biāo)準(zhǔn)版操作系統(tǒng)。
& }, ^" V/ p1 v0 j! V1 ^0 F" b& k# e& X; ^
創(chuàng)龍TL3568-EVM開(kāi)發(fā)板資源圖解+ c+ k( ^, e0 I( I7 b! S3 V* g

% G* P, n$ ]( i, a- k- G一、配套資料構(gòu)成
2 Y7 Q; E# h5 Z
1 d7 O, H' F2 b8 VTL3568-EVM 開(kāi)發(fā)板所配套的 OpenHarmony 資料包如下圖所示,其中,最關(guān)鍵的軟件文檔主要集中在【3-用戶(hù)手冊(cè)】、【4-軟件資料】、【6-開(kāi)發(fā)參考資料】這幾個(gè)文件夾。/ ~8 L, d+ g' a# \; k
3 Y% [6 H6 Q/ ^' y( L$ S& b0 p

* K5 {7 {. Y5 s: {$ v5 X0 S1 h
2 [+ W1 S* ]# W在【3-用戶(hù)手冊(cè)】文件夾里面,主要提供了開(kāi)發(fā)環(huán)境搭建和調(diào)試軟件安裝教程,提供了快速測(cè)試指引文檔,提供了串口讀寫(xiě)應(yīng)用開(kāi)發(fā)手冊(cè),以及提供了OpenHarmony SDK的編譯和固化文檔,如下圖所示。
; p" ?; X3 s# y& k3 ]) n
; A4 F' E. [* N/ V1 `
0 G+ h' u; @( x% t
* D- |" R) G7 G# P6 E( n8 Q1 ]【4-軟件資料】文件夾主要是OpenHarmony-v3.2.4-Release-v1.0 標(biāo)準(zhǔn)系統(tǒng) SDK,以及一些開(kāi)發(fā)過(guò)程中需要使用到的工具軟件,等等。
7 B% ]3 Z& V- B. ~  X: O! z& \
【6-開(kāi)發(fā)參考資料】文件夾主要是 Rockchip RK3568 的官方參考文檔以及芯片數(shù)據(jù)手冊(cè),還有創(chuàng)龍根據(jù)自身經(jīng)驗(yàn)總結(jié)的開(kāi)發(fā)參考筆記。
  _- t" R2 X( l2 ~
5 z8 z$ v' B; W0 W  B% c二、編譯 OpenHarmony SDK
- ?$ ?8 f7 q# J, {$ `
- q7 k8 j0 q; L; e  z% m根據(jù)《3-1-OpenHarmony系統(tǒng)使用手冊(cè).pdf》里面的內(nèi)容,可以完成OpenHarmony-v3.2.4-Release-v1.0標(biāo)準(zhǔn)系統(tǒng)的編譯工作。
6 o( q; d3 q  T$ i) u2 L! f- A. a
: U: G. T9 h/ T8 U# l* a根據(jù)文檔的指引,先把OpenHarmonySDK上傳到ubuntu的工作目錄下,然后對(duì)其進(jìn)行解壓,整個(gè)SDK軟件包解壓前大約7.5GB空間,解壓后預(yù)計(jì)占用14GB空間。& ]& A& v2 p  w5 C; R9 C3 V. u
0 H' M! N% ~7 k
(友情提示:目前OpenHarmony-v3.2.4-Release僅支持在ubuntu18或ubuntu20系統(tǒng)進(jìn)行編譯,不支持更高版本的ubuntu系統(tǒng))
, N: p. X' I$ D( U2 F2 u# G/ @; m/ g0 S8 O; K$ i# |0 z* D
2 `( g+ ]# J0 h# N+ G
在編譯SDK之前,需要根據(jù)文檔的1.2節(jié)的內(nèi)容,安裝Python3相關(guān)的工具,以及執(zhí)行以下兩個(gè)腳本:env_setup.sh 和 prebuilts_download.sh,安裝編譯SDK所需的軟件包和工具鏈。! C6 {9 f, ~; f/ K/ H

' s6 p% ]/ f: c" I最后執(zhí)行 sudo dpkg-reconfigure dash 把 Shell 終端切換為 Bash,至此,編譯環(huán)境搭建完成。! a* F- }1 R2 |( D( _9 c

) O( [: ^; l+ ~在 OpenHarmony SDK 目錄下,執(zhí)行 ./build.sh --product-name rk3568 --ccache 命令,開(kāi)始進(jìn)行 SDK 編譯。: U( v/ \+ d1 T0 S

+ U* ^5 d' x2 R+ g/ f+ H" N' u; T! m5 g6 ~6 V- E7 `

  K# M  L6 p1 B6 d' J1 c  B5 X7 o經(jīng)過(guò)漫長(zhǎng)的等待(取決于你的電腦性能),如無(wú)意外一般都會(huì)編譯成功。(通常都會(huì)發(fā)生意外,一般都是內(nèi)存分配不足導(dǎo)致的)+ [  U) Z7 ?" }/ M& G1 B: ^7 c/ E

. C$ `) G& E8 H' W/ K7 c" o8 p9 s' Z' {  P: o

& x" v0 o1 J3 [/ V/ H% h- k. G7 {
# _2 T) k, q2 ?% L編譯成功后,會(huì)在 out/rk3568/packages/phone/images/ 目錄下,生成各個(gè)鏡像配置文件,如 uboot.img、resource.img、boot_linux.img、system.img 等文件,這些文件將會(huì)用來(lái)制作 SD 啟動(dòng)卡或固化到 eMMC 里面。0 C' R' x7 q, c. \% j1 S" ]

: \5 }% Q; B: U+ M! U: p% V# n7 M) i% l; U/ e

" C6 J# [" N( m, B& e2 z) S三、燒錄并運(yùn)行系統(tǒng)
! D5 L* Q. q$ R& e, D
0 i% g* n1 G$ Z4 i; {1 l" W- J根據(jù)《3-2-系統(tǒng)啟動(dòng)卡制作及系統(tǒng)固化.pdf》里面的內(nèi)容,可以把編譯成功的鏡像,制作成SD啟動(dòng)卡,并且讓開(kāi)發(fā)板從 SD 啟動(dòng)卡啟動(dòng) OpenHarmony系統(tǒng)。2 D! k* v1 [0 n! L1 U

* J+ A+ r9 e0 D8 p也可以制作 SD 升級(jí)卡,通過(guò) SD 升級(jí)卡把系統(tǒng)固化在eMMC里面,這種方式通常用于產(chǎn)品批量生產(chǎn)的時(shí)候。
6 s5 ^% \9 P/ @# d6 O2 c6 S; R8 O2 a$ O1 |$ ~' G: Q: V: u

; ?3 r# X1 A1 Z* ^8 U1 l  |
! B& `" o% K! o" p% _2 T) q. H資料配套的軟件 SD_Firmware_Tool.exe 主要是用來(lái)制作 SD 啟動(dòng)卡或 SD 升級(jí)卡的,而 RKDevTool.exe 主要是通過(guò)USB的方式,把系統(tǒng)固化到 eMMC 里面的。$ ^& W; q$ Z8 c+ e+ y6 N" H6 Y

5 B, J, m% w* P* l; R5 E四、快速測(cè)試和應(yīng)用開(kāi)發(fā)
4 }  y4 P$ q( a: P# ~2 N4 W; L4 e* w/ H8 c+ e
根據(jù)《2-1-評(píng)估板測(cè)試手冊(cè).pdf》里面的內(nèi)容,我們可以在ubuntu系統(tǒng)里面安裝 HDC 調(diào)試工具,在ubuntu環(huán)境下,對(duì)開(kāi)發(fā)板的多種硬件外設(shè)進(jìn)行快速測(cè)試,目前支持的測(cè)試項(xiàng)目,如下圖所示。
+ G8 P7 t! b& U/ l; M* X
2 M0 g/ k3 e7 p! a* ^! c3 Z2 D% O5 Z" d5 Z( o
4 K7 B/ V: c: A2 G# b5 ~1 ?: ?* T
根據(jù)《2-2-OpenHarmony應(yīng)用開(kāi)發(fā)手冊(cè).pdf》里面的內(nèi)容,開(kāi)發(fā)板目前配套了一個(gè)串口讀寫(xiě)例程 uart_rw,可以用于檢驗(yàn)開(kāi)發(fā)板的 RS232 和 RS485 通信功能。' G( n' D4 ~) M: l8 B' P
6 b9 Z4 ^1 \* V

# y4 `3 ^  g2 l3 }# m
* I. t! a, u* ^2 u- o& f1 Q(通過(guò)閱讀源碼發(fā)現(xiàn),這個(gè)例程其實(shí)是基于Linux的系統(tǒng)調(diào)用接口開(kāi)發(fā)的 Linux C 應(yīng)用程序,而不是基于 HDF 驅(qū)動(dòng)框架開(kāi)發(fā)的應(yīng)用程序。)
! V) m6 k" z  U# V, B& k' i1 [7 Y" E2 X" D# s
五、測(cè)評(píng)總結(jié)
: a  Z+ {4 }- X- t" j0 s- k
) B! |6 \* m6 J- |' J, W根據(jù)創(chuàng)龍 TL3568-EVM 開(kāi)發(fā)板提供的 OpenHarmony 配套資料,開(kāi)發(fā)者可以體驗(yàn)一套比較完整的嵌入式設(shè)備端OpenHarmony開(kāi)發(fā)流程,包括:開(kāi)發(fā)環(huán)境搭建,編譯SDK,燒錄和固化系統(tǒng)鏡像,編寫(xiě)簡(jiǎn)單的應(yīng)用程序,等等。
8 B9 h2 c  j8 [/ [- T, l( V0 @: @8 Z7 j* W8 L4 N: W
由于這款開(kāi)發(fā)板剛推出不久,并且 OpenHarmony 相關(guān)的資料還在不斷迭代更新,所以這款開(kāi)發(fā)板所適配的 OpenHarmony 驅(qū)動(dòng)程序數(shù)量還不是很多,目前支持如下圖所示的外設(shè)驅(qū)動(dòng)程序。. ^  |7 A$ D( ~  l" y3 R4 o: U2 u
! R. Z, x9 q4 n+ m; G
3 h4 ~1 Z3 I7 y( q3 B

1 @* x! K9 u- J6 H配套資料里面沒(méi)有提供詳細(xì)的 OpenHarmony SDK 移植適配過(guò)程,SDK的具體介紹和相關(guān)的 HDF 驅(qū)動(dòng)手冊(cè)也有待更新,但對(duì)專(zhuān)注于應(yīng)用業(yè)務(wù)開(kāi)發(fā)的工程師來(lái)說(shuō),影響不是很大。
" B+ i  H8 o. t0 V/ I( F" v! M$ H+ `7 M1 k9 i: C
(目前網(wǎng)絡(luò)上貌似也比較少嵌入式 OpenHarmony 的系統(tǒng)教程,期待不久的將來(lái)能有開(kāi)發(fā)板廠(chǎng)家可以跟進(jìn)~), k7 _4 _; |: s6 N4 A, P
+ v8 [; S4 S) ~1 C4 e
總的來(lái)說(shuō),TL3568-EVM 所配套的 OpenHarmony 系統(tǒng),適合用在一些HDF驅(qū)動(dòng)程序已經(jīng)適配的業(yè)務(wù)場(chǎng)景,面向的用戶(hù)群體是有一定開(kāi)發(fā)經(jīng)驗(yàn)的嵌入式軟件工程師,不太適合新手進(jìn)行學(xué)習(xí)入門(mén)。5 p2 Z  I. `* x$ h

" o8 x# I! E  ^
: a: {& `* I: J5 A4 N7 j. v! K
, V3 }$ S1 R) Y% L  L+ }  ~  \" `) K2 |. C/ g. p

! B! p) ]6 Y& t2 r) z
* e. @7 O- I8 j5 l' Q# P( s
4 v+ m1 l. B+ I( d3 W! Q& O. @- ]8 A$ P6 w1 P& C2 X1 P$ {; Z; U

- q  |8 b! C: h! y% M# G3 l-END-
" H, V& F9 w! Z* o2 |往期推薦:點(diǎn)擊圖片即可跳轉(zhuǎn)閱讀; D8 v0 G2 d5 G2 ^& O# s
                                                       
1 U7 ?- b/ J* i# h$ i, W                                                                % n4 O# U* h( Y4 t: W
                                                                       
0 Z, s% C' _8 Y9 G                                                                                . Q0 Q! k" _( U6 e
  h6 [0 d5 V2 a" g1 u& I5 r5 u7 [5 G( i& o: p
                                                                                ; m$ v- \. k/ k3 O: w3 j
                                                                                        蘋(píng)果iPhone16發(fā)布了,嵌入式鴻蒙,國(guó)產(chǎn)化程度有多高?" q& |$ K* q+ ~6 ~% P/ t. }" d
                                                       
; u& a/ [) w5 W& x                                                               
- {$ H& M1 X% J9 q: Y! a9 r$ k                                                                        % u; r4 D% j6 O9 A/ f' \$ i) k
                                                                               
+ M9 D" k2 `! W. H9 B0 O9 ~3 T6 Z1 J+ q3 B
                                                                               
8 y: N8 {# f+ o% l                                                                                        【5折福利】選型必看!這款RK3588開(kāi)發(fā)板究竟有何魅力?2 n' I- E0 e) X( ~9 z. y; P# I
                                                                1 ^8 A$ u/ J4 k" K, m& f( w
                                                                        0 X- a1 b% K& G# W* Y" N) J( O* J' }* A
                                                                                ) K- q; f8 k" @5 Z7 a8 m! o
; m: z# ]$ a0 V
                                                                                1 P6 u& ]* W# Q' {
                                                                                        用模塊化和面向?qū)ο蟮姆绞,編?xiě)單片機(jī)LCD驅(qū)動(dòng)程序
- M( n) L2 z2 a                                                                                # A5 [& B" O1 X( K0 {
                                                                       
/ m% c1 p0 n& B# q                                                               
' ]  x5 g" ^; E! p                                                        我是老溫,一名熱愛(ài)學(xué)習(xí)的嵌入式工程師, t, Y( |  a$ ^4 M* Z% r( n
關(guān)注我,一起變得更加優(yōu)秀!

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

本版積分規(guī)則

關(guān)閉

站長(zhǎng)推薦上一條 /1 下一條


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