Amazon FreeRTOS:如何利用内置引导程序功能实现物联网设备的OTA升级
在物联网(IoT)时代,云连接已变得越来越简单,但现场固件升级仍然是一个挑战。FreeRTOS提供了一种解决方案,即通过其OTA特性实现无线固件更新。这篇文章将指导开发人员如何利用FreeRTOS内置的引导程序功能快速部署OTA解决方案到IoT设备上。
首先,我们需要了解Amazon FreeRTOS和其OTA特性。Amazon FreeRTOS是一种实时操作系统,它包含了连接AWS所需的所有库。它是FreeRTOS内核,已经融合了安全通信所需的库。为了使用a:FreeRTOS OTA,我们必须单独配置并包含在下载中。
a:FreeRTOS OTA服务包括数字签名、加密、新固件部署、验证真实性和完整性、监控进度、调试失败以及运行各种AWS服务,如OTA管理器服务、AWS IoT作业服务等。
选择正确的硬件平台对于成功实施OTA至关重要。目前支持多种开发板,包括Texas Instruments' SimpleLink Wi-Fi CC3220SF LaunchPad Development Kit, Microchip Technology's PIC32MZ EF Curiosity Development Board, STMicroelectronics' STM32L4 Discovery Kit IoT Node等。此外,还有Espressif Systems' ESP32-DevKitC Development Board。
图1展示了Texas Instruments' CC3220SF-LaunchXL,这是一款集成了Wi-Fi模块,可以最大限度地减小物理尺寸并降低能耗。在CC3220SF上设置OTA后,在其他平台上也不会遇到问题,因为它是唯一集成Wi-Fi模块的微型处理器,并且具有复杂而意义重大的安全特征。如果读者能够在CC3220SF上成功设置,则可以放心地将该示例应用于其他平台。
除了选择正确的硬件之外,专业编程器如Segger Microcontroller Systems' J-Link Ultra+也是必要的一环,这样可以提高调试速度并提供额外功能,如应用跟踪和RTOS感知调试,以便更好地理解黑盒应用。
配置Amazon FreeRTOS以实现OTA升级,默认情况下,OTA库不包含在预配置包中,因此开发人员必须手动添加这些库和应用。在AWS IoT控制台中创建自定义配置,并选择硬件平台(如图5),然后添加ota library(如图6)。完成这一步骤后,可以下载配置文件,然后导入aws_demos项目进行代码调试。
最后,要运行OTS示例,还需要按照指南进行终端、证书和安全密钥的配置,以及修改aws_demo_runner.c模块中的DEMO_RUNNER_RunDemos函数,将vStartMQTTEchoDemo注释掉,而vStartOTAUpdateDemoTask取消注释(如图7)。
总之,本文通过一步步引导开发人员了解如何利用FreeRTOSTOATest Hardware Selection to implement OTA updates on IoT devices.