0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenHarmony瘦設(shè)備內(nèi)核移植實戰(zhàn)(一)

電子發(fā)燒友開源社區(qū) ? 來源:未知 ? 2023-05-11 20:16 ? 次閱讀

背景

在各行各業(yè)存在很多不同的智能設(shè)備,每個設(shè)備都使用芯片去實現(xiàn)不同的業(yè)務(wù)場景需求。本文將以常用的STM32F407ZG芯片為例,介紹OpenHarmony瘦設(shè)備內(nèi)核移植方法,希望能對熱愛OpenHarmony的開發(fā)小伙伴有所幫助。

認識芯片架構(gòu)、Soc、開發(fā)板

36aa19c4-e64d-11ed-ab56-dac502259ad0.png

芯片架構(gòu)是指芯片的內(nèi)部器件構(gòu)造以及對應(yīng)的指令集,比如PC使用的英特爾i7或者AMD的R7-4800都是x86架構(gòu),手機使用的驍龍8Gen2芯片使用的則是ARM架構(gòu)。

SoC是指具體的芯片架構(gòu)實現(xiàn),芯片廠商針對不同的應(yīng)用場景開發(fā)出的芯片各不相同,但要符合架構(gòu)定義,比如STM32F470就會有不同的定制版本,有些Flash會大一些,有些則是芯片封裝或者引腳數(shù)不同。

開發(fā)板則是板卡廠商針對不同的產(chǎn)品定制的不同開發(fā)板,會根據(jù)業(yè)務(wù)需求設(shè)計不同的PCB、外設(shè)器件。

本文采用正點原子的STM32F407ZG開發(fā)板,對應(yīng)的開發(fā)板、SoC、芯片架構(gòu)分別是:

  • 開發(fā)板型號:explorer(探索者)

  • 板卡廠商:alientek(正點原子)

  • 芯片型號:STM32F407ZGT6

  • 芯片系列:STM32F407

  • 芯片廠商:ST(意法半導(dǎo)體)

  • 具體架構(gòu):Cortex-M4

  • 芯片架構(gòu):ARM

內(nèi)核移植的四個層面

OH適配分為如下四個層面

Vendor

負責配置的目標產(chǎn)品的內(nèi)核類型、系統(tǒng)版本、子系統(tǒng)、三方庫等。編譯時,工具鏈依賴這里的配置。Vendor的代碼位于://vendor/

Board

開發(fā)板層面的移植,芯片已適配OH,只是開發(fā)板不同,難度不大。配置板卡編譯相關(guān)的工具鏈,以及最為核心的啟動匯編命令、鏈接庫腳本,將指定這里的main函數(shù)來啟動系統(tǒng)。Board相關(guān)的代碼位于://device/board

SoC

SoC片上系統(tǒng)層面的移植,芯片架構(gòu)已支持,有一定難度

配置芯片層級編譯依賴庫,包括CMSIS、HAL(硬件抽象層)等,這里包含操作總線、串口、時鐘、寄存等庫函數(shù)。SoC相關(guān)的代碼位于://device/soc

ARCH

目標芯片架構(gòu)不在支持的范圍內(nèi)的全新架構(gòu)移植,難度較大。ARCH相關(guān)的代碼存放在//kernel/liteos_m/arch文件夾中。整體難易度:Vendor < Board < SoC < ARCH

OpenHarmony瘦設(shè)備已支持的芯片架構(gòu)

36c0509a-e64d-11ed-ab56-dac502259ad0.png

源碼路徑為:kernel/liteos_m/arch/arm

36cadcf4-e64d-11ed-ab56-dac502259ad0.png

總結(jié)

OpenHarmony瘦設(shè)備的移植需要從芯片架構(gòu)、SoC、開發(fā)板開始,因此本文首先講述了三者之前的關(guān)系。瘦設(shè)備使用的內(nèi)核為LiteOS-M,針對不同層面的移植工作的難易度、工作量也會有所不同,根據(jù)以往經(jīng)驗難易度排序為Vendor < Board < SoC < ARCH,下篇文章將繼續(xù)介紹移植前的準備工作。


更多熱點文章閱讀
  • OpenHarmony開發(fā)者大會圓滿舉辦:3.2 Release版本發(fā)布,生態(tài)步入快車道
  • DevEco Studio 3.1 Beta新特性知多少?
  • Cocos攜手樂元素,《開心消消樂》成功移植OpenHarmony
  • 開源樣例!基于小凌派RK2206的工地檢測平臺設(shè)計
  • DevEco Device Tool 3.1 Release新版本發(fā)布

提示:本文由電子發(fā)燒友論壇發(fā)布,轉(zhuǎn)載請注明來源。如需社區(qū)合作及入群交流,請?zhí)砑游⑿臙EFans0806,或者發(fā)郵箱liuyong@huaqiu.com。


原文標題:OpenHarmony瘦設(shè)備內(nèi)核移植實戰(zhàn)(一)

文章出處:【微信公眾號:電子發(fā)燒友開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電子發(fā)燒友
    +關(guān)注

    關(guān)注

    33

    文章

    548

    瀏覽量

    32870
  • 開源社區(qū)
    +關(guān)注

    關(guān)注

    0

    文章

    93

    瀏覽量

    397

原文標題:OpenHarmony瘦設(shè)備內(nèi)核移植實戰(zhàn)(一)

文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發(fā)燒友開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    客戶機是什么?客戶機能單獨使用嗎?

    在當今數(shù)字化辦公環(huán)境中,客戶機作為種高效的終端設(shè)備,逐漸成為企業(yè)和機構(gòu)的首選。那么,究竟什么是客戶機呢?其實,客戶機是
    的頭像 發(fā)表于 10-10 10:04 ?202次閱讀

    openharmony移植AT32F407編譯時錯誤

    openharmony移植AT32F407,hb build后出現(xiàn)鏈接錯誤 [OHOS ERROR] /home/sven/openharmony/env_setup
    發(fā)表于 08-18 17:04

    鴻蒙OpenHarmony南向/北向快速開發(fā)教程-迅為RK3568開發(fā)板

    P13_vendor和device目錄介紹 P14_內(nèi)核編譯腳本構(gòu)建分析 P15_內(nèi)核移植 P16_內(nèi)核移植優(yōu)化 P17_配置電源管理芯片和點亮HDMI屏幕 P18_源碼定制-修改調(diào)試串口波特率 P19_源碼定制
    發(fā)表于 07-23 10:44

    如何在Openharmony中實現(xiàn)USB復(fù)合設(shè)備

    如何讓Openharmony設(shè)備HDC接口(OTG接口)作為個復(fù)合設(shè)備,實現(xiàn)HDC(HDC:鴻蒙設(shè)備連接器) + CDC ACM(USB
    的頭像 發(fā)表于 06-13 15:03 ?1309次閱讀
    如何在<b class='flag-5'>Openharmony</b>中實現(xiàn)USB復(fù)合<b class='flag-5'>設(shè)備</b>

    OpenHarmony設(shè)備統(tǒng)互聯(lián)技術(shù)規(guī)范發(fā)布

    在此次大會上,15家合作方共同制定的《OpenHarmony設(shè)備統(tǒng)互聯(lián)技術(shù)標準》正式發(fā)布。該標準是為了實現(xiàn)教育、金融、交通、政務(wù)、醫(yī)療及航空等行業(yè)內(nèi)設(shè)備間的互聯(lián)互通而打造的。
    的頭像 發(fā)表于 05-29 15:42 ?528次閱讀

    freertos移植到M0內(nèi)核的mcu直不成功的原因?

    求助各位大佬,小弟最近手頭有個項目,需要在手頭個公司已做出來的m0內(nèi)核的mcu上移植freertos,但苦于直不成功,還望指教。 網(wǎng)
    發(fā)表于 04-28 06:30

    OpenHarmony內(nèi)核編程實戰(zhàn)

    編程入門[Hello,OpenHarmony]在正式開始之前,對于剛接觸OpenHarmony的伙伴們,面對大篇幅的源碼可能無從下手,不知道怎么去編碼寫程序,下面用個簡單的例子帶伙伴們?nèi)腴T。▍任務(wù)
    的頭像 發(fā)表于 03-27 08:31 ?700次閱讀
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>內(nèi)核</b>編程<b class='flag-5'>實戰(zhàn)</b>

    鴻蒙OpenHarmony技術(shù):【設(shè)備互信認證】

    OpenHarmony中,設(shè)備互信認證模塊作為安全子系統(tǒng)的子模塊,負責設(shè)備間可信關(guān)系的建立、維護、使用、撤銷等全生命周期的管理,實現(xiàn)可信設(shè)備間的互信認證和安全會話密鑰協(xié)商,是搭載
    的頭像 發(fā)表于 03-25 17:04 ?624次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>技術(shù):【<b class='flag-5'>設(shè)備</b>互信認證】

    鴻蒙開發(fā)實戰(zhàn):基于【Markwon】移植和開發(fā)

    本項目是基于開源項目**Markwon**進行適用harmonyos的移植和開發(fā)的。
    的頭像 發(fā)表于 03-25 16:27 ?766次閱讀
    鴻蒙開發(fā)<b class='flag-5'>實戰(zhàn)</b>:基于【Markwon】<b class='flag-5'>移植</b>和開發(fā)

    鴻蒙OpenHarmony開發(fā)實戰(zhàn):【MiniCanvas】

    基于OpenHarmony的Cavas組件封裝了版極簡操作的MiniCanvas,屏蔽了原有Canvas內(nèi)部復(fù)雜的調(diào)用流程,支持個API就可以實現(xiàn)相應(yīng)的繪制能力,該庫還在繼續(xù)完善中,也歡迎PR。
    的頭像 發(fā)表于 03-23 20:43 ?285次閱讀

    【鴻蒙】OpenHarmony運行docker詳細步驟

    1.環(huán)境和設(shè)備 系統(tǒng)版本: 3.2release(64 位) OpenHarmony 內(nèi)核版本:5.10 標準系統(tǒng)設(shè)備: DAYU200 Docker:18.03.1 (64 位) s
    的頭像 發(fā)表于 03-02 15:10 ?2422次閱讀
    【鴻蒙】<b class='flag-5'>OpenHarmony</b>運行docker詳細步驟

    rk3399移植Linux內(nèi)核

    RK3399是款由中國廠商瑞芯微推出的高性能處理器芯片,被廣泛用于嵌入式系統(tǒng)開發(fā)。在進行應(yīng)用程序開發(fā)之前,我們需要將Linux內(nèi)核移植到RK3399上,以支持硬件的驅(qū)動和功能。本文將詳細介紹如何將
    的頭像 發(fā)表于 01-08 09:56 ?1005次閱讀

    OpenHarmony開源GPU庫Mesa3D適配說明

    (利用了圖形加速硬件)依賴于顯示設(shè)備廠家的硬件及實現(xiàn)。 OpenGL API實現(xiàn)的方式又分為閉源及開源兩種方式。閉源實現(xiàn)般由設(shè)備廠家完成,這種方式充分保證了它的高效性,但移植起來比較
    發(fā)表于 12-25 11:38

    如何修改內(nèi)核設(shè)備

    如何修改內(nèi)核設(shè)備
    的頭像 發(fā)表于 12-14 14:06 ?750次閱讀
    如何修改<b class='flag-5'>內(nèi)核</b><b class='flag-5'>設(shè)備</b>樹

    嵌入式Linux移植與系統(tǒng)啟動解讀

    所謂移植就是把程序代碼從種運行環(huán)境轉(zhuǎn)移到另種運行環(huán)境。對于內(nèi)核移植來說,主要是從種硬件平臺轉(zhuǎn)移到另
    的頭像 發(fā)表于 11-25 10:07 ?1359次閱讀
    嵌入式Linux<b class='flag-5'>移植</b>與系統(tǒng)啟動解讀