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