適應(yīng)性規(guī)劃、漸進(jìn)式開(kāi)發(fā)、早期交付、持續(xù)改進(jìn)、靈活響應(yīng)需求變化——所有這些敏捷實(shí)踐都被認(rèn)為是現(xiàn)代軟件開(kāi)發(fā)的標(biāo)準(zhǔn)。然而,連接設(shè)備的固件開(kāi)發(fā)似乎停留在過(guò)去;必須遵循以設(shè)備運(yùn)輸結(jié)束的瀑布模型。
不應(yīng)該是這樣的。物聯(lián)網(wǎng)連接的新方法首次為邊緣原生開(kāi)發(fā)帶來(lái)了敏捷性,包括在蜂窩連接設(shè)備上進(jìn)行逐行調(diào)試的能力。
這是涵蓋基于微管理程序的新物聯(lián)網(wǎng)連接方法的系列文章中的第二篇。第一個(gè)可以在這里找到:在具有微管理程序架構(gòu)的MCU上實(shí)現(xiàn)不可阻擋的遠(yuǎn)程固件更新
物聯(lián)網(wǎng)中安全遠(yuǎn)程實(shí)時(shí)調(diào)試的意義
物聯(lián)網(wǎng)設(shè)備突然變得無(wú)響應(yīng)和斷開(kāi)連接是任何嵌入式開(kāi)發(fā)人員的噩夢(mèng)場(chǎng)景。如果它只發(fā)生在一臺(tái)設(shè)備上,這是一個(gè)主要問(wèn)題,特別是如果它影響客戶,但如果它影響物聯(lián)網(wǎng)設(shè)備隊(duì)列的一小部分,這可能是一場(chǎng)災(zāi)難。
考慮一下如果軟件故障通過(guò)廣泛的設(shè)備測(cè)試程序,導(dǎo)致即使只有 10% 的已部署設(shè)備失去連接,后果也會(huì)很高 - 恢復(fù)成本將是巨大的。
不幸的是,此類事件確實(shí)會(huì)發(fā)生,盡管可以修復(fù)軟件錯(cuò)誤,但此類問(wèn)題的風(fēng)險(xiǎn)很大。
設(shè)備成為“磚塊”的妹妹是未按預(yù)期運(yùn)行的設(shè)備。在連接設(shè)備的世界中,這曾經(jīng)意味著收集歷史堆棧跟蹤和其他崩潰日志來(lái)分析可能發(fā)生的事情 - 但這種方法依賴于適當(dāng)?shù)拇a檢測(cè)。事后看來(lái),程序員將無(wú)法檢查未記錄的條件或變量值。實(shí)時(shí)調(diào)試,即逐行單步執(zhí)行代碼、設(shè)置斷點(diǎn)、檢查寄存器和變量值的能力,在邊緣原生開(kāi)發(fā)中并不是一件事情。
實(shí)時(shí)遠(yuǎn)程調(diào)試功能對(duì)于了解現(xiàn)場(chǎng)設(shè)備行為非常有用;但殺手锏的價(jià)值可能就在別的地方。實(shí)時(shí)調(diào)試與不可逾越的固件 OTA 更新相結(jié)合,為固件開(kāi)發(fā)過(guò)程本身開(kāi)辟了新的機(jī)會(huì)。它基本上允許將硬件制造過(guò)程與固件開(kāi)發(fā)過(guò)程分離。由于能夠執(zhí)行頻繁可靠的固件更新以及調(diào)試已經(jīng)制造和部署的設(shè)備,產(chǎn)品公司甚至可以在固件經(jīng)過(guò)完整測(cè)試之前生產(chǎn)設(shè)備。
所有這些都是通過(guò)基于微管理程序的物聯(lián)網(wǎng)連接方法實(shí)現(xiàn)的。
什么是微遮蔽器?
微管理程序是一種將虛擬機(jī)管理程序用于微控制器的物聯(lián)網(wǎng)方法,可在連接互聯(lián)網(wǎng)的設(shè)備上實(shí)現(xiàn)可靠和安全的遠(yuǎn)程操作,例如故障安全的無(wú)線固件更新和實(shí)時(shí)調(diào)試。
在架構(gòu)上,微管理程序利用微控制器內(nèi)的硬件分離(例如意法半導(dǎo)體的STM32U585)在啟動(dòng)時(shí)將其分為兩個(gè)部分,例如利用Arm? Trustzone?。
TrustZone 提供了一種經(jīng)濟(jì)高效的方法來(lái)隔離系統(tǒng)中的安全關(guān)鍵組件,方法是將豐富的操作系統(tǒng)與更小、更安全的操作系統(tǒng)進(jìn)行硬件分離。外設(shè)在啟動(dòng)時(shí)分配給微管理程序區(qū)域或客戶應(yīng)用程序區(qū)域,這兩個(gè)部分彼此獨(dú)立運(yùn)行代碼。這允許完全的安全性,并且在應(yīng)用程序區(qū)域運(yùn)行的操作系統(tǒng)或編程語(yǔ)言方面完全不可知。
由于TrustZone拆分,微管理程序元件在同一MCU上“與”應(yīng)用程序代碼一起運(yùn)行,但具有不同的安全權(quán)限。Microvisor 在應(yīng)用程序代碼空間周圍包裹了一層安全性和連接性。
基于微監(jiān)控程序的物聯(lián)網(wǎng)平臺(tái)不會(huì)對(duì)操作系統(tǒng)或編程語(yǔ)言施加任何限制。它適用于嵌入式開(kāi)發(fā)中的任何方法,無(wú)論是
定制的裸機(jī)方法
構(gòu)建在“現(xiàn)成”操作系統(tǒng)之上,例如FreeRTOS或Azure RTOS(fka ThreadX)
使用您選擇的編程語(yǔ)言
基于微監(jiān)控程序的架構(gòu)允許的關(guān)鍵功能之一是無(wú)線 (OTA) 固件更新,但在某種程度上,在發(fā)生故障時(shí)無(wú)需在設(shè)備上使用 2 個(gè)版本的固件。另一個(gè)是實(shí)時(shí)調(diào)試。
微監(jiān)控程序如何實(shí)現(xiàn)安全的遠(yuǎn)程實(shí)時(shí)調(diào)試
借助位于 Arm TrustZone 分段處理器安全區(qū)域中的微管理程序,我們現(xiàn)在可以通過(guò)隧道傳輸加密命令和數(shù)據(jù)(在本例中為 GDB 調(diào)試協(xié)議),從本地開(kāi)發(fā) PC 或 Mac 一直傳輸?shù)竭吘壴O(shè)備本身,無(wú)論它位于世界何處。使用 CLI 工具和相應(yīng)的插件,開(kāi)發(fā)人員可以在他們的開(kāi)發(fā)計(jì)算機(jī)上運(yùn)行本地 GDB 服務(wù)器,他們可以將其連接到自己的工具鏈/集成調(diào)試體驗(yàn),就像他們?cè)谵k公桌上本地調(diào)試的設(shè)備一樣。此本地服務(wù)器將通過(guò)相應(yīng)的微監(jiān)控程序云服務(wù)直接連接到要調(diào)試的邊緣設(shè)備。此連接可以通過(guò)蜂窩連接或通過(guò)Wi-Fi /以太網(wǎng)透明地路由到嵌入式設(shè)備。
這將打開(kāi)所選調(diào)試器(命令行或基于 GUI)的所有功能,開(kāi)發(fā)人員需要這些功能來(lái)找出其應(yīng)用程序出了什么問(wèn)題。安全的遠(yuǎn)程調(diào)試鏈接是完全端到端加密的,并確保只有開(kāi)發(fā)人員才能訪問(wèn)其設(shè)備。最重要的是,訪問(wèn)安全的遠(yuǎn)程調(diào)試意味著可以在邊緣設(shè)備本身上物理禁用本地調(diào)試端口,從而使設(shè)備在現(xiàn)場(chǎng)更加安全。
無(wú)需本地訪問(wèn)即可安全調(diào)試 IoT 設(shè)備的好處
能夠安全地遠(yuǎn)程調(diào)試設(shè)備具有許多業(yè)務(wù)優(yōu)勢(shì):
節(jié)省成本:在現(xiàn)場(chǎng)查找和修復(fù)錯(cuò)誤的成本大大降低。當(dāng)客戶報(bào)告無(wú)法在實(shí)驗(yàn)室中重現(xiàn)的問(wèn)題時(shí),固件工程師現(xiàn)在可以訪問(wèn)現(xiàn)場(chǎng)遇到問(wèn)題的實(shí)際設(shè)備,并準(zhǔn)確查看出了什么問(wèn)題。當(dāng)不可避免的錯(cuò)誤確實(shí)發(fā)生時(shí),這可能會(huì)節(jié)省大量的時(shí)間和金錢(qián)。
功能開(kāi)發(fā)敏捷性:此功能開(kāi)辟了在該領(lǐng)域開(kāi)發(fā)新功能的可能性。開(kāi)發(fā)人員可以選擇在現(xiàn)實(shí)世界中部署開(kāi)發(fā)設(shè)備,并使用此設(shè)備開(kāi)發(fā)和測(cè)試其下一個(gè)功能,而不是花時(shí)間模擬現(xiàn)實(shí)世界來(lái)開(kāi)發(fā)新產(chǎn)品功能。
維護(hù)效率:開(kāi)發(fā)人員可以在現(xiàn)場(chǎng)產(chǎn)品問(wèn)題發(fā)生時(shí)做出反應(yīng),將修復(fù)和升級(jí)作為其敏捷開(kāi)發(fā)流程的常規(guī)部分。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19286瀏覽量
229866 -
嵌入式
+關(guān)注
關(guān)注
5082文章
19126瀏覽量
305296 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2909文章
44640瀏覽量
373441
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論