嵌入式軟件可以運(yùn)行任何東西,從8位微控制器到運(yùn)行微控制器和應(yīng)用內(nèi)核的復(fù)雜多核FPGA系統(tǒng)。雖然我們的行業(yè)規(guī)模龐大,并且正在發(fā)生許多事情,但在2024年及以后,有幾個(gè)總體趨勢將是必不可少的。讓我們看看基于微控制器的系統(tǒng)的幾個(gè)行業(yè)趨勢。
嵌入式軟件趨勢1:利用人工智能
人工智能(AI)是一個(gè)顯著而明顯的趨勢,所以讓我們馬上解決這個(gè)問題。人工智能技術(shù)正以指數(shù)級的速度發(fā)展,并有可能徹底改變你創(chuàng)建嵌入式軟件的方式。人工智能將進(jìn)入軟件開發(fā)生命周期的許多領(lǐng)域,包括以下領(lǐng)域:
l 代碼生成
l 排除故障
l 代碼審查
已經(jīng)有各種各樣的工具采用“CoPilot”的名稱來幫助軟件開發(fā)。例如,Github CoPilot與Visual Studio代碼集成,提供開發(fā)人員可以接受的代碼生成建議。
問題不是你是否應(yīng)該在嵌入式軟件開發(fā)中使用人工智能技術(shù),而是你應(yīng)該如何使用它們來加速和改進(jìn)你的嵌入式軟件。
嵌入式軟件趨勢2:改進(jìn)CI/CD流程
嵌入式軟件團(tuán)隊(duì)正在快速采用DevOps。它為團(tuán)隊(duì)提供了自動(dòng)化構(gòu)建、測試和部署過程的方法。這些概念和技術(shù)可以幫助團(tuán)隊(duì)更快地開發(fā)更高質(zhì)量的軟件。然而,很多嵌入式團(tuán)隊(duì)很難為他們的嵌入式產(chǎn)品實(shí)現(xiàn)合理的管道,尤其是中小型公司。
CI/CD技術(shù)已經(jīng)達(dá)到了一個(gè)成熟的水平,嵌入式團(tuán)隊(duì)可以利用這些技術(shù)更好地利用CI/CD。團(tuán)隊(duì)更容易采用DevOps和CI/CD,并預(yù)計(jì)未來一年將呈上升趨勢。實(shí)現(xiàn)了管道的團(tuán)隊(duì)沒有充分利用它們,這意味著他們沒有從他們的努力中獲得全部利益。開發(fā)過程中質(zhì)量和可觀察性的潛在改進(jìn)現(xiàn)在太重要了,不容忽視。
嵌入式軟件趨勢3:在32位應(yīng)用程序中逐步淘汰C,替用C++和Rust
編程語言之戰(zhàn)今年將繼續(xù)。我相信我們將繼續(xù)看到C編程語言開始被淘汰,并被C++和Rust等更現(xiàn)代的語言所取代。在我們有生之年,C語言不會(huì)被完全取代;然而,越來越多的團(tuán)隊(duì)在開始新項(xiàng)目時(shí)放棄C,而更喜歡使用C++。
值得注意的是,這種轉(zhuǎn)變發(fā)生在32位微控制器領(lǐng)域。這些器件變得如此強(qiáng)大,以至于它們推動(dòng)了微控制器和應(yīng)用處理器之間的界限。它們現(xiàn)在如此復(fù)雜,以至于接近通用計(jì)算應(yīng)用程序,在這些應(yīng)用程序中采用像C++或Rust這樣的現(xiàn)代語言更有意義。
人們對Rust很感興趣,但它在嵌入式領(lǐng)域的應(yīng)用可能會(huì)更快。考慮到嵌入式產(chǎn)品采用新技術(shù)的速度非常緩慢,這并不奇怪。在為硬件提供板條箱的硅供應(yīng)商支持Rust之前,我們不會(huì)看到采用Rust的巨大推動(dòng)力。在此之前,主流趨勢將是使用它們隨C++一起提供的C庫。
嵌入式軟件趨勢4:以開發(fā)人員為中心的工作流
開發(fā)人員通常只是接受了芯片供應(yīng)商提供的工具。該團(tuán)隊(duì)根據(jù)供應(yīng)商設(shè)計(jì)工具的方式調(diào)整其開發(fā)工作流程。例如,多年來,團(tuán)隊(duì)一直使用基于Eclipse的ide進(jìn)行嵌入式軟件開發(fā)。雖然方便,但它不容易與現(xiàn)代開發(fā)過程、CI/CD、AI工具等很好地集成。
使用像Visual Studio Code這樣的工具,開發(fā)人員可以完全自定義最適合自己的工作流程。雖然這似乎是一個(gè)小趨勢,但它有可能提高開發(fā)人員的效率并幫助團(tuán)隊(duì)按時(shí)交付。如果每個(gè)從事項(xiàng)目的開發(fā)人員都可以定制他們的工具,以適合他們需求的方式進(jìn)行開發(fā),而不是采用一些通用過程,他們將能夠更快地開發(fā)代碼。更快的交付速度意味著有更多的時(shí)間專注于質(zhì)量和節(jié)省成本或交付更多功能的能力。
隨著時(shí)間的推移,我們會(huì)看到以開發(fā)人員為中心的工作流受到更多關(guān)注。畢竟,一家公司最大的資產(chǎn)是員工,因此幫助他們以合適的方式工作是合乎邏輯的。
嵌入式軟件趨勢5:邁向更高的抽象層次
在嵌入式軟件行業(yè)中,向更高級別的抽象轉(zhuǎn)移并不是什么新鮮事。抽象為我們提供了一種簡化復(fù)雜軟件和交互的機(jī)制。隨著軟件變得越來越復(fù)雜,對更高層次抽象的需求不再是奢侈品,而是必需品!
微控制器硬件和物聯(lián)網(wǎng)應(yīng)用的復(fù)雜性已經(jīng)將嵌入式軟件的邊界推到了現(xiàn)在與通用計(jì)算相交的地步。它已經(jīng)存在了一段時(shí)間,但公司現(xiàn)在意識到如何成功利用這一交叉點(diǎn)。
例如,一個(gè)團(tuán)隊(duì)傳統(tǒng)上可能選擇一個(gè)RTOS,但仍然編寫他們所有的低級驅(qū)動(dòng)程序。相反,今天的團(tuán)隊(duì)將通過選擇支持POSIX并且已經(jīng)有驅(qū)動(dòng)程序和Hal的RTOS來抽象這些細(xì)節(jié)。他們的應(yīng)用程序?qū)⒗眠@些抽象概念,因此對底層硬件和中間件的了解非常少。與很難找到的嵌入式軟件開發(fā)人員組成的團(tuán)隊(duì)不同,任何了解一般計(jì)算機(jī)科學(xué)技術(shù)的實(shí)習(xí)生都可以啟動(dòng)并運(yùn)行系統(tǒng)。
我們可以期待通用計(jì)算能力和抽象的大幅提升,以及無代碼解決方案的增加。
嵌入式軟件趨勢結(jié)論
這五個(gè)趨勢迫使許多嵌入式軟件團(tuán)隊(duì)重新思考他們?nèi)绾伍_發(fā)和構(gòu)建他們的嵌入式系統(tǒng)。需要注意的是,雖然這些都是比較重大的行業(yè)趨勢,但每個(gè)行業(yè)和團(tuán)隊(duì)都是不同的。你可能會(huì)發(fā)現(xiàn)其中一些趨勢并不影響你的日常開發(fā)工作。其他人可能會(huì)迫使你大幅改變開發(fā)軟件的方式。