開發(fā)嵌入式軟件并不像以前那么簡(jiǎn)單,對(duì)于許多開發(fā)團(tuán)隊(duì)來(lái)說(shuō),創(chuàng)建一個(gè)獨(dú)立的設(shè)備仍然經(jīng)常是具有挑戰(zhàn)性的,在物聯(lián)網(wǎng)時(shí)代,我們開始連接一切——包括牙刷——系統(tǒng)的復(fù)雜性正在飆升,傳統(tǒng)的、脫節(jié)的嵌入式開發(fā)人員發(fā)現(xiàn),要想取得成功,需要解決多個(gè)新挑戰(zhàn):
挑戰(zhàn) #1 – 連接性
這聽起來(lái)很簡(jiǎn)單,但是有很多不同的方式可以連接到互聯(lián)網(wǎng)。開發(fā)人員可以通過(guò) WiFi、以太網(wǎng)、蜂窩、LoRa、藍(lán)牙和許多其他來(lái)源進(jìn)行連接。每個(gè)都有自己的優(yōu)點(diǎn)和缺點(diǎn),以及開發(fā)人員需要學(xué)習(xí)和理解以使硬件正常工作的不同軟件堆棧。這甚至不包括關(guān)于使用哪些協(xié)議(例如 UDP、COAP、TCP/IP 等)或是否同時(shí)使用多個(gè)協(xié)議的其他軟件注意事項(xiàng)。然后是學(xué)習(xí)和使用 TLS 和/或 MQTT 的挑戰(zhàn),并理解當(dāng)你投入服務(wù)器時(shí)它們是如何工作的。當(dāng)然,開發(fā)人員可以使用預(yù)先存在的軟件堆棧來(lái)幫助減少挑戰(zhàn),但他們?nèi)匀恍枰私庹诎l(fā)生的事情,以防萬(wàn)一出現(xiàn)問(wèn)題或需要修改。
挑戰(zhàn) #2 – 無(wú)線更新
現(xiàn)在設(shè)備終于連接到互聯(lián)網(wǎng)了,我們可以遠(yuǎn)程更新它的固件,這聽起來(lái)是個(gè)好主意。使用獨(dú)立設(shè)備時(shí),開發(fā)人員過(guò)去只需將新固件映像發(fā)布到安全站點(diǎn),然后通過(guò)電子郵件向所有客戶發(fā)送“過(guò)來(lái)拿!”借助物聯(lián)網(wǎng),軟件更新有望奇跡般地出現(xiàn)并自行執(zhí)行。即使在涉及數(shù)千臺(tái)設(shè)備的小型部署中,嵌入式開發(fā)人員也需要弄清楚如何:
生成固件更新作業(yè)
保護(hù)他們的更新
驗(yàn)證它們來(lái)自受信任的來(lái)源
如果有問(wèn)題回滾更新
確定何時(shí)適合更新設(shè)備
這是開發(fā)人員現(xiàn)在需要了解的所有耗時(shí)、棘手的業(yè)務(wù),才能成功部署他們的產(chǎn)品。
挑戰(zhàn)#3——安全
開發(fā)人員不僅需要了解設(shè)備如何連接,還需要了解如何保護(hù)他們的設(shè)備免受不斷發(fā)展和變得更加復(fù)雜的安全威脅。安全性不是在設(shè)計(jì)周期結(jié)束時(shí)就可以添加到系統(tǒng)中的東西。而且這不是一夜之間就能學(xué)會(huì)的東西。需要仔細(xì)考慮系統(tǒng)是如何分區(qū)、隔離的,以及需要保護(hù)哪些信息。嵌入式開發(fā)人員需要清楚地確定他們的系統(tǒng)需要有多安全。
挑戰(zhàn)#4——調(diào)試
隨著越來(lái)越多的團(tuán)隊(duì)構(gòu)建連接設(shè)備,復(fù)雜性也在增加。調(diào)試所花費(fèi)的時(shí)間也很可能會(huì)增加。隨著開源軟件和其他軟件包的集成,系統(tǒng)肯定會(huì)產(chǎn)生奇怪和新的行為,除非它們都被設(shè)計(jì)為首先可以協(xié)同工作。嵌入式調(diào)查顯示,開發(fā)人員平均已經(jīng)花費(fèi)了 40% 的時(shí)間進(jìn)行調(diào)試,每個(gè)嵌入式項(xiàng)目的調(diào)試都需要花費(fèi)大量時(shí)間和金錢。出于這個(gè)原因,開發(fā)人員了解他們可用的所有調(diào)試技術(shù)以及如何首先防止它們是很重要的。
挑戰(zhàn) #5 – 變化率
每年都會(huì)推出更強(qiáng)大的處理器,但改進(jìn)是漸進(jìn)式的。在過(guò)去五年多的時(shí)間里,可用技術(shù)和他們需要做的事情有了很大的飛躍。它始于連接性,但它正在迅速擴(kuò)展到不僅是安全性,還包括人工智能和系統(tǒng)。開發(fā)人員開始發(fā)現(xiàn)可用技術(shù)的變化速度超過(guò)了他們學(xué)習(xí)的速度。
這些是開發(fā)團(tuán)隊(duì)開始從設(shè)計(jì)獨(dú)立設(shè)備過(guò)渡到連接設(shè)備時(shí)遇到的主要挑戰(zhàn),這些挑戰(zhàn)當(dāng)然不是不可克服的,在許多情況下,解決方案已經(jīng)以多種形式存在,訣竅在于嵌入式開發(fā)人員和團(tuán)隊(duì)如何加快速度,然后保持每個(gè)開發(fā)人員都需要的這些新技能。