摘要:本文簡單介紹OpenHarmony輕量系統(tǒng)移植,會分多篇
適合群體:想自己動手移植OpenHarmony輕量系統(tǒng)的朋友
開始嘗試講解一下系統(tǒng)的移植,主要是輕量系統(tǒng),也可能會順便講下L1移植。
1.1 移植類型
OpenHarmony輕量系統(tǒng)的移植比較簡單,代碼中解耦做得非常好。從代碼的設(shè)計(jì)理念上來看,移植主要是3部分的內(nèi)容:
(1)ARCH部分的代碼
(2)SoC部分的代碼
(3)board級的代碼
從上至下我們可以用一張圖來做對比:
ARCH也就是架構(gòu),例如arm架構(gòu)、RISC-V架構(gòu)等
SoC是具體芯片,例如STM32、海思等,一個(gè)架構(gòu)可以有多個(gè)芯片。
Board是具體開發(fā)板,例如3861有潤和的開發(fā)板、也有小熊派的開發(fā)板。
通常來說,相關(guān)架構(gòu)的不同SoC,應(yīng)該是共用一套ARCH代碼,不需要為每個(gè)SoC都重新寫一遍ARCH代碼,可以增加代碼的復(fù)用。
相關(guān)SoC的不通過board開發(fā)板,也應(yīng)該共用一套SoC代碼即可,板卡之間的代碼差異應(yīng)該放到board中。
基于如上設(shè)計(jì),我們移植的類型可以分為3部分:
(1)ARCH移植:全新的架構(gòu)級別的移植
(2)SoC移植:已支持的架構(gòu)做SoC級別的移植
(3)board級別的移植:只針對開發(fā)板做少量移植。
移植的難度也是ARCH最難,SoC較難、board較簡單。
1.2 相關(guān)代碼
我們看下OpenHarmony輕量系統(tǒng)之3部分的代碼分別在哪里:
(1)ARCH相關(guān)代碼
ARCH相關(guān)的代碼存放在kernelliteos_march文件夾中
可以看到目前已支持的架構(gòu)有ARM(M3、M4、M33、M7、ARM9)、csky、risc-v、xtensa。
(2)SoC相關(guān)代碼
SoC相關(guān)的代碼位于:devicesoc
(3)board相關(guān)代碼
board相關(guān)的代碼位于:device/board
(4)vendor相關(guān)代碼
除了以上3部分的代碼之外,還有廠商配置相關(guān)代碼,這一部分主要是用于編譯系統(tǒng)、HDF配置等,路徑為:vendor
內(nèi)容如下:
1.3 移植思路
建議是先從最簡單的開始,路線如下:
vendor —— board —— soc —— ARCH
下一篇文章,將開始講解如何創(chuàng)建一個(gè)自己的vendor廠商配置和編譯流程。
一開始基于hi3861,之后會基于STM32或者gd32單片機(jī)開始,大家也可以在評論區(qū)里寫上想要移植的芯片型號。
原文標(biāo)題:移植OpenHarmony輕量系統(tǒng)【1】移植思路
文章出處:【微信公眾號:HarmonyOS官方合作社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
審核編輯:湯梓紅
-
soc
+關(guān)注
關(guān)注
38文章
4064瀏覽量
217545 -
移植
+關(guān)注
關(guān)注
1文章
375瀏覽量
28072 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3607瀏覽量
15956
原文標(biāo)題:移植OpenHarmony輕量系統(tǒng)【1】移植思路
文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發(fā)燒友開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論