在2月25日剛剛圓滿閉幕的首屆開放原子開源基金會OpenHarmony技術峰會(2023)生態與互聯分論壇上,潤和軟件旗下子公司江蘇潤開鴻數字科技有限公司(簡稱:潤開鴻)生態技術總監連志安發表了題為《OpenHarmony生態共建——多種指令集架構芯片適配》的主題演講,詳細解讀了指令集架構適配OpenHarmony的技術發展路線。
內容快照
硬件生態是整個OpenHarmony的基石,有了更多的指令集支持、更多的芯片支持、更多的開發板、更多的設備才能帶來更多的用戶,從而實現整個生態的繁榮發展。
截至峰會啟幕,已通過OpenHarmony兼容性測評的商用設備和開發板均達到100+款,適配支持的芯片平臺已有40多款,指令集架構已覆蓋ARM、RISC-V、MIPS、LoongArch等主流架構。
OpenHarmony芯片生態作戰地圖:分為芯片指令集、芯片架構、芯片廠家、開發板、驅動框架、驅動外設等。
在OpenHarmony生態委員會的指導下,已成立芯片&開發板工作組,潤和軟件作為組長單位,牽頭制定了OpenHarmony芯片適配標準以及OpenHarmony芯片適配規劃路標,與各生態伙伴/廠商攜手共拓OpenHarmony南向生態,為硬件開發各環節上的伙伴企業進行技術賦能與支持。
作為Dev-Board-SIG組長單位,潤和軟件組織輸出《OpenHarmony富設備/瘦設備核心板規范》,持續引領ARM、RISC-V、LoongArch等豐富的指令集架構適配,為基于OpenHarmony的應用開發提供豐富多樣硬件設備承載,當前在社區中已發布的OpenHarmony開發板已達40+款。
基于已適配芯片設計研發的OpenHarmony商用設備已覆蓋多個主流行業,商業生態繁榮度初顯。
OpenHarmony系統移植詳解
解耦設計思想
OpenHarmony系統的移植部分的代碼解耦做得非常好。從代碼的設計理念上來看,移植主要是三部分的內容:
(1)ARCH部分的代碼
(2)SoC部分的代碼
(3)board級的代碼
ARCH也就是架構,例如ARM架構、RISC-V架構等。
SoC是具體芯片,例如STM32、海思等,一個架構可以有多個芯片。
Board是具體開發板,例如3861有潤和的開發板、也有小熊派的開發板。
通常來說,相關架構的不同SoC,應該是共用一套ARCH代碼,不需要為每個SoC都重新寫一遍ARCH代碼,可以增加代碼的復用。
相同SoC的不同board開發板,也應該共用一套SoC代碼即可,板卡之間的代碼差異應該放到board中。
基于如上設計,我們移植的類型可以分為三部分:
(1)ARCH移植:全新的架構級別的移植
(2)SoC移植:已支持的架構做SoC級別的移植
(3)board級別的移植:只針對開發板做少量移植
移植的難度也是ARCH最難,SoC較難、board較簡單。
//相關代碼
(1)ARCH相關代碼
ARCH相關的代碼存放在kernel\liteos_m\arch文件夾中
可以看到目前已支持的架構有ARM(M3、M4、M33、M7、ARM9)、csky、risc-v、xtensa。
(2)SoC相關的代碼位于:device\soc
(3)board相關的代碼位于:device/board
(4)vendor相關代碼
除了以上代碼之外,還有廠商配置相關代碼,這一部分主要是用于編譯系統、HDF配置等,路徑為:vendor
內容如下:
移植
確定移植的系統類型:L0、L1、L2,需要移植哪些部分,整體可以分為三大類移植
(1)ARCH級別的移植:全新的架構級別的移植
(2)SOC級別的移植:已支持的架構做SoC級別的移植
(3)Board級別的移植:只針對開發板做少量移植適配
移植流程如下:
//1.SOC級別的移植
如果所選主板的芯片架構已經在OpenHarmony的ARCH中已有,則只需要移植BSP即可。
BSP系統移植包含以下幾步操作:
(1)板級驅動適配
(2)HAL層實現
(3)XTS測試套
(4)業務功能驗證
//2.輕量系統ARCH級別的移植
對于輕量系統現在不支持的架構的芯片,則需要移植ARCH。
目錄規范:
liteos-m中主要分為ARCH、Components、Kernel、Utils等模塊。
硬件相關的代碼放在arch目錄中,其余為硬件無關的代碼。
arch/include 目錄定義通用的文件以及函數列表,該目錄下的所有函數在新增arch組件時都需要適配,詳見每一個頭文件
//3.案例-MIPS架構適配輕量系統
實現基于MIPS架構的芯片適配輕量系統
全新架構的適配,包括:
(1)MIPS ARCH代碼實現
(2)1C300B SOC代碼實現
(3)智龍開發板相關功能
移植過程中難點:
任務上下文切換:涉及MIPS 匯編代碼
//4.輕量系統ARCH級別的移植
實現基于LoongArch架構的芯片適配小型系統
基于最新的3.2Beta3版本
代碼后續全開源
移植過程中難點:
(1)LoongArch是一個全新的架構
(2)小型系統代碼存在芯片、架構耦合
基于LoongArch龍芯架構的新品發布
此次OpenHarmony技術峰會上,潤和軟件發布了HH-SCDAYU400、HH-SCDAYU401、HH-SCDAYU410三款基于LoongArch龍芯架構的OpenHarmony開發平臺
-
芯片
+關注
關注
454文章
50460瀏覽量
421967 -
OpenHarmony
+關注
關注
25文章
3665瀏覽量
16161
發布評論請先 登錄
相關推薦
評論