Amazon FreeRTOS幫助開發(fā)人員簡化將物聯(lián)網(wǎng)(IoT)設(shè)備連接到云的過程。但是,即使采用更簡單的云連接,許多開發(fā)人員將面臨的一個主要障礙是如何在現(xiàn)場更新其設(shè)備的固件。
固件更新通常使用引導(dǎo)程序完成,引導(dǎo)程序可以基于設(shè)備體系結(jié)構(gòu)和可用的通信外圍設(shè)備以多種不同形式出現(xiàn)。由于引導(dǎo)加載程序很普遍并且?guī)缀醢诿總€嵌入式系統(tǒng)中,開發(fā)人員需要利用現(xiàn)有的解決方案,而不是從頭開始開發(fā)。這使他們可以花更多的時間專注于自己的產(chǎn)品的差異化和功能。
本文將探討開發(fā)人員如何利用內(nèi)置于Amazon FreeRTOS(a:FreeRTOS)中的引導(dǎo)加載程序功能(通常稱為無線更新(OTA))來快速獲取在其物聯(lián)網(wǎng)設(shè)備上運行的引導(dǎo)加載程序解決方案。
Amazon FreeRTOS的OTA更新概述
Amazon FreeRTOS是一個實時操作系統(tǒng),其中包含了輕松連接到亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)所需的所有庫。亞馬遜FreeRTOS基本上是FreeRTOS內(nèi)核,現(xiàn)在已經(jīng)包含了連接和安全庫,以促進與AWS的安全通信。OTA功能包含在單獨的OTA庫中,并且必須單獨配置才能包含在FreeRTOS下載中。
a:FreeRTOS OTA更新服務(wù)包含允許開發(fā)者進行以下操作所必需的軟件:
-
部署前對固件進行數(shù)字簽名和加密
-
將新固件映像安全地部署到單個設(shè)備,設(shè)備組或整個設(shè)備隊
-
將設(shè)備添加到組中時將固件部署到設(shè)備,重新啟動或重新設(shè)置
-
將新固件部署到設(shè)備后驗證其真實性和完整性
-
監(jiān)視部署的進度
-
調(diào)試失敗的部署
這些功能通過各種運行的AWS服務(wù)提供,例如:
-
OTA管理器服務(wù)
-
AWS IoT工作服務(wù)
-
流媒體服務(wù)
-
代碼簽名Amazon FreeRTOS服務(wù)
-
OTA圖書館和代理
對于開發(fā)人員來說,讓所有這些部分協(xié)同工作所需的步驟是相當(dāng)大的,并且不可能在單篇文章中詳細(xì)介紹。相反,本文將重點介紹如何開始學(xué)習(xí)經(jīng)驗教訓(xùn)以及獲得a:FreeRTOS設(shè)置在實驗室中工作的提示。
選擇OTA測試硬件
FreeRTOS目前支持幾種不同的開發(fā)板。這些開發(fā)工具包包括:
-
意法半導(dǎo)體的STM32L4 Discovery KitIoT節(jié)點
-
Espressif Systems的ESP32-DEVKITC開發(fā)套件
圖1:德州儀器的CC3220SF-LaunchXL是一款完全集成的解決方案,可以開始使用Amazon FreeRTOS OTA。該微控制器具有集成的Wi-Fi模塊,可最大限度地減小物理尺寸并最大限度地降低能耗。(圖片來源:德州儀器)
本文將重點介紹SimpleLink Wi-Fi CC3220SF的幾個不同原因。首先,CC3220SF是目前唯一一款具有集成Wi-Fi模塊的FreeRTOS微控制器。雖然其他開發(fā)板具有板載Wi-Fi模塊,但CC3220SF通過將控制器和Wi-Fi功能集成到單個芯片中,節(jié)省了電路板空間和能源。
其次,由于CC3220SF的外部存儲設(shè)備可以存儲固件映像并在引導(dǎo)過程中恢復(fù)映像,因此CC3220SF的安全特性非常有趣且更為復(fù)雜。如果讀者能夠成功地在CC3220SF上設(shè)置OTA,他們將不會在其他平臺上運行。
最后,CC3220SF是OTA演示應(yīng)用程序第一個支持的處理器,因此設(shè)計人員可以確信它已完全通過CC3220SF審核。
圖2:J-Link Ultra +是一款功能齊全的專業(yè)調(diào)試器,包含無限制斷點和極快的SWO和接口時鐘速率。開發(fā)人員可以使用J-Link Ultra +執(zhí)行應(yīng)用程序跟蹤,以便他們了解OTA示例的行為。(圖片來源:Segger微控制器系統(tǒng))
除了選擇開發(fā)板之外,開發(fā)人員還可能決定放棄板載編程器并使用專業(yè)編程器,例如Segger Microcontroller Systems的J-Link Ultra +。專業(yè)程序員會降低程序速度并提供額外的調(diào)試功能,例如應(yīng)用程序跟蹤和RTOS感知調(diào)試,這對理解黑盒應(yīng)用程序非常重要。開發(fā)人員還希望使用來自Tag-Connect的TC201510引腳插頭,輕松將其連接至目標(biāo)板。甲TC2050-ARM201020針對TC2050適配器可以在調(diào)試器,以適應(yīng)基板側(cè)電纜是必需的。
圖3:來自標(biāo)簽連接(左)的TC2050-IDC 10針插頭釘是一種適配器電纜,可以最大限度地減少開發(fā)板或生產(chǎn)電路板上的連接器占用面積。與SEGGER J-LINK一起使用時,可能需要TC2050-ARM2010 20針至TC2050適配器。(圖片來源:Tag-Connect LLC)
為OTA更新配置Amazon FreeRTOS
默認(rèn)情況下,OTA庫不包含在預(yù)配置的a:FreeRTOS軟件包中。開發(fā)人員必須改為手動配置庫和應(yīng)用程序。這可以通過登錄AWS IoT控制臺并進入Amazon FreeRTOS菜單來完成。然后開發(fā)人員可以點擊“新建”按鈕開始創(chuàng)建自定義配置(圖4)。
圖4:從AWS IoT控制臺中,通過單擊軟件配置菜單中的“創(chuàng)建新”按鈕可以自定義a:FreeRTOS設(shè)備軟件。(圖片來源:Beningo嵌入式集團)
在配置中,開發(fā)人員需要設(shè)置一些設(shè)置才能配置OTA功能。這些包括:
-
選擇硬件
-
選擇包含的:FreeRTOS庫
-
設(shè)置配置名稱
在這個例子中,開發(fā)人員可以選擇CC3220SF-LAUNCHXL(圖5)。以這種方式選擇硬件平臺將拉入所有特定于電路板的文件,包括驅(qū)動程序。但選擇電路板不會自動帶入OTA功能。在庫部分下,開發(fā)人員需要添加OTA庫(如圖6所示)。這將包括所有的OTA庫,包括開發(fā)人員可以參考或合并的演示示例。
圖5:選擇將與FreeRTOS OTA功能配合使用的硬件配置。(圖片來源:Beningo嵌入式集團)
圖6:將OTA更新庫添加到a:FreeRTOS配置中。(圖片來源:Beningo嵌入式集團)
完成此操作后,開發(fā)人員可以創(chuàng)建配置,下載配置并將aws_demo項目導(dǎo)入Code Composer Studio。
設(shè)置OTA示例代碼
一旦導(dǎo)入了aws_demos OTA示例,就需要執(zhí)行幾個任務(wù)。首先,配置終點,證書和安全密鑰。這可以按照a:FreeRTOS入門指南中的步驟完成。遵循本指南并按原樣運行aws_demos項目將允許在進一步確認(rèn)之前確認(rèn)與AWS的連接。
修改OTA的演示非常簡單。打開aws_demo_runner.c模塊,找到位于模塊末尾的DEMO_RUNNER_RunDemos函數(shù)。vStartMQTTEchoDemo調(diào)用應(yīng)該被注釋掉,而vStartOTAUpdateDemoTask調(diào)用應(yīng)該被取消注釋。然后,快速編譯將構(gòu)建該項目,并準(zhǔn)備在啟用引導(dǎo)加載程序功能的情況下執(zhí)行。
圖7:將OTA演示任務(wù)添加到aws_demos應(yīng)用程序中。(圖片來源:a:FreeRTOS示例代碼)
為OTA配置Amazon Web Services
對于嵌入式軟件開發(fā)人員來說,這就是運行OTA示例的過程,它將界限推向云端。為了成功運行OTA示例,開發(fā)人員需要根據(jù)OTA先決條件指南配置AWS。這要求開發(fā)者:
-
創(chuàng)建一個Amazon S3存儲桶
-
授予AWS賬戶OTA更新權(quán)限
-
創(chuàng)建一個OTA服務(wù)角色
-
創(chuàng)建一個OTA用戶策略
-
授予訪問代碼簽名服務(wù)的權(quán)限
完成這些后,請按照最終用戶指南的說明運行OTA a:FreeRTOS示例。
使用Amazon FreeRTOS的OTA功能的技巧和訣竅
開發(fā)人員可以遵循以下幾條提示和技巧,以盡量減少使用FreeRTOS中包含的引導(dǎo)加載程序功能時可能遇到的潛在問題。這些包括:
-
閱讀“使用Amazon FreeRTOS連接到云”以獲取關(guān)于如何開始使用FreeRTOS的一般提示和信息。
-
閱讀可在此處找到的Amazon OTA文檔。
-
在開發(fā)過程中,購買六塊開發(fā)板并將它們分成三組,每組兩個設(shè)備。這將允許試驗設(shè)備和組可以在現(xiàn)場更新的不同方式。
-
首先將固件更新部署到較小的設(shè)備組,以確保在更新整個設(shè)備隊伍之前固件更新沒有問題。
-
使用AWS亞馬遜證書管理器創(chuàng)建證書并簽署固件。可以使用第三方認(rèn)證機構(gòu),但如果全部在AWS內(nèi)完成,則該過程將被簡化。
-
考慮將PIC32MZEF好奇板用于OTA實驗,因為它是第二個:支持OTA beta演示的FreeRTOS開發(fā)套件。
結(jié)論
亞馬遜FreeRTOS生態(tài)系統(tǒng)為開發(fā)人員提供了一個如何在現(xiàn)場更新固件的例子。對于可能有不同需求或系統(tǒng)配置的開發(fā)人員,可以輕松擴展此示例。利用現(xiàn)有的引導(dǎo)加載程序可以為開發(fā)人員節(jié)省大量開發(fā)時間,并讓他們專注于其產(chǎn)品差異化和價值主張。
如圖所示,亞馬遜FreeRTOS確實有一個無線更新解決方案,目前可用于德州儀器CC3220,并且無疑將來可用于其他亞馬遜FreeRTOS產(chǎn)品。
-
FreeRTOS
+關(guān)注
關(guān)注
12文章
485瀏覽量
63587
發(fā)布評論請先 登錄
使用Amazon FreeRTOS的IoT解決方案
Amazon FreeRTOS簡化物聯(lián)網(wǎng)設(shè)備連接到云
本文討論并演示如何使用 Amazon FreeRTOS 快速、安全地將設(shè)計連接到云
什么是Amazon FreeRTOS?3FreeRTOS V10.2.1更新功能

Mi Watch它正在推出新的固件更新
固件:單擊此處下載最新的數(shù)據(jù)記錄器固件。更新固件的說明包含在用戶指南中

【STM32】FreeRTOS資源(持續(xù)更新)

使用Arduino開發(fā)ESP32(17):固件更新演示

FreeRTOS歷史版本更新記錄

MSP MCUs的安全現(xiàn)場固件更新

評論