為什么拓展MCU的潛能需要新的思維方式
恩智浦 Brendon Slade
微控制器(MCU)已經(jīng)歷了無數(shù)次技術(shù)進(jìn)步,從硬件加密到復(fù)雜的圖形功能,然而在此期間,軟件開發(fā)一直難以跟上這種步伐。這篇博文介紹了工程師在MCU平臺(tái)上進(jìn)行軟件開發(fā)所面臨的挑戰(zhàn)、恩智浦計(jì)劃如何應(yīng)對(duì)這些挑戰(zhàn),以及為什么選擇能力是未來MCU必不可少的要素。
硬件能力不斷更新,軟件開發(fā)停滯不前
與所有電子器件一樣,自1970年代首批MCU問世以來,微控制器已經(jīng)歷了巨大的變化。首款真正具有商業(yè)價(jià)值的微處理器(如無所不在的8051)基于8位技術(shù),并整合了幾個(gè)計(jì)時(shí)器、UART端口、ADC,以及DAC(少數(shù)產(chǎn)品)。這些器件非常簡(jiǎn)單,易于掌握,指令集非常小,可以輕松地使用低層語言,如匯編語言。
快進(jìn)到2023年,MCU經(jīng)歷了巨大的變化,內(nèi)存更大、CPU更快,擁有多種外設(shè),從高級(jí)電機(jī)控制到機(jī)器學(xué)習(xí)(ML)加速器。然而,MCU最重要的一個(gè)變化是其內(nèi)部架構(gòu)的復(fù)雜性增加了,如果沒有驅(qū)動(dòng)程序提供對(duì)底層硬件的抽象,從零開始為現(xiàn)代MCU編寫代碼就非常具有挑戰(zhàn)性。
為了幫助工程師對(duì)現(xiàn)代MCU進(jìn)行編碼,我們提供廣泛的軟件解決方案和工具(包括驅(qū)動(dòng)程序和高級(jí)配置工具),用戶無需進(jìn)行寄存器級(jí)編程。雖然這些工具對(duì)于項(xiàng)目實(shí)施至關(guān)重要,但用于MCU編碼的軟件基礎(chǔ)架構(gòu)并未達(dá)到與硬件相同的高度,導(dǎo)致軟件和硬件之間存在巨大的技術(shù)鴻溝。
了解更多。恩智浦開啟MCUXpresso生產(chǎn)力新篇章,賦予開發(fā)人員更豐富的開發(fā)體驗(yàn)
MCU面臨哪些軟件挑戰(zhàn)?
無論使用哪個(gè)平臺(tái),MCU的軟件開發(fā)都面臨著諸多挑戰(zhàn),包括平臺(tái)鎖定、可移植性有限、碎片化、缺乏開源支持、開發(fā)人員自由受限和缺少標(biāo)準(zhǔn)化等。
首先,大多數(shù)MCU平臺(tái)通常會(huì)將工程師鎖定在固定平臺(tái)上,因?yàn)橐獙⒋a移植到其他平臺(tái)、其他架構(gòu)或供應(yīng)商會(huì)非常耗時(shí),即使平臺(tái)使用了相同的處理器內(nèi)核(如Arm? Cortex-M?)。對(duì)于不使用MCU或其外設(shè)全部功能的簡(jiǎn)單項(xiàng)目而言,這可能是小問題,但對(duì)于因硬件需求變化而需要切換到其他制造商的項(xiàng)目來說,則可能會(huì)帶來災(zāi)難性的后果。當(dāng)OEM擁有各種價(jià)格和功率需求不同的產(chǎn)品時(shí),不可避免地要使用多種不同的MCU,因此維護(hù)多代碼基礎(chǔ)的成本可能非常高。
另一個(gè)可能影響工程師的軟件挑戰(zhàn)是IDE差別迥異。工程師通常使用不同制造商的眾多設(shè)備,因?yàn)槊總€(gè)設(shè)備只適用于特定的應(yīng)用。但對(duì)每一個(gè)平臺(tái),工程師都需要了解IDE的工作原理、工具位于何處,以及如何讓項(xiàng)目運(yùn)行。因此,工程師要跟上每個(gè)開發(fā)環(huán)境的新變化可能需要耗費(fèi)大量的時(shí)間。
此外,MCU供應(yīng)商很少支持一個(gè)以上免費(fèi)的IDE平臺(tái),并且大部分都基于Eclipse,Eclipse被視為軟件開發(fā)行業(yè)的主力。Eclipse作為主流IDE,供應(yīng)商可高效定制,便于使用,但由于它采用基于Java的內(nèi)核,對(duì)CPU和內(nèi)存資源需求要求非常高。相比之下,微軟的Visual Studio Code(VS Code)非常輕量化和快速,因此許多工程師選擇使用VS Code開發(fā)環(huán)境。
IAR和Arm Keil是高級(jí)開發(fā)工具領(lǐng)域久負(fù)盛名的專家,他們提供的IDE具有自己的專業(yè)調(diào)試功能,以及高性能優(yōu)化編譯器和功能安全認(rèn)證。恩智浦與這兩家白金級(jí)合作伙伴密切合作,通過MCUXpresso SDK軟件包為他們的工具提供開箱即用的支持。甚至這些開發(fā)工具巨擘也承認(rèn)Visual Studio Code廣受青睞且具有較高的靈活性,因?yàn)樗С侄喾N編譯器,用戶可借助該工具采用混合方法進(jìn)行編輯和構(gòu)建,并結(jié)合開發(fā)工具領(lǐng)軍企業(yè)的專業(yè)調(diào)試經(jīng)驗(yàn)。
MCUXpresso for Visual Studio Code介紹
恩智浦認(rèn)識(shí)到Visual Studio Code對(duì)于現(xiàn)代開發(fā)人員非常重要,現(xiàn)已推出MCUXpresso for VS Code,該擴(kuò)展產(chǎn)品為MCUXpresso軟件驅(qū)動(dòng)程序和中間件提供全面支持,使開發(fā)人員能夠使用主流IDE進(jìn)行快速響應(yīng)的編碼。除了比較傳統(tǒng)的MCUXpresso SDK流程外,這款新產(chǎn)品為使用開源Zephyr RTOS的開發(fā)人員提供全面支持,與現(xiàn)有解決方案相比,提升了用戶體驗(yàn)。
MCUXpresso for Visual Studio Code功能框圖
MCUXpresso硬件抽象層
為了方便工程師在不同MCU平臺(tái)之間移植代碼,恩智浦即將推出新的硬件抽象層(HAL),為開發(fā)人員提供一組適用于i.MX RT、LPC5500和MCX MCU的API。隨著新HAL的推出,恩智浦MCU代碼可以完全移植到廣泛的產(chǎn)品組合中,用戶可在眾多功率/性能之間進(jìn)行選擇,不存在代碼移植障礙。
盡管HAL的推出本身并不新鮮,但它基于與其他平臺(tái)已使用的開源代碼API定義,體現(xiàn)了恩智浦致力于為用戶提供選擇能力的承諾。通過這種方法,工程師不僅能夠在不同的恩智浦器件中自由遷移,甚至還可以將他們的代碼傳輸給其他芯片供應(yīng)商。這種靈活性為設(shè)計(jì)人員提供了極大的自由,他們能夠編寫不鎖定在某個(gè)硬件平臺(tái)的MCU代碼,從而使固件設(shè)計(jì)更貼近不受設(shè)備局限的未來。
恩智浦和Open-CMSIS-Pack
在MCU解決方案中使用中間件變得日益重要。由于MCU設(shè)計(jì)和應(yīng)用要求的復(fù)雜性不斷增加,工程師開始轉(zhuǎn)向能夠提供高級(jí)功能的軟件庫,例如圖形處理、網(wǎng)絡(luò)協(xié)議棧、USB設(shè)備枚舉、音頻功能,甚至ML/AI。在這些情況下,試圖將其它公司提供的第三方中間件納入項(xiàng)目會(huì)非常具有挑戰(zhàn)性,因?yàn)槟硞€(gè)供應(yīng)商的軟件在形式和風(fēng)格方面可能與其它供應(yīng)商的軟件不同。因此,可能需要手動(dòng)執(zhí)行幾個(gè)步驟,將外部軟件重新構(gòu)建到所需的文件夾并集成編譯命令,并且在供應(yīng)商每次交付新庫時(shí)都會(huì)出現(xiàn)這些問題。
為了幫助工程師將中間件納入其項(xiàng)目中,MCUXpresso生態(tài)系統(tǒng)中的所有IDE現(xiàn)在都支持Open-CMSIS-Pack。這些完整的軟件產(chǎn)品使用特定的標(biāo)準(zhǔn)和形式進(jìn)行封裝,使IDE能夠自動(dòng)識(shí)別內(nèi)容、將所需的文件添加到項(xiàng)目中、配置Build工具,并提供API訪問。由于依賴性已整合到Open-CMSIS-Pack中,工程師不必花費(fèi)數(shù)小時(shí)從不同的位置下載單獨(dú)的文件,也不需要檢查下載的版本是否兼容。
為什么選擇能力會(huì)決定MCU設(shè)計(jì)的未來
計(jì)算機(jī)行業(yè)朝著統(tǒng)一和開放標(biāo)準(zhǔn)發(fā)展,同樣,MCU生態(tài)系統(tǒng)也可以效仿,從而打造新環(huán)境,讓固件工程師編寫代碼時(shí)不受硬件的限制。這并不意味著硬件將變得不重要;相反,硬件將繼續(xù)在產(chǎn)品設(shè)計(jì)中發(fā)揮重要作用。變化在于,創(chuàng)建固件的用戶不必再擔(dān)心代碼可移植性、哪些設(shè)備在執(zhí)行他們的軟件以及軟件如何與硬件對(duì)接等問題。
MCU采用統(tǒng)一的行業(yè)標(biāo)準(zhǔn),也將推動(dòng)開源軟件的迅速普及。如果MCU軟件具有較高的可移植性,用戶可輕松共享MCU代碼,因?yàn)樗m用于更多的平臺(tái)。這有助于加速開源項(xiàng)目,因?yàn)榕c不同芯片供應(yīng)商合作的工程師都可以使用自己的原生平臺(tái)共同開發(fā)互惠互利的軟件解決方案。
在MCU之間引入HAL開放標(biāo)準(zhǔn)也有助于鼓勵(lì)新制造商采用這些標(biāo)準(zhǔn),因?yàn)樗麄兊脑O(shè)備將與大多數(shù)(如果不是全部)現(xiàn)有軟件解決方案兼容。因此,新的MCU可以快速普及,從而提高工程師使用先進(jìn)解決方案的速度,而無需重新在軟件資源方面投入大量資金。
這種選擇能力最終將緩解MCU行業(yè)的碎片化問題,這難道不是當(dāng)今開發(fā)人員所希望的嗎?
作者
Brendon Slade
恩智浦通用MCU生態(tài)合作體系總監(jiān)
Brendon Slade是通用MCU生態(tài)合作體系團(tuán)隊(duì)總監(jiān)。他在DSP和微控制器行業(yè)擁有超過25年的經(jīng)驗(yàn),曾在工業(yè)、移動(dòng)、汽車、語音通信和音頻處理市場(chǎng)方面擔(dān)任設(shè)計(jì)、應(yīng)用和技術(shù)營銷職務(wù)。他的團(tuán)隊(duì)專注于支持恩智浦基于Arm? Cortex?-M的MCU,與合作伙伴和恩智浦的內(nèi)部軟件團(tuán)隊(duì)合作,定義并交付互補(bǔ)的開發(fā)工具和軟件解決方案。他畢業(yè)于英國普利茅斯大學(xué)(University of Plymouth),現(xiàn)居加利福尼亞州桑尼維爾,擁有調(diào)試技術(shù)專利。
評(píng)論
查看更多