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