让我们探索AmazonFreeRTOS如何简化IoT设备云连接的过程,并解锁现场固件升级的秘密。虽然云连接变得更简单,许多开发者仍面临着如何安全地将固件升级到远程设备这一挑战。利用引导程序是解决这个问题的一种常见方法,但这需要考虑设备架构和可用通信接口。此外,引导程序在嵌入式系统中非常普遍,因此开发者通常会利用现有的解决方案,而不是从头开始。
本文将深入探讨如何利用AmazonFreeRTOS内置的引导程序功能(也称为空中更新或OTA)来快速实现物联网设备上的引导程序解决方案。我们还将讨论总线分为哪三类,以及这些分类对选择合适的通信接口有何影响。
首先,我们来了解一下AmazonFreeRTOS是什么,它包含了与AWS进行安全通信所需的所有库。这意味着它既是一个实时操作系统,又包含了用于连接和安全性的特定库。OTA特性被单独放在一个库中,这个库必须单独配置才能包含在a:FreeRTOS下载中。
a:FreeRTOS OTA服务提供了一系列软件工具,以便开发人员可以执行以下操作:
对固件进行数字签名和加密
安全地部署新固件映像到单个设备、设备组或整个集群
在设备加入组、重启或重新配置时自动部署固件
验证新部署后的固件真实性和完整性
监控部署进度
调试失败的部署
这些功能通过AWS提供的一些服务来实现,包括OTA管理器服务、AWS IoT作业服务、串流服务以及代码签名服务等。
为了成功设置a:FreeRTOS并运行OTA示例,我们需要选择合适的硬件平台。在撰写本文时,支持多种开发板,其中包括Texas Instruments' SimpleLink Wi-Fi CC3220SF Wireless LaunchPad Development Kit、Microchip Technology's PIC32MZ EF Curiosity Development Board 等等。
由于CC3220SF是目前唯一集成Wi-Fi模块且具有较小体积和低能耗设计,使其成为最受欢迎的选择。此外,由于其外部存储可以存储固件映像并在引导过程中恢复映像,它具备更高的地位。如果读者能够成功在CC3220SF上设置OTA,那么他们也能轻松扩展到其他平台上。
除了硬件之外,还有一些专业编程器,如Segger Microcontroller Systems' J-Link Ultra+ 可以帮助调试过程。此外,Tag-connect TC201510 引脚钉式插头也是必不可少的一个工具,可以方便地将编程器连接到目标板。
最后,本文还会详细介绍如何配置Amazon FreeRTOS以实现 OTA 升级,默认情况下,OTA 库不包含在预配置 a: FreeRTOS 包中,因此需要手动添加。在 AWS IoT 控制台中的“Create new” 按钮下创建自定义配置,并按照指南一步步完成剩余任务即可。