FreeRTOS OTA技巧大揭秘Profibus现场总线助力无缝更新
AmazonFreeRTOS可以显著简化物联网设备与云端连接的过程,但现场固件升级仍然是开发人员面临的一个挑战。引导程序在嵌入式系统中普遍存在,开发人员需要利用现有解决方案而不是从头开始开发,以便将更多时间投入到产品差异化和特性上。本文探讨了如何利用AmazonFreeRTOS内置的引导程序功能进行快速实现在物联网设备上的引导程序解决方案。
AmazonFreeRTOS OTA升级概述
AmazonFreeRTOS是一种实时操作系统,它包含了连接AWS所需的全部库。它本质上是FreeRTOS内核,已经包含了连接和安全库,以方便与AWS进行安全通信。OTA特性包含在单独的OTA库中,必须单独配置才能包含在a:FreeRTOS下载中。
a:FreeRTOS OTA升级服务提供了一系列软件以便执行以下操作:数字签名和加密固件、安全地部署新固件映像到单一设备或整个设备集群、监视部署进度、调试失败的部署等。这些建设通过运行各种AWS服务来提供,如OTA管理器服务、AWSIoT作业服务、串流服务以及代码签名服务。
为了使用这些部分协同工作所需步骤相当多,本文将重点介绍如何入门,以及关于在实验室中成功设置a:FreeRTOS的一些经验教训和诀窍。
选择OTA测试硬件
a:FreeRTOS目前支持多种开发板,它们包括Texas Instruments SimpleLink Wi-Fi CC3220SF Wireless LaunchPad development kit、Microchip Technology PIC32MZ EF Curiosity Development Board等。此外,还有STMicroelectronics STM32L4 Discovery套件IoT节点和NXP Semiconductors LPC54018 IoT Module等。图1展示了Texas Instruments 的CC3220SF-LaunchXL,这是一个全集成解决方案,可以启动Amazon Free RTOS OTA。
由于其具有Wi-Fi模块且物理尺寸小并能耗低,本文将重点介绍SimpleLink Wi-Fi CC3220SF。此外,由于其安全特性复杂且能够存储固件映像并在引导过程中恢复映像,因此其设计很重要。如果读者能够成功设置OTA,那么其他平台也不会有问题。此外,由于CC3220SF是首个支持演示应用处理器,因此设计人员可以放心,该处理器已被全面审查。
除了选择硬件之外,开发人员可能还需要放弃板载编程器,而使用专业编程器如Segger Microcontroller Systems J-Link Ultra+。专业编程器会降低程序速度并提供额外的调试功能,如应用跟踪及RTOS感知调试,这对于理解黑盒应用非常重要。此外,Tag-Connect TC201510 插头钉式插头可轻松将编程器连接到目标板,而TC2050-ARM201020 引脚适配器可转接TC2050以便连接板侧电缆(图3)。
配置 Amazon Free RTOS 以实现 OTA 升级
默认情况下,OTA 库未包含在预配置的 a: Free RT OS 包中。因此,开发人员必须手动配置这些库及其应用。在 AWS IoT 控制台登录后,可点击“Create new”按钮开始创建自定义配置(图4)。此时,只需设置几项就能配置 OTA 特性,其中包括选择硬件平台及添加 OTA 库(如图5 和 图6 所示)。
完成此操作后,便可创建配置并下载,然后将 aws_demos 项目导入代码调试器。在 aws_demos 中,将 vStartMQTTEchoDemo 调用注释掉,并取消对 vStartOTAUpdateDemoTask 调用的注释,然后进行快速编译以构建项目,在启用引导程序功能的情况下,该项目即可执行(图7)。
最后,对于嵌入式软件开发人员,要运行 OTA 示例,还需要根据之前指南中的先决条件指南进一步 配置 AWS。这涉及到创建 Amazon S3 存储桶授予 AWS 帐户 OTA 升级权限 创建ota 服 务 角 色 创建 用户 策 略 授予 访问 编码 签名 权限 等 操作(详见[1])。