自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

OpenHarmony輕量系統(tǒng)移植示例

系統(tǒng) OpenHarmony
OpenHarmony輕量系統(tǒng)的移植比較簡(jiǎn)單,代碼中解耦做得非常好。

??想了解更多內(nèi)容,請(qǐng)?jiān)L問:??

??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??

??https://ost.51cto.com??

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)單。

2、 相關(guān)代碼

我們看下OpenHarmony輕量系統(tǒng)之3部分的代碼分別在哪里:

(1)ARCH相關(guān)代碼。

ARCH相關(guān)的代碼存放在kernel\liteos_m\arch文件夾中。

可以看到目前已支持的架構(gòu)有ARM(M3、M4、M33、M7、ARM9)、csky、risc-v、xtensa。

(2)SoC相關(guān)代碼。

SoC相關(guān)的代碼位于:device\soc。

(3)board相關(guān)代碼。

board相關(guān)的代碼位于:device/board。

(4)vendor相關(guān)代碼。

除了以上3部分的代碼之外,還有廠商配置相關(guān)代碼,這一部分主要是用于編譯系統(tǒng)、HDF配置等,路徑為: vendor。

內(nèi)容如下:

3、移植思路

建議是先從最簡(jiǎn)單的開始,路線如下:

vendor —— board —— soc —— ARCH。

下一篇文章,將開始講解如何創(chuàng)建一個(gè)自己的vendor廠商配置和編譯流程。

一開始會(huì)基于GD32單片機(jī)。

4、 代碼倉(cāng)庫(kù)

代碼倉(cāng)庫(kù)如下:

其中,01_vendor_soc_board 是初步移植的示例,編譯不通過(guò)。

02_vendor_soc_board是已經(jīng)可以編譯通過(guò)并且燒錄到GD32F303上可以正常跑的。

5、 使用說(shuō)明

(1)代碼下載

開發(fā)者可以直接先下載最新的openharmony代碼,參考文章:

https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-sourcecode-acquire.md。

然后下載本倉(cāng)庫(kù)的代碼,將對(duì)應(yīng)的代碼拷貝到device/board 、device/soc、vendor中。

(2)交叉編譯器下載:

我們使用的編譯器是arm-none-eabi-gcc,下載地址:

git clone https://gitee.com/harylee/gcc-arm-none-eabi-10-2020-q4-major.git。

將交叉編譯器環(huán)境變量bin目錄配置到.bashrc文件中。

執(zhí)行arm-none-eabi-gcc -v,有如下打印則表示交叉編譯器配置正確。

(3)編譯。

執(zhí)行hb set,選擇gd32f303_lianzhian。

然后執(zhí)行hb build -f,如下提示,則表示編譯成功。

??想了解更多內(nèi)容,請(qǐng)?jiān)L問:??

??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??

??https://ost.51cto.com??


責(zé)任編輯:jianghua 來(lái)源: 鴻蒙社區(qū)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)