隨著現(xiàn)代軟件技術(shù)進(jìn)入我們的行業(yè),嵌入式系統(tǒng)行業(yè)經(jīng)歷了一些快速的變化。雖然將改變你的開發(fā)的具體技術(shù)可能會根據(jù)你的行業(yè)和團(tuán)隊(duì)技能而有所不同,但是有三種技術(shù)是每個團(tuán)隊(duì)都應(yīng)該采用的。
現(xiàn)代技術(shù)1:基于模型的設(shè)計(jì)
嵌入式開發(fā)人員習(xí)慣于在硬件和應(yīng)用程序代碼的交叉點(diǎn)上工作。他們從低層次思考,包括與硬件的交互。雖然在某些情況下這很重要,但是有更多的機(jī)會在最高的抽象層次上思考。今天的系統(tǒng)已經(jīng)變得如此復(fù)雜,以至于從頭開始構(gòu)建一個系統(tǒng)是沒有意義的。
基于模型的設(shè)計(jì)是一種技術(shù),團(tuán)隊(duì)可以利用它來幫助他們在更高的抽象層次上工作。他們不關(guān)注硬件,而是關(guān)注用戶和他們的應(yīng)用程序代碼。這種技術(shù)使用圖形模型(而不是傳統(tǒng)的代碼)來設(shè)計(jì)和模擬嵌入式系統(tǒng)。它允許快速原型化和測試,使得開發(fā)過程更加高效和抗錯。
基于模型的設(shè)計(jì)經(jīng)常與“無代碼”的概念聯(lián)系在一起這個想法是,你可以創(chuàng)建應(yīng)用程序的模型,測試它,修改它,然后生成代碼。雖然這種想法可能會令許多嵌入式開發(fā)人員反感,但它是一種現(xiàn)代技術(shù),可以幫助你更快地開發(fā)系統(tǒng)并關(guān)注客戶。有客戶反饋的快速迭代對每個產(chǎn)品開發(fā)周期都至關(guān)重要。
現(xiàn)代技術(shù)2:容器化和虛擬化
容器和虛擬化是軟件開發(fā)人員的基本技術(shù),但它們?nèi)栽谇度胧较到y(tǒng)中被采用。這些技術(shù)可以在幾個方面極大地幫助開發(fā)人員。
首先,利用容器可以幫助團(tuán)隊(duì)創(chuàng)建隔離且一致的開發(fā)、測試和部署環(huán)境。這些環(huán)境可以確保每個開發(fā)人員都使用配置相同的一組工具。對于團(tuán)隊(duì)來說,與在不同機(jī)器上表現(xiàn)不同的軟件斗爭并不罕見。根本原因通常是編譯器或工具鏈的差異。容器有助于確保這些環(huán)境是相同的。他們還可以幫助新的團(tuán)隊(duì)成員和機(jī)器更快地建立起來,只需讓他們構(gòu)建容器,然后準(zhǔn)備好就可以了。
第二,這些技術(shù)可以集成到系統(tǒng)的軟件架構(gòu)中,以提供可擴(kuò)展和可移植的解決方案。開發(fā)人員可以創(chuàng)建基于微服務(wù)的架構(gòu),以各種架構(gòu)模式部署容器。現(xiàn)在,這些技術(shù)不一定適用于所有的嵌入式系統(tǒng)。例如,使用運(yùn)行Linux的應(yīng)用程序處理器的開發(fā)人員可以很容易地利用這些技術(shù)。與此同時,使用微控制器的開發(fā)人員可能會發(fā)現(xiàn),微控制器需要太多的馬力和內(nèi)存才能發(fā)揮作用。
雖然容器和虛擬化是令人著迷的技術(shù),但嵌入式開發(fā)人員必須仔細(xì)權(quán)衡何時何地使用它們才能對其開發(fā)過程產(chǎn)生最大的積極影響。
現(xiàn)代技術(shù)3: DevOps和CI/CD
在嵌入式系統(tǒng)開發(fā)中實(shí)施DevOps實(shí)踐(包括CI/CD管道)可以顯著提高軟件開發(fā)過程的效率和質(zhì)量。嵌入式開發(fā)人員通常手動完成所有工作,例如手動測試代碼、審查代碼、部署代碼等等。
DevOps和CI/CD幫助開發(fā)人員專注于自動化他們的開發(fā)過程。這一切都是為了快速和經(jīng)常地獲得反饋。持續(xù)改進(jìn)和快速迭代。有什么比自動化更好的方法來做到這一點(diǎn)呢?
CI/CD可以幫助開發(fā)人員創(chuàng)建構(gòu)建、測試、集成、分析和部署其軟件的自動化。一條簡單的管道可以在幾個小時內(nèi)組裝起來。然而,一個完整的生產(chǎn)意圖管道可能需要仔細(xì)的規(guī)劃和熟練的執(zhí)行。從質(zhì)量保證、安全掃描、報(bào)告等等,在整個流程中可能會有其他流程的交叉。團(tuán)隊(duì)通常會在部署前創(chuàng)建一個手動關(guān)口,要求簽收向客戶部署的最新固件。
一旦進(jìn)入現(xiàn)場,可觀察性技術(shù)用于監(jiān)控固件的行為并報(bào)告是否有任何問題。可觀察性可以幫助團(tuán)隊(duì)盡早發(fā)現(xiàn)問題和缺陷,然后部署修復(fù)措施以確保客戶在使用產(chǎn)品時獲得最佳體驗(yàn)。
結(jié)論
成功設(shè)計(jì)和構(gòu)建一個嵌入式系統(tǒng)需要多方面的配合。雖然你可以通過多種方式創(chuàng)建系統(tǒng),但這三種現(xiàn)代技術(shù)可以幫助你提高質(zhì)量并更快地進(jìn)入市場。有些方法需要極大的思維轉(zhuǎn)變才能發(fā)揮杠桿作用,而其他方法似乎非常自然。