1產(chǎn)業(yè)背景
2024年2月IDC發(fā)布的數(shù)據(jù)顯示,2023年中國(guó)物聯(lián)網(wǎng)(IoT)連接量超66億個(gè),未來(lái)5年復(fù)合增長(zhǎng)率約16.4%[1]。隨著物聯(lián)網(wǎng)設(shè)備數(shù)量的增加和應(yīng)用場(chǎng)景的擴(kuò)展,嵌入式系統(tǒng)在連接和管理大規(guī)模物聯(lián)網(wǎng)設(shè)備方面將發(fā)揮更加重要的作用。嵌入式系統(tǒng)需要能夠處理大規(guī)模的數(shù)據(jù),并提供安全、可靠的連接和通信功能,以支持各種物聯(lián)網(wǎng)應(yīng)用,包括智能城市、工業(yè)自動(dòng)化、智能健康等。
在物聯(lián)網(wǎng)發(fā)展過(guò)程中,邊緣計(jì)算正在快速興起。隨著對(duì)實(shí)時(shí)性和隱私性要求的加強(qiáng),邊緣計(jì)算作為一種在本地處理和分析數(shù)據(jù)的方式變得越來(lái)越受歡迎。邊緣計(jì)算能夠?qū)崿F(xiàn)快速響應(yīng)和即時(shí)決策,同時(shí)減少對(duì)云端資源的依賴。嵌入式系統(tǒng)在邊緣設(shè)備上正扮演著重要角色,邊緣計(jì)算的發(fā)展趨勢(shì)要求嵌入式系統(tǒng)的性能和能效不斷提升,以滿足邊緣計(jì)算場(chǎng)景下的需求。
隨著人工智能(AI)和機(jī)器學(xué)習(xí)(ML)在各個(gè)領(lǐng)域的應(yīng)用不斷深入,物聯(lián)網(wǎng)和邊緣計(jì)算的普及,嵌入式系統(tǒng)將有能力更加普遍地整合人工智能技術(shù)。這種能力包括在嵌入式設(shè)備上實(shí)現(xiàn)復(fù)雜的AI算法和模型推理,以提供更智能、更自適應(yīng)的功能和服務(wù),例如在自動(dòng)駕駛汽車、智能機(jī)器人和醫(yī)療設(shè)備等領(lǐng)域應(yīng)用。
2近期市場(chǎng)研究
關(guān)于嵌入式軟件開發(fā)趨勢(shì)的研究和討論一直在積極進(jìn)展中,VDC Research的多位分析師撰寫了一份關(guān)于2024年物聯(lián)網(wǎng)、嵌入式和工業(yè)技術(shù)預(yù)測(cè)的報(bào)告,報(bào)告概述了影響硬件和軟件市場(chǎng)的關(guān)鍵主題和趨勢(shì),并對(duì)未來(lái)的技術(shù)發(fā)展做出了一系列預(yù)測(cè)[2]。報(bào)告中預(yù)測(cè)AI正在從云端數(shù)據(jù)中心穩(wěn)步遷移到網(wǎng)絡(luò)邊緣,包括嵌入式設(shè)備。嵌入式和邊緣AI市場(chǎng)對(duì)特定行業(yè)應(yīng)用部署的優(yōu)化需求日益增長(zhǎng),這種趨勢(shì)推動(dòng)邊緣AI硬件變得更加面向應(yīng)用。報(bào)告還預(yù)測(cè)云原生(Cloud Native)開發(fā)解決方案未來(lái)將得到普及,新冠疫情期間云原生軟件開發(fā)解決方案取得了巨大的成功,嵌入式工程社區(qū)正迅速適應(yīng)這一開發(fā)模式,逐漸擺脫傳統(tǒng)的本地開發(fā)方式。
知名的嵌入式軟件專家和培訓(xùn)師,Beningo Embedded Group的創(chuàng)始人Jacob Beningo,在2024年1月嵌入式軟件的五個(gè)趨勢(shì)的文章中指出,嵌入式軟件團(tuán)隊(duì)正在快速采用DevOps。它為團(tuán)隊(duì)提供了自動(dòng)化構(gòu)建、測(cè)試和部署過(guò)程的方法[3]。Integrated Computer Solutions(ICS)的CEO Peter Winston在2024年3月一篇博客文章中指出:未來(lái)六大趨勢(shì)對(duì)嵌入式開發(fā)將產(chǎn)生深遠(yuǎn)影響,它們是網(wǎng)絡(luò)安全要求、設(shè)備的共存和互操作性、新芯片架構(gòu)、連接技術(shù)、AI/ML集成,和面向服務(wù)的架構(gòu)。這些趨勢(shì)肯定會(huì)在短期內(nèi)迅速重塑產(chǎn)品開發(fā)過(guò)程,并在未來(lái)持續(xù)產(chǎn)生影響[4]。
綜合以上的觀點(diǎn),在本文中我們將重點(diǎn)討論AI/ML集成與邊緣智能,虛擬化/容器和混合部署,以及CI/CD和DevOps這三大嵌入式軟件開發(fā)趨勢(shì)。
3趨勢(shì)之一:AI/ML集成與邊緣智能
3.1邊緣計(jì)算與邊緣AI
微軟對(duì)邊緣計(jì)算的定義是:邊緣計(jì)算是一種分布式計(jì)算框架,允許IoT設(shè)備快速處理網(wǎng)絡(luò)邊緣的數(shù)據(jù)并對(duì)其采取行動(dòng)[5]。微軟給出了一個(gè)邊緣計(jì)算示例:遠(yuǎn)程倉(cāng)庫(kù)中的安全相機(jī)使用AI識(shí)別可疑活動(dòng),并且僅將該特定數(shù)據(jù)發(fā)送到主數(shù)據(jù)中心進(jìn)行即時(shí)處理。相機(jī)不會(huì)不斷傳輸拍攝的全部視頻片段,而是只發(fā)送相關(guān)的片段,避免每天24小時(shí)傳輸給網(wǎng)絡(luò)帶來(lái)負(fù)擔(dān),從而釋放公司的網(wǎng)絡(luò)帶寬和計(jì)算處理資源用于其他用途。
邊緣AI正在將智能計(jì)算從以云為中心的模型中轉(zhuǎn)移出來(lái),并使其更接近數(shù)據(jù)源。推動(dòng)這一轉(zhuǎn)變的動(dòng)機(jī)是減少網(wǎng)絡(luò)流量,允許時(shí)間關(guān)鍵型應(yīng)用(例如制造、自主系統(tǒng))進(jìn)行實(shí)時(shí)決策,以及通過(guò)本地處理數(shù)據(jù)來(lái)加強(qiáng)隱私性。
邊緣AI減少了對(duì)超大規(guī)模AI提供商的依賴,并促進(jìn)了更廣泛的AI應(yīng)用。它在醫(yī)療保健、汽車和機(jī)器人技術(shù)領(lǐng)域具有推動(dòng)變革的潛力,能夠重塑這些行業(yè)的運(yùn)營(yíng)范式。展望未來(lái),AI將對(duì)不同類型的邊緣產(chǎn)生不同的影響。不同類型的邊緣計(jì)算如圖1所示[6]。
圖1三種類型的邊緣和常見(jiàn)的相關(guān)設(shè)備
厚邊緣(Thick Edge)是指配備了高性能計(jì)算部件(例如高端中央或圖形處理單元)的計(jì)算資源,通常位于數(shù)據(jù)中心,旨在處理計(jì)算密集型任務(wù)/工作負(fù)載,例如數(shù)據(jù)存儲(chǔ)和分析。薄邊緣(Thin Edge)是指智能控制器、網(wǎng)絡(luò)設(shè)備和計(jì)算機(jī),它們聚合了來(lái)自傳感器的數(shù)據(jù)。微邊緣(Micro Edge)是指生成數(shù)據(jù)的智能傳感器和設(shè)備。
3.2邊緣AI的細(xì)分
邊緣AI是在邊緣計(jì)算的設(shè)備上部署AI模型,從而在不依賴云連接的情況下實(shí)現(xiàn)AI推理和決策。邊緣AI也分為厚邊緣AI、薄邊緣AI和微邊緣AI。
厚邊緣AI的定位是在邊緣服務(wù)器支持執(zhí)行多個(gè)AI推理模型,包括針對(duì)本地敏感數(shù)據(jù)場(chǎng)景的AI模型訓(xùn)練或再訓(xùn)練。薄邊緣AI則是利用網(wǎng)關(guān)、IPC(工業(yè)計(jì)算機(jī))和PLC(可編程邏輯控制器)在網(wǎng)絡(luò)邊緣進(jìn)行AI處理,增強(qiáng)現(xiàn)有傳感器和設(shè)備的智能化能力。微邊緣AI支持將AI直接集成到傳感器中,提高智能系統(tǒng)的可擴(kuò)展性,并使日常設(shè)備能夠做出自主決策。
在微邊緣,微型機(jī)器學(xué)習(xí)(Tiny Machine Learning, TinyML)是重要的技術(shù)。這個(gè)技術(shù)讓在MCU等資源受限(如內(nèi)存、計(jì)算和能耗限制)的小芯片上運(yùn)行機(jī)器學(xué)習(xí)模型和算法成為可能。區(qū)別于現(xiàn)在流行的大模型,TinyML的尺寸遠(yuǎn)遠(yuǎn)小于一般的機(jī)器學(xué)習(xí)模型,和大模型更是相差甚遠(yuǎn)。現(xiàn)在很多的物聯(lián)網(wǎng)設(shè)備上都已經(jīng)用上了TinyML這項(xiàng)技術(shù),例如智能家居(恒溫器和智能燈光系統(tǒng))和健康監(jiān)測(cè)(心率和睡眠質(zhì)量)等[7]。在Embedded World 2024展會(huì)上TinyML基金會(huì)展區(qū)展示的一個(gè)案例中,TinyML被集成到日常物品和工具中,使他們能夠自主執(zhí)行決策功能,而無(wú)需云連接(如圖2所示)。這種方法能增強(qiáng)隱私性和數(shù)據(jù)安全性。
圖2基于ESP32、用于邊緣傳感的物聯(lián)網(wǎng)開發(fā)套件中的電鉆和TinyML開發(fā)工具
3.3 邊緣AI的三個(gè)趨勢(shì)
今天邊緣AI呈現(xiàn)出三大發(fā)展趨勢(shì):厚邊緣AI訓(xùn)練、薄邊緣和微邊緣NPU(神經(jīng)處理單元)加速,以及微邊緣TinyAI賦能。第一個(gè)趨勢(shì)是AI模型訓(xùn)練正在從云轉(zhuǎn)移到數(shù)據(jù)中心或微服務(wù)器等厚邊緣位置。從技術(shù)上看這是可能的,因?yàn)檫吘壩⒎?wù)器集成了高性能CPU和GPU,可在邊緣實(shí)現(xiàn)強(qiáng)大的計(jì)算,包括AI訓(xùn)練和多種AI推理功能。人工智能訓(xùn)練也可以在地端數(shù)據(jù)中心進(jìn)行,這樣做有四大好處:減少對(duì)云基礎(chǔ)設(shè)施的依賴,降低成本,增強(qiáng)隱私性,以及提高人工智能應(yīng)用程序在邊緣設(shè)備上的響應(yīng)能力。
在邊緣設(shè)備中集成專用NPU可大大增強(qiáng)AI推理能力。NPU可以降低功耗,改進(jìn)能耗管理,并助推高效的多任務(wù)處理,這使AI能夠在功耗敏感和延遲的關(guān)鍵型應(yīng)用(如可穿戴設(shè)備和傳感器節(jié)點(diǎn))中部署。arm的數(shù)據(jù)表明,用于AI推理的ARM CortexA55配置和Arm Cortex A55+Arm Ethos U65 NPU比較,后者將70%的AI推理從CPU轉(zhuǎn)移到NPU,推理性能提高了11倍。
微邊緣和薄邊緣AI實(shí)現(xiàn)了自主決策的本地化。將持AI的芯片組直接集成到蜂窩物聯(lián)網(wǎng)設(shè)備中的趨勢(shì)正在興起,這標(biāo)志著物聯(lián)網(wǎng)設(shè)備正在向能夠進(jìn)行本地化決策的智能、自主物聯(lián)網(wǎng)系統(tǒng)轉(zhuǎn)變。這一趨勢(shì)預(yù)計(jì)會(huì)對(duì)智慧城市和工廠等行業(yè)產(chǎn)生重大影響,并帶來(lái)顯著優(yōu)勢(shì),包括實(shí)時(shí)數(shù)據(jù)處理、減少延遲以及通過(guò)更小的外形尺寸提高效率。
嵌入式開發(fā)者對(duì)人工智能的開發(fā)非常重視。2023年Embedded.com嵌入式開發(fā)現(xiàn)狀調(diào)查報(bào)告顯示,針對(duì)在嵌入式開發(fā)中利用先進(jìn)的技術(shù)能力這一問(wèn)題,嵌入式人工智能和機(jī)器學(xué)習(xí)最受關(guān)注,緊隨其后的是嵌入式視覺(jué)和語(yǔ)音功能(如圖3所示)[8]。
圖3在嵌入式開發(fā)中利用先進(jìn)的技術(shù)能力
4趨勢(shì)之二:虛擬化、容器和混合部署
4.1 虛擬化
虛擬化技術(shù)是操作系統(tǒng)的一個(gè)重要技術(shù),在嵌入式系統(tǒng)中呈現(xiàn)蓬勃發(fā)展的趨勢(shì)。借助于對(duì)底層處理器內(nèi)核、內(nèi)存和外設(shè)的抽象,這種技術(shù)使得多個(gè)虛擬機(jī)可以運(yùn)行在同一個(gè)物理處理器上。虛擬化提供了多操作系統(tǒng)的運(yùn)行環(huán)境,例如可以在同一個(gè)設(shè)備中同時(shí)運(yùn)行高實(shí)時(shí)性操作系統(tǒng)(如FreeRTOS)和通用的操作系統(tǒng)(如Linux)。虛擬化技術(shù)是今天高算力多核處理器計(jì)算系統(tǒng)采用的全新解決方案,它平衡了通用性與可靠性兩方面需求。嵌入式虛擬化的典型應(yīng)用在智能汽車電子系統(tǒng)中,比如在一個(gè)智能座艙系統(tǒng)中同時(shí)運(yùn)行高實(shí)時(shí)性操作系統(tǒng)和人機(jī)交互操作系統(tǒng)[9]。
智能工業(yè)場(chǎng)景下的混合關(guān)鍵系統(tǒng)應(yīng)用可以借助多核處理器系統(tǒng)以及虛擬化技術(shù)部署,一個(gè)國(guó)產(chǎn)的虛擬化操作系統(tǒng)解決方案見(jiàn)圖4。該方案基于Intewell實(shí)時(shí)操作系統(tǒng),是一個(gè)針對(duì)數(shù)控系統(tǒng)、面向低成本硬件的可配置混合異構(gòu)系統(tǒng)解決方案[10]。
圖4 Intewell可配置混合異構(gòu)系統(tǒng)體系結(jié)構(gòu)
4.2容器
容器是一種輕量級(jí)、可移植、隔離的軟件環(huán)境。通過(guò)容器技術(shù),開發(fā)人員可以將應(yīng)用程序及其依賴項(xiàng)打包在一起,確保應(yīng)用在不同平臺(tái)上的一致性運(yùn)行,簡(jiǎn)化應(yīng)用開發(fā)、部署和管理流程。容器和虛擬機(jī)具有相似的資源隔離和分配功能,容器虛擬化軟件環(huán)境,而虛擬化則是虛擬化硬件。
編排器在容器技術(shù)中起到重要的作用,像Kubernetes這樣的編排器旨在自動(dòng)執(zhí)行容器化應(yīng)用程序的部署、擴(kuò)展和管理。Docker是Linux環(huán)境下最常見(jiàn)的容器平臺(tái),隨著云計(jì)算和大數(shù)據(jù)的廣泛應(yīng)用,一部分虛擬化正在被輕量級(jí)的容器技術(shù)替代,編排器的作用也變得越來(lái)越重要。有關(guān)于編排器性能和能耗的研究受到關(guān)注,例如鄭忠斌等提出利用線性規(guī)劃在提高資源利用率的同時(shí)降低碳足跡[11]。
4.3實(shí)時(shí)容器及其應(yīng)用
實(shí)時(shí)容器是基于實(shí)時(shí)操作系統(tǒng)(RTOS)實(shí)現(xiàn)的容器機(jī)制,貼近Docker用戶習(xí)慣,符合開放容器規(guī)范(OCI-Open Container Initiative),實(shí)現(xiàn)輕量化、安全和便捷的容器部署。
目前,國(guó)內(nèi)針對(duì)實(shí)時(shí)容器對(duì)外公開的研究較少,比較有代表性的有翼輝基于SylixOS開發(fā)的實(shí)時(shí)容器ECS (Edge Container Stack) [12]。ECS是輕量級(jí)實(shí)時(shí)容器技術(shù),使用ECS實(shí)時(shí)容器的SylixOS內(nèi)核依然有著與標(biāo)準(zhǔn)版本SylixOS相當(dāng)?shù)男阅堋CS實(shí)時(shí)容器提供給每個(gè)容器隔離的運(yùn)行環(huán)境。完整獨(dú)立的容器運(yùn)行環(huán)境保證了容器內(nèi)的應(yīng)用免受環(huán)境和其它應(yīng)用的影響,使容器的運(yùn)行環(huán)境符合預(yù)期,提升容器內(nèi)應(yīng)用的安全性。
鄧廣宏等指出,受限于開發(fā)時(shí)間以及軟件生態(tài)支持,ECS實(shí)時(shí)容器尚不成熟,難以應(yīng)對(duì)構(gòu)建大型容器云的需求[13]。國(guó)外對(duì)于實(shí)時(shí)容器的研究相對(duì)豐富,大多基于實(shí)時(shí)Linux補(bǔ)丁與Docker的組合實(shí)現(xiàn)實(shí)時(shí)容器。NXP的專家[14]重點(diǎn)研究了資源和成本受限的MCU/MPU領(lǐng)域的容器解決方案,提出了借鑒Android容器技術(shù)的一種解決方案——MICROEJ VEE,該方案可用于運(yùn)動(dòng)手表、智能洗衣機(jī)、智能電表和工業(yè)打印機(jī)等場(chǎng)景,其軟件架構(gòu)如圖5所示。
圖5一種小型實(shí)時(shí)容器方案:microeJ VEE
總之,容器技術(shù)可通過(guò)簡(jiǎn)化嵌入式軟件開發(fā)、部署和維護(hù)來(lái)助力復(fù)雜嵌入式系統(tǒng)的管理。開發(fā)者在使用容器時(shí)需要注意平衡容器的優(yōu)勢(shì)和容器之間通信帶來(lái)的復(fù)雜性和性能損失。
4.4混合關(guān)鍵系統(tǒng)部署
什么是混合關(guān)鍵系統(tǒng)(Mixed Criticality Systems,簡(jiǎn)稱MCS)?英國(guó)約克大學(xué)的專家給出了下面的定義;混合關(guān)鍵系統(tǒng)是指包含兩個(gè)或更多不同關(guān)鍵性級(jí)別的組件的系統(tǒng)[15],例如安全關(guān)鍵、任務(wù)關(guān)鍵和非關(guān)鍵組件。這些系統(tǒng)通常存在于汽車和航空電子領(lǐng)域中的復(fù)雜嵌入式系統(tǒng)中,它們正在向MCS發(fā)展,以滿足與成本、空間、重量和功耗等非功能需求相關(guān)的嚴(yán)格標(biāo)準(zhǔn)。
混合關(guān)鍵系統(tǒng)的研究和工程實(shí)踐旨在通過(guò)部署、隔離和調(diào)度等技術(shù)手段,實(shí)現(xiàn)多系統(tǒng)混合部署,并實(shí)現(xiàn)系統(tǒng)間彼此隔離保護(hù),通過(guò)調(diào)度提升資源利用率。具體在技術(shù)層面,學(xué)術(shù)界側(cè)重調(diào)度方法研究,西北工業(yè)大學(xué)的一項(xiàng)研究中作者提出了一種基于異構(gòu)多核系統(tǒng)的混合關(guān)鍵任務(wù)調(diào)度算法[16]。工業(yè)界更多關(guān)注時(shí)空隔離下的混合關(guān)鍵性部署,保證各子系統(tǒng)間互相隔離,資源采用靜態(tài)分配,因此整體資源利用率不高。為了解決這一問(wèn)題,華為提出基于openEuler的混合關(guān)鍵性系統(tǒng)解決方案[17],其架構(gòu)如圖6所示。
圖6混合關(guān)鍵性系統(tǒng)架構(gòu)
混合關(guān)鍵系統(tǒng)的實(shí)現(xiàn)可以依托彈性融合底座,底座的核心是容器和虛擬化技術(shù)。該解決方案中推薦使用輕量級(jí)容器isula,嵌入式虛擬化推薦使用ZVM和Jailhouse。ZVM(Zephyr-based Virtual Machine)是基于Zephyr實(shí)時(shí)操作系統(tǒng)實(shí)現(xiàn)虛擬化功能的開源項(xiàng)目,該項(xiàng)目是由湖南大學(xué)嵌入式與網(wǎng)絡(luò)計(jì)算湖南省重點(diǎn)實(shí)驗(yàn)室主導(dǎo),目前可以實(shí)現(xiàn)同時(shí)啟動(dòng)一個(gè)Linux與多個(gè)Zephyr RTOS,從而在同一硬件平臺(tái)上實(shí)現(xiàn)混合內(nèi)核部署[18]?;旌详P(guān)鍵系統(tǒng)目前主要應(yīng)用在智能制造、機(jī)器人、能源、軍工和航空航天等強(qiáng)實(shí)時(shí)和高安全領(lǐng)域。
5趨勢(shì)之三:CI/CD和DevOps
5.1概述
DevOps是一種軟件開發(fā)實(shí)踐,可促進(jìn)開發(fā)與運(yùn)維之間的協(xié)作,從而更快、更可靠地交付軟件。DevOps通常被理解一種文化,將開發(fā)者、流程和方法連接在一起來(lái)提供持續(xù)價(jià)值[19]。DevOps在IT產(chǎn)業(yè)被廣泛地使用,其具體做法是CI/CD(持續(xù)集成/持續(xù)交付),這是一種通過(guò)在應(yīng)用開發(fā)階段引入自動(dòng)化技術(shù)快速迭代向客戶交付應(yīng)用的方法。與CI/CD關(guān)聯(lián)的步驟通常被統(tǒng)稱為CI/CD管道(Pipeline),由開發(fā)和運(yùn)維團(tuán)隊(duì)以敏捷開發(fā)方式協(xié)同完成。
隨著云計(jì)算、容器、微服務(wù)等技術(shù)的蓬勃發(fā)展,云原生的概念已被市場(chǎng)普遍接受。云原生技術(shù)是DevOps實(shí)踐的核心組成部分,通過(guò)使用云原生工具和流程,可以實(shí)現(xiàn)自動(dòng)化的應(yīng)用程序開發(fā)、測(cè)試和部署,從而加快軟件交付速度,提高應(yīng)用程序質(zhì)量和穩(wěn)定性。DevOps一站式平臺(tái)則將云原生開發(fā)模式融合到產(chǎn)品中,為廣大開發(fā)者提供好用易用的云原生研發(fā)管理解決方案,包含敏捷項(xiàng)目管理、代碼管理、自動(dòng)化測(cè)試管理,CI/CD流水線等功能,讓開發(fā)、測(cè)試、部署全流程與云原生底座平臺(tái)無(wú)縫結(jié)合,降低嵌入式開發(fā)者上手的門檻,加快CI/CD和DevOps云原生技術(shù)在嵌入式開發(fā)中的落地。
5.2CI/CD和DevOps在嵌入式開發(fā)中的實(shí)踐
蘇黎世應(yīng)用科技大學(xué)嵌入式系統(tǒng)學(xué)院(InES)在工業(yè)協(xié)議認(rèn)證測(cè)試中,采用基于云原生的CI/CD管道技術(shù)的自動(dòng)化編排方法。具體步驟有以下幾個(gè):測(cè)試用例與測(cè)試環(huán)境與Azure DevOps CI/CD結(jié)合,Pipelines(編排)的集成,PROFINET(工業(yè)以太網(wǎng))的概念驗(yàn)證,以及創(chuàng)建、驗(yàn)證單元測(cè)試環(huán)境。最后的結(jié)論是這種方法改變了傳統(tǒng)的V模型(驗(yàn)證模型)開發(fā)流程,即從瀑布式轉(zhuǎn)變到敏捷開發(fā),加快開發(fā)周期,提高效率[20]。
西門子對(duì)當(dāng)前汽車電子產(chǎn)業(yè)的軟件工程開發(fā)做了詳盡分析,西門子的研究員指出車廠OEM和OEM的許多一級(jí)供應(yīng)商正在采用軟件工廠的開發(fā)方法,比如從傳統(tǒng)的汽車開發(fā)中分離出來(lái)的大眾集團(tuán)軟件公司CARIAD和捷豹路虎的愛(ài)爾蘭香農(nóng)和英國(guó)曼徹斯特軟件開發(fā)團(tuán)隊(duì)[21]。汽車軟件開發(fā)正在擁抱CI/CD,支持多個(gè)車型和平臺(tái)上整個(gè)生命周期的持續(xù)的軟件更新。典型的CI/CD開發(fā)過(guò)程如圖7所示。
圖7典型的CI/CD開發(fā)過(guò)程
5.3嵌入式CI/CD和 DevOps工具
傳統(tǒng)的嵌入式軟件開發(fā)工具是一個(gè)集成開發(fā)環(huán)境,將編輯、編譯、構(gòu)建和調(diào)試合成在一個(gè)以工程包為核心的開發(fā)環(huán)境中,具有入門門檻低、集成度高以及針對(duì)性強(qiáng)等特點(diǎn),缺點(diǎn)也很明顯:跨平臺(tái)、升級(jí)和第三方集成不方便。典型的傳統(tǒng)開發(fā)工具如IAR Embedded Workbench。
過(guò)去十年來(lái),在高端微控制器中運(yùn)行的軟件的復(fù)雜性顯著增加,比如實(shí)時(shí)操作系統(tǒng)(RTOS)和通信堆棧已經(jīng)取得了廣泛應(yīng)用。隨著物聯(lián)網(wǎng)的普及,附加軟件層通信協(xié)議(MQTT)和高級(jí)安全性管理(例如基于云的設(shè)備管理)在物聯(lián)網(wǎng)應(yīng)用中是必需的。同時(shí),GUI庫(kù)、DSP庫(kù)、機(jī)器學(xué)習(xí)軟件框架等中間件也增加了手動(dòng)集成軟件組件的復(fù)雜性。
為了改善嵌入式開發(fā)過(guò)程,Arm開發(fā)了CMSIS-Toolbox實(shí)用程序,它是一個(gè)開源項(xiàng)目,也是Open-CMSIS-Pack的一部分[22]。Arm于2014年推出了CMSIS-Pack,它是CMSIS(通用微控制器軟件接口標(biāo)準(zhǔn))版本4的一部分。CMSIS-Toolbox支持使用不同工具和不同工作流程,幫助嵌入式軟件開發(fā)人員更輕松地協(xié)作,如圖8所示。
圖8 CMSIS-Toolbox開放的工作流程
市面上已經(jīng)出現(xiàn)了整合云和CI/CD的嵌入式開發(fā)平臺(tái),如Wind River Studio(下文中簡(jiǎn)稱為Studio)。Studio是一個(gè)云原生工具集,用于開發(fā)、部署、運(yùn)營(yíng)和服務(wù)關(guān)鍵任務(wù)智能系統(tǒng)[23]。它為開發(fā)嵌入式設(shè)備軟件平臺(tái)和應(yīng)用程序而構(gòu)建,包括交叉編譯系統(tǒng)和嵌入式設(shè)備測(cè)試系統(tǒng),可查看端到端工作流程的狀態(tài),以便診斷定制化流水線中的復(fù)雜問(wèn)題。Studio在基于云的基礎(chǔ)設(shè)施上提供一套高度集成的工具,實(shí)現(xiàn)嵌入式軟件開發(fā)的自動(dòng)化,并針對(duì)平臺(tái)開發(fā)人員、應(yīng)用程序開發(fā)人員和測(cè)試人員實(shí)現(xiàn)自定義的CI/CD流程。
Wind River(風(fēng)河)是全球知名的嵌入式軟件企業(yè),產(chǎn)品包括邊緣設(shè)備的實(shí)時(shí)操作系統(tǒng)、實(shí)時(shí)Linux和虛擬化技術(shù),以及邊緣開發(fā)和云計(jì)算解決方案,應(yīng)用覆蓋航空、航天、工業(yè)、汽車和通信。風(fēng)河在嵌入式系統(tǒng)耕耘數(shù)十年,是嵌入式操作系統(tǒng)業(yè)界的常青樹[24]。
6 結(jié)語(yǔ)
在智能系統(tǒng)時(shí)代,嵌入式系統(tǒng)重要挑戰(zhàn)來(lái)自軟件開發(fā)。過(guò)去40年,集成電路在摩爾定律推動(dòng)下快速發(fā)展,遺憾的是軟件發(fā)展遠(yuǎn)遠(yuǎn)滯后了。當(dāng)前,嵌入式軟件開發(fā)面臨巨大挑戰(zhàn)。以自動(dòng)駕駛為代表的智能應(yīng)用,一方面必須以高安全等級(jí)為基礎(chǔ),另一方面,由于高算力多核芯片的超速發(fā)展,基礎(chǔ)軟件需不斷更新以適配新型異構(gòu)多核、包含AI/GPU等不同芯片的處理器體系架構(gòu)。此外,微內(nèi)核操作系統(tǒng)發(fā)展提速,混合部署應(yīng)用需要虛擬化和容器技術(shù)支撐[25]。
展望未來(lái),業(yè)界需要研究嵌入式軟件開發(fā)趨勢(shì),把握電子信息產(chǎn)業(yè)最新需求,梳理軟件工程實(shí)踐經(jīng)驗(yàn),改進(jìn)嵌入式軟件開發(fā)方法,勇于采用新技術(shù)新平臺(tái),從而迎接人工智能時(shí)代嵌入式軟件的新機(jī)遇。
參考文獻(xiàn)
[1]IDC.5G引領(lǐng)物聯(lián)網(wǎng)連接增長(zhǎng),IDC發(fā)布中國(guó)物聯(lián)網(wǎng)連接量預(yù)測(cè)[EB/OL].
https://www.idc.com/getdoc.jsp?containerld=prCHC51842824, 2023-02-02.
[2] Rommel, C., Hoffenberg, S., Mandell, D., et al. (2024) 2024 loT, Embedded &I ndustrial Technology Predictions.
https://www.vdcresearch.com/vdcc/wp-content/uploads/2024/01/2024-loT-Embedd ed-Industrial-Tech-VDC.pdf
[3] Beningo, J. (2024) 5 Embedded Software Trends to Watch in 2024
https://www.designnews.com/embedded-systems/5-embedded-software-trends-to-watch-in-2024
[4]微軟公司.什么是邊緣計(jì)算?[EB/OL].
https://azure.microsoft.com/zh-cn/resources/cloud-computing-dictionary/what-is-ed ge-computing/, 2024-01-03.
[5] Winston, P.(2024) 6 Embedded Software Development Trends to Watch in 2024.
https://www.ics.com/blog/6-embedded-software-development-trends-watch-2024
[6] loT Business News (2024) The Top 6 Edge Al Trends-As Showcased at Emb edded World 2024.
https://iotbusinessnews.com/2024/04/30/34354-the-top-6-edge-ai-trends-as-show cased-at-embedded-world-2024
[7] Lin, J., Zhu, L.G., Chen, W.-M., et al. (2024) Tiny Machine Learning Projects.https://hanlab.mit.edu/projects/tinyml
[8]Embedded.com (2023) The Current State of Embedded Development.https://www.embedded.com/wp-content/uploads/2023/05/Embedded-Market-Study -For-Webinar-Recording-April-2023.pdf
[9]何小慶.嵌入式實(shí)時(shí)操作系統(tǒng)的昨天、今天和明天[J].中國(guó)計(jì)算機(jī)學(xué)會(huì)通訊,2023(2):80-85.
[10]郭建川,殷燦菊.面向數(shù)控機(jī)床異構(gòu)系統(tǒng)架構(gòu)設(shè)計(jì)的操作系統(tǒng)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2022(3):8-10.
[11]鄭忠斌,李世強(qiáng),費(fèi)海平.一種基于Kubernetes的工業(yè)物聯(lián)網(wǎng)的新型調(diào)度[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2021,21(6):8-10.
[12]翼輝信息.ECS實(shí)時(shí)容器[EB/OL].
https://www.acoinfo.com/product/5328/?category=42&subCategory=7350&curCateg ory=5328, 2022-05-07.
[13]鄧廣宏,張棋恒.基于混合關(guān)鍵系統(tǒng)的容器調(diào)度架構(gòu)設(shè)計(jì)[J].計(jì)算機(jī)科學(xué),2023,50(z1): 901-905.
[14] Patel, M. (2024) Containers for Cost Optimized MCUs and MPUs: A Game-Ch anger for Embedded Systems.
https://www.linkedin.com/posts/maulin-patel-6a927a9_containers-for-cost-optimize d-mcus-and-mpus-activity-7193335080805715971-BeMp
[15] Burns, A. and Davis, R.I. (2017) A Survey of Research into Mixed Criticality S ystems. ACM Computing Surveys (CSUR), 50,1-37.
https://doi.org/10.1145/3131347
[16]趙瑞姣,朱怡安,李聯(lián).基于異構(gòu)多核系統(tǒng)的混合關(guān)鍵任務(wù)調(diào)度算法[J].計(jì)算機(jī)工程,2018, 44(2): 51-55.
[17]余德釗.實(shí)時(shí)內(nèi)核UniProton及其混合關(guān)鍵性部署的實(shí)踐[EB/OL].
https://www.esbf.org/wp-content/uploads/2023/08/202308_YDZ.pdf, 2023-08.
[18] openEuler. openEuler開源新項(xiàng)目,嵌入式實(shí)時(shí)虛擬機(jī)ZVM介紹[EB/OL].https://www.openeuler.org/zh/blog/20230325-ZVM/20230325-ZVM.html,2023-03-23.
[19]微軟公司.DevOps教程——簡(jiǎn)介[EB/OL].
https://azure.microsoft.com/zh-cn/solutions/devops/tutorial/, 2024-07-01.
[20]Lone,O.,Stasiak, T., Meisterhan, J., et al. (2024) The Future of Industrial Pro tocol Certification Testing: CI/CD Pipelines, Cloud-Based, Automated and Orchestr ated. Embedded World Conference, Nuremberg, 9-11 April 2024, 399-402.
[21]Morris, B. (2024) What Is Coming Next with Software Defined Vehicles? An E xamination of the Trends Predicted over the Coming Years. Embedded World Co nference, Nuremberg, 9-11 April 2024, 304-309.
[22]Yiu, J. (2024) Simplifying the Integration of Software Components in Modern Microcontroller Systems. Embedded World Conference, Nuremberg, 9-11 April 2024,29-35.
[23] Wind River. Wind River Studio.
https://www.windriver.com/studio
[24]何小慶.嵌入式操作系統(tǒng)風(fēng)云錄——?dú)v史演進(jìn)與物聯(lián)網(wǎng)未來(lái)[M].北京:機(jī)械工業(yè)出版社,2016:18-19.
[25]何小慶.AloT時(shí)代的嵌入式技術(shù)與人才培養(yǎng)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2020,20(9):6
-
嵌入式
+關(guān)注
關(guān)注
5082文章
19104瀏覽量
304783 -
AI
+關(guān)注
關(guān)注
87文章
30728瀏覽量
268874 -
虛擬化
+關(guān)注
關(guān)注
1文章
371瀏覽量
29790 -
ML
+關(guān)注
關(guān)注
0文章
149瀏覽量
34642
原文標(biāo)題:嵌入式軟件開發(fā)的三個(gè)趨勢(shì)
文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論