背景
在各行各業存在很多不同的智能設備,每個設備都使用芯片去實現不同的業務場景需求。本文將以常用的STM32F407ZG芯片為例,介紹OpenHarmony瘦設備內核移植方法,希望能對熱愛OpenHarmony的開發小伙伴有所幫助。
認識芯片架構、Soc、開發板
芯片架構是指芯片的內部器件構造以及對應的指令集,比如PC使用的英特爾i7或者AMD的R7-4800都是x86架構,手機使用的驍龍8Gen2芯片使用的則是ARM架構。
SoC是指具體的芯片架構實現,芯片廠商針對不同的應用場景開發出的芯片各不相同,但要符合架構定義,比如STM32F470就會有不同的定制版本,有些Flash會大一些,有些則是芯片封裝或者引腳數不同。
開發板則是板卡廠商針對不同的產品定制的不同開發板,會根據業務需求設計不同的PCB、外設器件。
本文采用正點原子的STM32F407ZG開發板,對應的開發板、SoC、芯片架構分別是:
-
開發板型號:explorer(探索者)
-
板卡廠商:alientek(正點原子)
-
芯片型號:STM32F407ZGT6
-
芯片系列:STM32F407
-
芯片廠商:ST(意法半導體)
-
具體架構:Cortex-M4
-
芯片架構:ARM
內核移植的四個層面
OH適配分為如下四個層面
Vendor
負責配置的目標產品的內核類型、系統版本、子系統、三方庫等。編譯時,工具鏈依賴這里的配置。Vendor的代碼位于://vendor/
Board
開發板層面的移植,芯片已適配OH,只是開發板不同,難度不大。配置板卡編譯相關的工具鏈,以及最為核心的啟動匯編命令、鏈接庫腳本,將指定這里的main函數來啟動系統。Board相關的代碼位于://device/board
SoC
SoC片上系統層面的移植,芯片架構已支持,有一定難度
配置芯片層級編譯依賴庫,包括CMSIS、HAL(硬件抽象層)等,這里包含操作總線、串口、時鐘、寄存等庫函數。SoC相關的代碼位于://device/soc
ARCH
目標芯片架構不在支持的范圍內的全新架構移植,難度較大。ARCH相關的代碼存放在//kernel/liteos_m/arch文件夾中。整體難易度:Vendor < Board < SoC < ARCH
OpenHarmony瘦設備已支持的芯片架構
源碼路徑為:kernel/liteos_m/arch/arm
總結
OpenHarmony瘦設備的移植需要從芯片架構、SoC、開發板開始,因此本文首先講述了三者之前的關系。瘦設備使用的內核為LiteOS-M,針對不同層面的移植工作的難易度、工作量也會有所不同,根據以往經驗難易度排序為Vendor < Board < SoC < ARCH,下篇文章將繼續介紹移植前的準備工作。
更多熱點文章閱讀
- OpenHarmony開發者大會圓滿舉辦:3.2 Release版本發布,生態步入快車道
- DevEco Studio 3.1 Beta新特性知多少?
- Cocos攜手樂元素,《開心消消樂》成功移植OpenHarmony
- 開源樣例!基于小凌派RK2206的工地檢測平臺設計
-
DevEco Device Tool 3.1 Release新版本發布
提示:本文由電子發燒友論壇發布,轉載請注明來源。如需社區合作及入群交流,請添加微信EEFans0806,或者發郵箱liuyong@huaqiu.com。
原文標題:OpenHarmony瘦設備內核移植實戰(一)
文章出處:【微信公眾號:電子發燒友開源社區】歡迎添加關注!文章轉載請注明出處。
-
電子發燒友
+關注
關注
33文章
548瀏覽量
32674 -
開源社區
+關注
關注
0文章
93瀏覽量
376
原文標題:OpenHarmony瘦設備內核移植實戰(一)
文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發燒友開源社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論