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