Amazon FreeRTOS 可以帮助开发人员简化将物联网(IoT)设备连接到云的过程。然而,即使有更简单的云连接,许多开发人员面临的一个主要障碍仍然是如何现场升级其设备的固件。固件升级常常利用引导程序完成;基于设备架构和可用的通信外设,引导程序可能有多种不同形式。引导程序很普遍,几乎所有嵌入式系统中都有包括,因此开发人员需要利用现有解决方案,而不是从头开始开发。这樣,他們可以將更多時間投入到產品的差異化和特性上。
本文將探討如何使用內置於 Amazon FreeRTOS 中的引導程式功能(通常被稱為空中升級(OTA)來快速實現在物聯網設備上運行引導程式解決方案。
Amazon FreeRTOS 的 OTA 升級概述
Amazon FreeRTOS 是一種實時操作系統,其中包含了輕鬆連接 Amazon Web Services(AWS)所需的一切庫。Amazon FreeRTOS 本質上是 FreeRTOS 核心,現已包含連接和安全庫,以方便與 AWS 進行安全通訊。OTA 特性包含在單獨的 OTA 庫中,並且必須單獨配置才能包含在 a:FreeRTOS 下載中。
a:FreeRTOS OTA 升級服務包含必要軟體以便開發人員可以執行如下操作:
部署前對固件進行數字簽章和加密
將新固件映像安全地部署到單一設備、設備群組或整個設備集群
當設備加入群組、重新啟動或重新配置時,将固件部署到設備中
將新固件部署後驗證其真實性和完整性
監視部署進度
調試失敗的部署
這些特性通過運行各種 AWS 服務來提供,例如:
OTA 管理器服務
AWS IoT 作業服務
串流服務
Amazon FreeRTOS 代碼簽章服務
OTA 庫和代理
對於開發人員而言,让所有这些部分协同工作所需的步骤是相当多的,无法在一篇文章中详细说明。本文将重点介绍如何入门,以及关于在实验室中成功设置a:FreeRTOS的一些经验教训和诀窍。
选择OTA测试硬件
a:FreeRTOS目前支持多种开发板。它支持以下几款:
Texas Instruments 的 SimpleLink Wi-Fi CC3220SF-Wireless LaunchPad 开发套件
Microchip Technology 的 PIC32MZEF Curiosity 开发套计
STMicroelectronics 的 STM32L4 Discovery 套装IoT节点
NXP Semiconductors 的 LPC54018 IoT 模块
Espressif Systems 的 ESP32-DEVKITC 开发套计
图1:Texas Instruments 的 CC3220SF-LaunchXL 是一个可以启动 Amazon FreeRTOS OTA 升级的大型集成解决方案,该微集成一个 Wi-Fi 模块,大幅度减小了物理尺寸并降低能耗。
出于多方面原因,本文将重点介绍 SimpleLink Wi-Fi CC3220SF。此外,由于该平台为当前唯一集成了 Wi-Fi 模块与 a:FreeRTOS 微之所以选择它,是因为它既节省了电路板空间又能节省能耗。如果读者能够成功设置 OTA 在此平台,那么其他平台上的问题也不会存在。
最后,由于 CC3220SF 是首个支持演示应用处理器,因此设计师们能够放心,这个处理器已经通过全面审查。
图2:J-LINK Ultra+ 是一种全功能专业调试器,它具有无限制断点以及极快 SWO 和接口时钟速率。这使得 J-LINK Ultra+ 能够执行应用跟踪,以便了解 OTA 示例如何工作。
除了选择合适的手动编程硬盘外,还需要放弃板载编程器,而使用专业编程器,如 Segger Microcontroller Systems 提供的一款 J-LINK Ultra+ 编程工具。这款工具不仅提高了代码效率,而且还提供额外调试功能,如应用跟踪及 RTOS 感知调试,这对于理解黑盒应用至关重要。此外,还可通过 TagConnect TC201510 引脚钉式插头轻松地将编程器连接至目标板,并通过适配电缆转接TC2050以确保稳定连接。
图3:TagConnect TC2050-IDC10 引脚钉式插头(左)是一种适配电缆,可将开发板或生产电路板上的连线基底面减少至最小。在与 SEGGER JLINK 一起使用时,有可能需要 TC2050 ARM201020 引脚适配器来转接 TC2050。
配置 Amazon Freertos 以实现 OTA 升级
默认情况下,不会预先安装任何库中的 OTA 功能,所以必须手动进行配置。在创建自定义软件包之前,可以登录 AWS IoT 控制台并进入“软件”菜单,然后点击“Create new” 按钮开始创建新的自定义软件包 (见图4):
图4:AWS IoT 控制台中的“软件”菜单允许用户创建新的自定义软件包,只需点击 “Create new” 按钮即可开启这个过程。
为了激活这项服务,在此过程中只需做一些简单设置就足矣,其中包括:
选取硬体类型;
选择所含有的 a:Freertos 库;
为此次项目命名;
对于本例来说,我们应该选取 “CC3220SF_LAUNCHXL”。这样做会自动添加相应驱动文件,但并不会自动添加用于实施 Ota 功能。在库部分,我们必须添加 Ota 库(如图6 所示)。这会带来所有 Ota 相关库及其演示案例供参考或采纳;
完成这一步后,我们就可以生成我们的配置下载,并把 aws_demos 项目导入 IDE 调试环境;