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