Amazon FreeRTOS:利用内置引导程序功能实现物联网设备的OTA升级技巧与诀窍
在物联网(IoT)设备连接到云端的过程中,Amazon FreeRTOS为开发人员提供了极大的便利。然而,尽管云连接变得更加简单,许多开发人员仍面临着如何安全地在现场进行固件升级这一挑战。固件升级通常依赖于引导程序,这些引导程序可以有多种形式,取决于设备架构和可用的通信外设。为了帮助开发人员快速部署并管理这些引导程序解决方案,本文将探讨如何利用 Amazon FreeRTOS 中内置的 OTA 引导程序功能。
Amazon FreeRTOS 的 OTA 升级概述
Amazon FreeRTOS 是一个实时操作系统,它包含了所有必要的库来轻松地连接到 AWS。这款操作系统本质上是基于 FreeRTOS 内核,并且已经融合了与 AWS 进行安全通信所需的一系列库。在单独的 OTA 库中,可以单独配置以便包含在 a:FreeRTOS 下载中。
a:FreeRTOS 的 OTA 升级服务包括必要的软件,以便开发者能够执行以下任务:
对固件进行数字签名和加密
安全地部署新固件映像到单一设备、设备组或整个设备集群
在设备加入集群、重启或重新配置时自动部署固件
在新固件部署后验证其真实性和完整性
监视部署进度
调试失败的部署
这些特性通过运行各种 AWS 服务提供,其中包括:
OTA 管理器服务
AWS IoT 作业服务
串流服务
Amazon FreeRTOS 代码签名服务
OTA 库和代理
虽然让所有这些部分协同工作对开发者来说是一个复杂的问题,但本文将重点介绍入门以及一些实验室设置中的经验教训和小贴士。
选择 OTA 测试硬件
目前 a:FreeRTOS 支持多种类型的手持式测试板,它们包括 Texas Instruments 的 SimpleLink Wi-Fi CC3220SF-Wireless LaunchPad 开发套件、Microchip Technology 的 PIC32MZEFCuriosity 开发套件等等。
图1:Texas Instruments 的 CC3220SF-LaunchXL 是一个可以用于启动 Amazon FreeRTOS 和支持空中升级(OTA)的全集成解决方案,该微控制器集成了 Wi-Fi 模块,可最大限度减小物理尺寸并降低能耗。
由于多方面原因,本文将特别关注 SimpleLink Wi-Fi CC3220SF。这是目前唯一含有 Wi-Fi 模块的大型微处理器之一,同时它节省了电路板空间和能耗。此外,由于其外存储能力可以存储固件映像并在启动过程中恢复映像,因此对于安全性而言具有重要意义且更为复杂。如果读者能够成功设置 OTASimpleLinkWi-FiCC3220SF,那么其他平台上的问题也将不再困扰他们。此外,由于它是首个支持演示应用处理器,所以设计师们可以放心使用这个处理器,因为它已经经过全面审查。
除了选择适当的手持式测试板之外,还需要考虑使用专业编程工具,如 Segger Microcontroller Systems J-Link Ultra+。这类工具会提高调试速度并提供额外功能,如应用跟踪以理解黑盒子应用,以及 RTOS 感知调试,以理解 RTOS 自身内部状态。此外,还需要 Tag Connect TC201510 插头钉式插头来轻松接触目标板,而可能还需要 TC2050-IDC10 插头适配器转接TC2050,以便连接板侧电缆。
配置 AmazonFreeRTOS 以实现OTA升级
默认情况下,不包含预配置 a:FreeRTOST包中的OTA库。因此,开发者必须手动配置它们。在登录AWSIoT控制台并进入“Software configurations”菜单后,他们只需点击“Create new”按钮开始创建自定义配置即可(图4)。
在自定义配置过程中,只需几项就能完成OTA特性的设置,其中包括:
选择硬件平台。
选择所包含 a:FreeRTOST库。
设置配置名称。
对于本例,将硬盘选定为 “CC3220SF-LAUNCHXL”。
此操作会引入所有特定文件,比如驱动程序。但是,对于添加到库部分,将增加来自演示示例供参考或采纳的地方(如图6)。这样,即使未自动添加,也可以通过这种方式获取全部相关资源,从而确保正确实施OTAsolution.
完成此操作后,就能创建该软件版本,并下载至计算机,然后将 aws_demos项目 导入代码调试环境进行进一步修改以满足需求要求.
设置OTSamples代码
一旦aws_demos被成功导入,就需要执行几个步骤。一开始,要先确认已正确连接到了AWS然后才继续调整其他内容。之后,在打开aws_demo_runner.c模块找到DEMO_RUNNER_RunDemos函数末尾处vStartMQTTEchoDemo调用前面添加注释,并取消vStartOTAUpdateDemoTask调用前的注释。当编译完毕后的项目就会准备好用以启用引导模式下的项目运行。在做出相应改变之前,最好先阅读a:Freertos指南中的说明指导才能准确无误地输入正确信息值得注意的是,如果你想要学习如何使用a-FreeRtos进行实际生产线上更新,你应该要了解每个步骤都很关键,而且每一步都要详细记录下来,以备未来参考或者修正错误的情况发生时作为参照来源引用资料源主页地址链接如下:
https://docs.aws.amazon.com/iot/latest/developerguide/freeertos.html