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

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

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

如何在32位MCU平臺(tái)間移植

jf_pJlTbmA9 ? 來(lái)源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-08-25 16:25 ? 次閱讀

過(guò)去數(shù)年,關(guān)于單內(nèi)核平臺(tái)標(biāo)準(zhǔn)化的討論不計(jì)其數(shù),目的是讓設(shè)計(jì)從一家MCU供貨商的產(chǎn)品移植到另一家的產(chǎn)品變得容易。有趣的是,所有討論均從未涉及外設(shè)。然而,外設(shè)恰恰就是將應(yīng)用從一家MCU供貨商移植至另一家的真正核心。

一切歸于外設(shè)

工程師在著手新設(shè)計(jì)之前,通常會(huì)先審視一下功能需求。希望系統(tǒng)做什么?用戶怎樣與之交互? 諸如此類的一些問(wèn)題。據(jù)此決定要采用什么電路以及控制這些電路所需的MCU片內(nèi)外設(shè)。例如,工業(yè)級(jí)的HMI(人機(jī)界面)設(shè)備將需要支持LCD、按鈕和/或觸摸屏,與機(jī)器的通信、LED,以及揚(yáng)聲器/蜂鳴器等。所有這些功能將需要MCU上的某些外設(shè),如:CAN控制器用于通信、ADC用于觸摸屏及PWM定時(shí)器用于蜂鳴器等。外設(shè)具有的功能越多,所需的外部電路就越少。在某些情況下,還會(huì)減少需要編寫的代碼量。例如,使用特殊的蜂鳴器模式比為達(dá)到同樣目的而不得不設(shè)置PWM要簡(jiǎn)單得多。

內(nèi)核需求通常是顯而易見(jiàn)的。雖然內(nèi)核很重要,但對(duì)于設(shè)計(jì)人員來(lái)說(shuō),關(guān)系不大。事實(shí)上,內(nèi)核必須滿足兩個(gè)基本條件。速度是否足以執(zhí)行創(chuàng)建最佳用戶體檢所需的所有軟件任務(wù)? 是否能高效執(zhí)行所有任務(wù)?只要滿足這兩點(diǎn)性能要求, 內(nèi)核的類型無(wú)關(guān)緊要。

當(dāng)然,內(nèi)核還與固件/軟件相關(guān)。既有代碼是工程師必須考慮的一個(gè)問(wèn)題。使用現(xiàn)成代碼能節(jié)省多少工作量?這個(gè)問(wèn)題并非與內(nèi)核直接相關(guān),而與外設(shè)有關(guān)。因?yàn)榇蠖鄶?shù)32位MCU代碼用C語(yǔ)言編寫,因此可重新編譯至任何內(nèi)核。每家 MCU生產(chǎn)商的外設(shè)特性及編程模型均特定于其自家的產(chǎn)品,而與所采用的內(nèi)核無(wú)關(guān),這便是代碼難以移植的原因所在。

固件庫(kù)

為了給工程師提供便利,每家MCU生產(chǎn)商均提供一個(gè)固件庫(kù),其中包含設(shè)置和使用各種MCU片內(nèi)外設(shè)的代碼。由于不同廠家實(shí)現(xiàn)其外設(shè)的方式各不相同,甚至具有不同的特性,將應(yīng)用程序從一種MCU移植至另一種MCU并非輕而易舉。

ARM一直以來(lái)都在為簡(jiǎn)化應(yīng)用程序的移植努力著,它定義了一種稱為Cortex?單片機(jī)軟件接口標(biāo)準(zhǔn)(CMSIS)的固件抽象層標(biāo)準(zhǔn)。采用Cortex-M系列內(nèi)核的MCU生產(chǎn)商的固件庫(kù)均已采納了這一標(biāo)準(zhǔn)。遺憾的是,這個(gè)標(biāo)準(zhǔn)仍不能克服移植外設(shè)遇到的困難,對(duì)于變量或函數(shù)也未制定標(biāo)準(zhǔn)的命名約定。因此,將代碼從一種固件庫(kù)移植到另一種固件庫(kù)沒(méi)有捷徑,必須做大量工作。事實(shí)上,對(duì)于在ARM MCU供貨商之間移植應(yīng)用程序,該標(biāo)準(zhǔn)幾乎沒(méi)有什么幫助。畢竟,對(duì)于MCU生產(chǎn)商來(lái)說(shuō),將應(yīng)用程序輕而易舉移植到其他供應(yīng)商的產(chǎn)品一點(diǎn)好處也沒(méi)有。

設(shè)計(jì)時(shí)考慮可移植性

由于MCU生產(chǎn)商不愿簡(jiǎn)化其產(chǎn)品到其他供應(yīng)商產(chǎn)品的可移植性,因此只能由設(shè)計(jì)工程師來(lái)使設(shè)計(jì)具有可移植性。通過(guò)實(shí)現(xiàn)一個(gè)抽象層,由該層創(chuàng)建硬件(即MCU外設(shè))和應(yīng)用程序代碼之間的標(biāo)準(zhǔn)編程接口即可實(shí)現(xiàn)這一點(diǎn)。至少可用以下兩種方法:

開(kāi)發(fā)一個(gè)中介層或包裝器,從而實(shí)現(xiàn)在MCU生產(chǎn)商外設(shè)庫(kù)和您的代碼之間轉(zhuǎn)換。這可能是最快速高效的解決方案,但會(huì)在命令和數(shù)據(jù)路徑中添加較多代碼。

定義一個(gè)標(biāo)準(zhǔn)的函數(shù)和變量命名機(jī)制,并將其應(yīng)用于所有外設(shè)庫(kù)。不必添加代碼,但卻很費(fèi)時(shí),具體取決于外設(shè)用法的復(fù)雜度。

實(shí)現(xiàn)移植性是個(gè)大工程,貫穿開(kāi)發(fā)過(guò)程的始終。除了固件/軟件兼容性,還有引腳兼容的問(wèn)題。將應(yīng)用從一個(gè)MCU供應(yīng)商的產(chǎn)品移植到另一個(gè)往往要重新布置PCB,而且可能還需要不同的外部器件,比如電容和穩(wěn)壓器。

總結(jié)

無(wú)論使用何種內(nèi)核,在32位MCU供應(yīng)商的產(chǎn)品間移植均相當(dāng)復(fù)雜。一切都取決于外設(shè)和相關(guān)的固件庫(kù)。每家MCU生產(chǎn)商均提供固件庫(kù)和應(yīng)用筆記,盡力使設(shè)計(jì)過(guò)程盡可能地簡(jiǎn)單。他們也將努力減輕其器件在其系列間移植的工作。但是他們卻不愿意使移植到競(jìng)爭(zhēng)對(duì)手的解決方案變得過(guò)于容易。這是設(shè)計(jì)工程師要解決的問(wèn)題,應(yīng)該在每個(gè)項(xiàng)目開(kāi)始時(shí)評(píng)估這樣做的成本和好處。
審核編輯:彭菁

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

    關(guān)注

    172

    文章

    5826

    瀏覽量

    171775
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16885

    瀏覽量

    349922
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16103

    瀏覽量

    177077
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4722

    瀏覽量

    68234
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    芯科科技推出新的8MCU系列產(chǎn)品,擴(kuò)展其強(qiáng)大的MCU平臺(tái)

    科技”,NASDAQ:SLAB),今日宣布推出新的8微控制器(MCU)系列產(chǎn)品,該系列MCU針對(duì)價(jià)格和性能進(jìn)行了優(yōu)化,進(jìn)一步擴(kuò)展了芯科科技強(qiáng)大的MCU開(kāi)發(fā)
    發(fā)表于 11-21 15:20 ?831次閱讀
    芯科科技推出新的8<b class='flag-5'>位</b><b class='flag-5'>MCU</b>系列產(chǎn)品,擴(kuò)展其強(qiáng)大的<b class='flag-5'>MCU</b><b class='flag-5'>平臺(tái)</b>

    32MCU平臺(tái)移植

    過(guò)去數(shù)年,關(guān)于單內(nèi)核平臺(tái)標(biāo)準(zhǔn)化的討論不計(jì)其數(shù),目的是讓設(shè)計(jì)從一家MCU供貨商的產(chǎn)品移植到另一家的產(chǎn)品變得容易。有趣的是,所有討論均從未涉及外設(shè)。然而,外設(shè)恰恰就是將應(yīng)用從一家MCU供貨
    發(fā)表于 07-02 08:17

    mcu和編譯器移植

    1、如果可以的話少用庫(kù)函數(shù),便于不同的mcu和編譯器移植 2、選擇合適的算法和數(shù)據(jù)結(jié)構(gòu) 應(yīng)該熟悉算法語(yǔ)言,知道各種算法的優(yōu)缺點(diǎn),具體資料請(qǐng)參見(jiàn)相應(yīng)的參考資料,有很多計(jì)算機(jī)書籍上都有介紹。將比
    發(fā)表于 11-23 08:33

    何在AT32F系列MCU上使用FreeRTOS

    本指導(dǎo)手冊(cè)描述了如何在AT32F系列MCU上使用FreeRTOS。FreeRTOS是一款開(kāi)源的嵌入式實(shí)時(shí)操作系統(tǒng),目前在各種嵌入式應(yīng)用中應(yīng)用廣泛。本指導(dǎo)手冊(cè)包括FreeRTOS系統(tǒng)移植
    發(fā)表于 10-24 07:46

    8MCU如何升級(jí)至32MCU

    8MCU如何升級(jí)至32MCU   目前的MCU市場(chǎng)分為三個(gè)部分, 8、16
    發(fā)表于 04-16 14:19 ?2506次閱讀
    8<b class='flag-5'>位</b><b class='flag-5'>MCU</b>如何升級(jí)至32<b class='flag-5'>位</b><b class='flag-5'>MCU</b>

    STM32 系列MCU 不同型號(hào)的移植步驟解析

    STM32 系列MCU 不同型號(hào)的移植!
    的頭像 發(fā)表于 01-10 10:45 ?3w次閱讀
    STM32 系列<b class='flag-5'>MCU</b> 不同型號(hào)的<b class='flag-5'>移植</b>步驟解析

    VSF MCU的基本架構(gòu)移植技巧淺析

    VSF的MCU移植包括2部分,1是基本構(gòu)架,2是外設(shè)驅(qū)動(dòng)移植。這里先講一下基本構(gòu)架的移植。
    發(fā)表于 10-08 15:07 ?2890次閱讀

    【國(guó)產(chǎn)MCU移植移植RT-Thread到國(guó)產(chǎn)芯片HC32F460PETB

    【國(guó)產(chǎn)MCU移植移植RT-Thread到國(guó)產(chǎn)芯片HC32F460PETB
    發(fā)表于 11-23 18:06 ?37次下載
    【國(guó)產(chǎn)<b class='flag-5'>MCU</b><b class='flag-5'>移植</b>】<b class='flag-5'>移植</b>RT-Thread到國(guó)產(chǎn)芯片HC32F460PETB

    【國(guó)產(chǎn)MCU移植移植RT-Thread到國(guó)產(chǎn)芯片F(xiàn)M33LC026

    【國(guó)產(chǎn)MCU移植移植RT-Thread到國(guó)產(chǎn)芯片F(xiàn)M33LC026
    發(fā)表于 11-30 16:51 ?22次下載
    【國(guó)產(chǎn)<b class='flag-5'>MCU</b><b class='flag-5'>移植</b>】<b class='flag-5'>移植</b>RT-Thread到國(guó)產(chǎn)芯片F(xiàn)M33LC026

    AN023 如何在GD平臺(tái)移植Letter shell

    AN023 如何在GD平臺(tái)移植Letter shell
    發(fā)表于 02-27 18:25 ?1次下載
    AN023 如<b class='flag-5'>何在</b>GD<b class='flag-5'>平臺(tái)</b><b class='flag-5'>移植</b>Letter shell

    8MCU歷久不衰的秘訣何在?

    近日,意法半導(dǎo)體(ST)正式推出32STM32C0 MCU,并明確指出將用于“取代”8MCU。
    的頭像 發(fā)表于 04-17 09:34 ?1076次閱讀

    何在AT32 MCU上使用FPU功能

    何在AT32 MCU上使用FPU功能
    的頭像 發(fā)表于 11-01 17:18 ?3984次閱讀
    如<b class='flag-5'>何在</b>AT32 <b class='flag-5'>MCU</b>上使用FPU功能

    從8AVR到32SAM D21 MCU的應(yīng)用程序移植

    電子發(fā)燒友網(wǎng)站提供《從8AVR到32SAM D21 MCU的應(yīng)用程序移植.pdf》資料免費(fèi)下載
    發(fā)表于 09-20 11:41 ?1次下載
    從8<b class='flag-5'>位</b>AVR到32<b class='flag-5'>位</b>SAM D21 <b class='flag-5'>MCU</b>的應(yīng)用程序<b class='flag-5'>移植</b>

    從8PIC18F到32SAM D21 MCU的應(yīng)用程序移植

    電子發(fā)燒友網(wǎng)站提供《從8PIC18F到32SAM D21 MCU的應(yīng)用程序移植.pdf》資料免費(fèi)下載
    發(fā)表于 09-20 11:22 ?0次下載
    從8<b class='flag-5'>位</b>PIC18F到32<b class='flag-5'>位</b>SAM D21 <b class='flag-5'>MCU</b>的應(yīng)用程序<b class='flag-5'>移植</b>

    STM8S和STM32 MCU:一致的8/32產(chǎn)品線實(shí)現(xiàn)輕松移植

    電子發(fā)燒友網(wǎng)站提供《STM8S和STM32 MCU:一致的8/32產(chǎn)品線實(shí)現(xiàn)輕松移植.pdf》資料免費(fèi)下載
    發(fā)表于 09-21 11:33 ?0次下載
    STM8S和STM32 <b class='flag-5'>MCU</b>:一致的8/32<b class='flag-5'>位</b>產(chǎn)品線實(shí)現(xiàn)輕松<b class='flag-5'>移植</b>