Amazon FreeRTOS 可幫助開發(fā)人員簡化將物聯(lián)網 (IoT) 設備連接到云的過程。然而,即使有更簡單的云連接,許多開發(fā)人員面臨的一個主要障礙仍然是如何現場升級其設備的固件。
固件升級常常利用引導程序完成;基于設備架構和可用的通信外設,引導程序可能有多種不同形式。引導程序很普遍,幾乎所有嵌入式系統(tǒng)中都有包括,因此開發(fā)人員需要利用現有解決方案,而不是從頭開始開發(fā)。這樣,他們可以將更多時間投入到產品的差異化和特性上。
本文將探討開發(fā)人員如何利用內置于 Amazon FreeRTOS (a:FreeRTOS) 中的引導程序功能(常被稱為空中升級 (OTA)),來快速實現在其物聯(lián)網設備上運行引導程序解決方案。
Amazon FreeRTOS 的 OTA 升級概述
Amazon FreeRTOS 是一種實時操作系統(tǒng),其中包含了輕松連接 Amazon Web Services (AWS) 所需的全部庫。Amazon FreeRTOS 本質上是 FreeRTOS 內核,現已包含連接和安全庫,以方便與 AWS 進行安全通信。OTA 特性包含在單獨的 OTA 庫中,必須單獨配置才能包含在 a:FreeRTOS 下載中。
a:FreeRTOS OTA 升級服務包含必要的軟件以便開發(fā)人員可以執(zhí)行如下操作:
- 部署前對固件進行數字簽名和加密
- 將新固件映像安全地部署到單一設備、設備組或整個設備集群
- 當設備加入組中、重新啟動或重新配置時,將固件部署到設備中
- 將新固件部署到設備后驗證其真實性和完整性
- 監(jiān)視部署進度
- 調試失敗的部署
這些特性通過運行各種 AWS 服務來提供,例如:
- OTA 管理器服務
- AWS IoT 作業(yè)服務
- 串流服務
- Amazon FreeRTOS 代碼簽名服務
- OTA 庫和代理
對開發(fā)人員而言,讓所有這些部分協(xié)同工作所需的步驟是相當多的,無法在一篇文章中詳細說明。本文將重點介紹如何入門,以及關于在實驗室中成功設置 a:FreeRTOS 的一些經驗教訓和訣竅。
選擇 OTA 測試硬件
a:FreeRTOS 目前支持多種開發(fā)板。它支持的開發(fā)套件包括:
- Texas Instruments的 SimpleLink Wi-FiCC3220SF Wireless LaunchPad開發(fā)套件
- Microchip Technology的PIC32MZEF Curiosity開發(fā)套件
- STMicroelectronics的STM32L4 Discovery 套件IoT 節(jié)點
- NXP Semiconductors的 LPC54018 IoT 模塊
- Espressif Systems的ESP32-DEVKITC開發(fā)套件
圖 1:Texas Instruments 的 CC3220SF-LaunchXL 是一個可以啟動 Amazon FreeRTOS OTA 的全集成解決方案。該微控制器集成一個 Wi-Fi 模塊,最大限度地減小了物理尺寸并降低能耗。(圖片來源:Texas Instruments)
出于多方面原因,本文將重點介紹 SimpleLink Wi-Fi CC3220SF。首先,CC3220SF 是目前唯一集成了 Wi-Fi 模塊的 a:FreeRTOS 微控制器。雖然其他開發(fā)板具有板載 Wi-Fi 模塊,但 CC3220SF 通過將控制器和 Wi-Fi 功能集成在單一芯片中,節(jié)省了電路板空間和能耗。
其次,CC3220SF 的外部存儲設備可以存儲固件映像并在引導過程中恢復映像,因此其安全特性很有意義且更為復雜。如果讀者能夠在 CC3220SF 上成功設置 OTA,那么在其他平臺上將不會有任何問題。
最后,CC3220SF 是 OTA 演示應用支持的第一款處理器,因此設計人員可以放心,處理器在 CC3220SF 上已經過全面審查。
圖 2:J-Link Ultra+是一款全功能專業(yè)調試器,其特性包括無限制斷點,以及極快的 SWO 和接口時鐘速率。開發(fā)人員可以利用 J-Link Ultra+ 執(zhí)行應用跟蹤,以便了解 OTA 示例如何工作。(圖片來源:Segger Microcontroller Systems)
除了選擇開發(fā)板之外,開發(fā)人員可能還需放棄板載編程器,而使用專業(yè)編程器,例如 Segger Microcontroller Systems 的 J-Link Ultra+。專業(yè)編程器會降低程序速度并提供額外的調試功能,例如應用跟蹤和 RTOS 感知調試,這對理解黑盒應用非常重要。開發(fā)人員也可利用Tag-Connect的TC201510 引腳釘式插頭,輕松將編程器連接到目標板。調試器上可能需要TC2050-ARM201020 引腳適配器來轉接 TC2050,以便連接板側電纜。
圖 3:Tag-Connect 的 TC2050-IDC 10 引腳釘式插頭(左)是一種適配器電纜,可將開發(fā)板或生產電路板上的連接器基底面減到最小。與 SEGGER J-LINK 一起使用時,可能需要 TC2050-ARM2010 20 引腳適配器來轉接 TC2050。(圖片來源:Tag-Connect LLC)
配置 Amazon FreeRTOS 以實現 OTA 升級
默認情況下,OTA 庫未包含在預配置的 a:FreeRTOS 包中。開發(fā)人員必須手動配置這些庫和應用。首先,應登錄AWSIoT 控制臺并進入 Amazon FreeRTOS 菜單。然后,開發(fā)人員可以點擊“Create new(新建)”按鈕開始創(chuàng)建自定義配置(圖 4)。
圖 4:在 AWS IoT 控制臺中,通過單擊軟件配置菜單中的“Create new(新建)”按鈕可以自定義 a:FreeRTOS 設備軟件。(圖片來源:Beningo Embedded Group)
在配置過程中,開發(fā)人員只需要設置幾項就能配置 OTA 特性。其中包括:
- 選擇硬件
- 選擇所包含的 a:FreeRTOS 庫
- 設置配置名稱
對于本例,開發(fā)人員選擇 CC3220SF-LAUNCHXL(圖 5)。以這種方式選擇硬件平臺將會引入所有特定于電路板的文件,包括驅動程序。但是,選擇電路板并不會自動引入 OTA 特性。在庫部分,開發(fā)人員需要添加 OTA 庫(如圖 6 所示)。這將包含所有 OTA 庫,包括開發(fā)人員可以參考或采納的演示示例。
圖 5:選擇將要配合 a:FreeRTOS OTA 特性使用的硬件配置。(圖片來源:Beningo Embedded Group)
圖 6:將 OTA 升級庫添加到 a:FreeRTOS 配置中。(圖片來源:Beningo Embedded Group)
完成此操作后,開發(fā)人員便可創(chuàng)建配置并下載,然后將 aws_demo 項目導入代碼調試器。
設置 OTA 示例代碼
一旦導入 aws_demos OTA 示例,便需要執(zhí)行若干任務。首先,配置終端、證書和安全密鑰。這可以按照 a:FreeRTOS入門指南中的步驟完成。遵循該指南并按原樣運行 aws_demos 項目,以便確認已連接到 AWS,然后再執(zhí)行其他操作。
接下來,修改 OTA 演示非常簡單。打開 aws_demo_runner.c 模塊,找到位于模塊末尾的 DEMO_RUNNER_RunDemos 函數。應對 vStartMQTTEchoDemo 調用添加注釋,而 vStartOTAUpdateDemoTask 調用則取消注釋。然后進行快速編譯以構建項目,在引導程序功能啟用的情況下,項目便可執(zhí)行。
圖 7:將 OTA 演示任務添加到 aws_demos 應用中。(圖片來源:a:FreeRTOS 示例代碼)
配置 Amazon Web Services 以實現 OTA
對嵌入式軟件開發(fā)人員而言,要運行 OTA 示例,進行到這一步驟時將涉及到云端。為了成功運行 OTA 示例,開發(fā)人員需要根據 OTA 先決條件指南配置 AWS。這要求開發(fā)人員:
- 創(chuàng)建 Amazon S3 存儲桶
- 授予 AWS 帳戶 OTA 升級權限
- 創(chuàng)建 OTA 服務角色
- 創(chuàng)建 OTA 用戶策略
- 授予訪問代碼簽名服務的權限
完成這些操作后,依照最終的用戶指南說明運行 OTA a:FreeRTOS 示例。
Amazon FreeRTOS 的 OTA 特性使用技巧與訣竅
使用 a:FreeRTOS 中包含的引導程序功能時,為盡量減少潛在問題,開發(fā)人員可以采用以下幾點技巧和訣竅。其中包括:
- 閱讀“使用 Amazon FreeRTOS 連接到云”以獲取關于如何使用 FreeRTOS 的一般技巧和信息。
- 通讀 Amazon OTA 說明文檔(詳見此處)。
- 在開發(fā)過程中,購買六片開發(fā)板并將它們分成三組,每組兩片。這樣便可試驗現場升級設備和組可采用的不同方法。
- 首先將固件升級部署到較小的設備組,以確保固件升級沒有問題,然后才升級整個設備集群。
- 利用 AWS Amazon Certificate Manager 創(chuàng)建證書并給固件簽名??梢允褂玫谌?a target="_blank">認證機構,但如果全部在 AWS 內完成,該過程會比較簡單。
- 考慮將 PIC32MZEF Curiosity 板用于 OTA 實驗,因為它是第二款支持 OTA 測試版演示的 a:FreeRTOS 開發(fā)套件。
總結
Amazon FreeRTOS 生態(tài)系統(tǒng)為開發(fā)人員提供了一個現場升級固件的范例。對于可能有不同需求或系統(tǒng)配置的開發(fā)人員,此范例可以輕松擴展。利用現有引導程序可為開發(fā)人員節(jié)省大量開發(fā)時間,以便其專注于產品差異化和價值主張。
如本文所述,Amazon FreeRTOS 的確可提供空中升級解決方案,該方案目前用于 Texas Instruments CC3220,而未來無疑將可用于其他 Amazon FreeRTOS 產品。
-
OTA
+關注
關注
7文章
580瀏覽量
35225 -
FreeRTOS
+關注
關注
12文章
484瀏覽量
62178 -
Amazon
+關注
關注
1文章
125瀏覽量
17190
發(fā)布評論請先 登錄
相關推薦
評論