Amazon FreeRTOS:如何利用内置引导程序功能实现物联网设备的OTA升级
在物联网(IoT)时代,云连接已变得越来越简单,但现场固件升级仍然是一个挑战。FreeRTOS提供了一种解决方案,即通过其OTA特性实现设备上的引导程序更新。本文将探讨如何利用FreeRTOS中的引导程序功能快速部署解决方案。
Amazon FreeRTOS概述
Amazon FreeRTOS是实时操作系统,它包含了与AWS通信所需的全部库。它基于FreeRTOS内核,并集成了连接和安全库,以便安全地与AWS进行通信。OTA特性位于单独的OTA库中,需要单独配置才能包含在a:FreeRTOS下载中。
a:FreeRTOS OTA服务包括必要的软件,使得开发人员能够执行以下操作:
对固件进行数字签名和加密。
安全地部署新固件映像到单个设备、设备组或整个集群。
当设备加入组、重新启动或重新配置时,将固件部署到目标设备。
验证部署后的真实性和完整性。
监视部署进度。
调试失败的部署。
这些特性通过运行多种AWS服务提供,如OTA管理器服务、AWS IoT作业服务、串流服务和代码签名服务。虽然让所有部分协同工作对开发人员来说是一项复杂任务,但本文将专注于入门以及实验室环境下成功设置a:FreeRTOS的一些经验教训和技巧。
选择硬件
目前,a:FreeRTOS支持多种开发板,包括Texas Instruments SimpleLink Wi-Fi CC3220SF Wireless LaunchPad development kit, Microchip Technology PIC32MZ EF Curiosity Development Board, STMicroelectronics STM32L4 Discovery Kit IoT Node, NXP Semiconductors LPC54018 IoT Module and Espressif Systems ESP32 DEVKITC.
图1:Texas Instruments' CC3220SF-LaunchXL is a fully integrated solution that can run Amazon FreeRTOS OTA. It includes a Wi-Fi module, minimizing physical size and power consumption.
为了简化过程,本文将重点介绍SimpleLink Wi-Fi CC3220SF. 由于其集成Wi-Fi模块,CC3220SF节省了电路板空间并降低能耗。此外,其外部存储可以存储固件映像并在引导过程中恢复映像,因此具有意义且更为复杂。如果读者能够在CC3220SF上成功设置OTA,那么其他平台也不会有问题。
最后,CC3220SF是首款支持OTS演示应用处理器,因此设计人员可以放心,该处理器已经经过全面审查。
配置Amazon FreeRTOS for OTA upgrade
默认情况下,OTA库不包含预配置的a:FreeRTOS包中。在手动配置这些库后,可以开始创建自定义配置。在AWS IoT控制台中,点击“Create new”按钮以开始自定义(图4)。
然后,在配置过程中,只需设置几项即可完成:
选择硬件平台,这会引入所有特定于电路板文件及驱动程序。但是,不会自动添加OTA特性。在“Library”部分,要添加OTA library(如图6所示),这将包括所有相关演示例子供参考或采纳使用。
一旦完成此操作,便可创建并下载该配制,然后导入aws_demos项目至代码调试器,并执行若干任务,如终端、证书及安全密钥等,以及修改OTE演示非常简单,只需打开aws_demo_runner.c模块找到DEMO_RUNNER_RunDemos函数,在vStartMQTTEchoDemo调用前添加注释,而vStartOTADemoTask调用取消注释,然后编译构建项目便可执行(图7)。
总结
通过本文,您了解到了如何使用内置于Amazon FreeRtos中的引导程序功能来快速实施物联网设备上的OTAsolutions。这涉及到选取合适的硬件平台,如Texas Instruments' SimpleLink Wi-Fi CC3220SFWireless LaunchPad development kit,以及正确地配置您的Cloud Services like AWSIoT控制台以确保您可以成功运行ota demo tasks.
请记住,对于任何嵌入式系统开发者而言,让现有的解决方案尽可能完善对于提高效率至关重要。这意味着利用现有的技术栈,而不是从头再次建立一个新的基础架构,从而使产品区别化更加容易,同时减少时间投入给差异化功能上去。