在過去 30 年中,嵌入式開發過程發生了很大變化。用於編碼、編譯和除錯(debugging)的軟體工具在不斷發展,日益複雜和高度整合的硬體功能和行業趨勢(例如低功耗、連通性和安全性)都要求整合新工具鏈功能,例如板級支援封裝、驅動器和程式庫等。
嵌入式開發之演化
不久前,大多數嵌入式系統都沒有任何連通性,安全性也不在考量之列。這些系統目的是控制設備,例如工業鍋爐控制器或家用洗衣機等。許多嵌入式開發人員學會了使用裸金屬(bare-metal)機器代碼技術對微控制器進行程式設計。使用操作代碼進行程式設計非常耗時,令人費解且乏味。值得慶幸的是,下一步使用的組合語言(assembly language)減輕了早期開發人員負擔,並為轉向採用 C 等進階語言鋪平道路。
C 語言最初是與1980 年代初期 Unix 作業系統同步開發,旨在提供對記憶體資源高效、低級別連接,並映射到底層處理器機器代碼指令,進而成為嵌入式系統自然選擇。
為了鼓勵採用他們的微控制器(MCU)和微處理器(MPU),晶片供應商開始致力於投資開發整合開發環境 (IDE) 工具鏈。開放生態系統概念並不存在,導致大多數開發人員構建和維護自己的程式庫和函數集。此外,每個供應商的指令集架構都是獨一無二,他們通常會出售驅動器、程式庫和其他專有 IP 以配合設備使用。
時代發生了哪些改變!
當下嵌入式開發:如何實現
當下開始其職業生涯的嵌入式開發人員已經進入了一個非同尋常世界。整體來說,嵌入式開發行業是開放的。在Arm基於許可證的架構問世之際,許多晶片供應商發現自己在競爭日益激烈行業中背負著促進、推廣和支援其專有架構之高昂成本。多年來,許多領先 MCU 和 MPU 供應商減少了基於自身專有架構的產品供應,並增加了基於 Arm 的產品陣列。借助於 Arm 核心方法,晶片供應商已從 Arm 架構的日益普及和 Arm 的研發投資中受益很多。這些供應商現在透過添加周邊連通塊、無線收發器、電源管理和類比功
能等方式,使他們的產品與其他 Arm 授權商實現差異化。
圖一 : 開發人員面臨越來越複雜的硬體設備和大量功能,為了減輕這些負擔,供應商現在正在投資於提供全面電路板級支援包和軟體資源。(source:Mouser) |
|
隨著獨立軟體公司建立,業界轉向 Arm 也標誌著從供應商專有IDE 之轉變。但供應商專有 IDE依然存在,在某些狀況下,他們透過收購 IDE 初創公司可迅速提升器產品功能。
開發人員面臨越來越複雜的硬體設備和大量功能,為了減輕這些負擔,供應商現在正在投資於提供全面電路板級支援包和軟體資源,例如可將低級硬體功能抽象為方便且直接的進階功能調用開源庫和韌體等。
Arduino和 BeagleBone 以及 Raspberry Pi 等類似單板電腦(SBC)的推出啟動了開源開發時代。這些開發板構建了硬體和軟體公司生態系統社群,並向創新者和學生開放了微控制器開發。Linux 成為許多 SBC 上主導作業系統,並且伴隨 FreeRTOS 推出,即時作業系統的廣泛採用得到實質性飛躍。
當下,嵌入式開發行行業包羅萬象。為了進一步加快原型設計並縮短時間受限的開發週期,供應商提供了全面評估模組、開發板、軟體開發套件和參考設計。伴隨工業物聯網(IIoT)等確立了低功耗、電池供電連通系統等優先應用趨勢,供應商已經為處理器內核和周邊模組提供了額外睡眠模式。在快速回應應用中斷同時,使處理器的待機和活動功耗特性實現最佳平衡已成為一項關鍵開發挑戰。
低代碼、事件驅動的腳本、Node-red 等語言以及 CoAP 和 MQTT 等羽量級通訊堆疊為嵌入式開發增添了令人興奮一面。這些方法非常適合於採用資源受限超低功耗微控制器開發 IoT/IIoT 應用。
平台部署和雲端 IDE推動嵌入式行業前進
圖二 : 對於工業自動化設備供應商而言,開發客制嵌入式系統並託管安全可靠雲端計算基礎設施是一項艱巨任務。(source:Mouser/Shutterstock) |
|
嵌入式行業最近經歷了一波硬體和軟體解決方案整合的發展浪潮,其中之一是 Zerynth。這些系統可提供完整硬體平台和基於雲端的基礎架構方法,能夠快速配置 IoT/IIoT 部署。例如,對於工業自動化設備供應商而言,開發客制嵌入式系統並託管安全可靠雲端計算基礎設施是一項艱巨任務。這需要大量時間,涉及相當高成本,並且需要獲得熟練專業知識。而使用商用硬體則允許 IIoT 應用提供商透過軟體功能使他們特性差異化,並可整合必要資料安全和加密功能。
伴隨 TI Cloud Composer 和 Arm mbed 等許多 IDE 越來越多地走向線上,協作式嵌入式開發現在已經成為可能。一些基於雲端 IDE 還支援共用私有和公共 GitHub 代碼儲存庫,這是許多開源項目重要方面。多平台和多架構嵌入式開發平台(例如 PlatformIO)能夠提供一個可行「一站式」協作替代方案,可以透過單一線上環境中完整的 IDE、儲存庫、除錯器和靜態代碼分析工具來取代傳統工具鏈。與此同時,獨立 IDE 和MikroE 和 Segger等工具供應商正在改進他們的工具,以整合 RTOS 並支援RISC-V等新指令集架構。
未來發展?
在COVID-19疫情大流行期間,由於許多團隊適應了遠端工作,線上開發和協作平台的使用顯著增多。早期跡象顯示,這種趨勢在可預見未來仍將持續。伴隨嵌入式開發世界變得越來越虛擬,我們很可能會看到基於雲端 IDE 和開發協作工具在來年包含更多功能和創新。
嵌入式工具供應商MikroE於2020年9月推出Planet Debug 服務。基於該公司的 Necto Studio IDE,他們不再需要開發人員桌面上的硬體目標設備。借助於嵌入式 Planet Debug,開發人員可以隨時隨地遠端進行程式設計和除錯。 MikroE 的遠端 MikroE 開發平台可在 Necto Studio 中使用,並且視訊源會即時顯示電路板正在發生的事件。
業界對於虛擬硬體平台採用還處於早期階段,但創新則是嵌入式開發社群之核心理念。
(本文作者Mark Patrick任職於貿澤電子)