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