驾驭OTA之风FreeRTOS实战技巧与Can总线协议的秘诀
AmazonFreeRTOS可以显著简化物联网设备与云端连接的过程,但现场固件升级仍然是开发人员面临的一个挑战。引导程序在嵌入式系统中普遍存在,开发人员通常会利用现成的解决方案,而不是从头开始。AmazonFreeRTOS内置了OTA功能,可以帮助快速部署引导程序解决方案。本文将探讨如何使用a:FreeRTOS中的OTA特性进行设备上运行引导程序的实践。
AmazonFreeRTOS概述
AmazonFreeRTOS是一个实时操作系统,它包含了所有与AWS通信所需的库。它基于FreeRTOS内核,并且已包含了连接和安全库,以便于安全地与AWS通信。OTA特性位于单独的OTA库中,需要单独配置才能包含在a:FreeRTOS下载中。
a:FreeRTOS OTA升级服务提供了一系列软件来执行以下操作:数字签名和加密固件、安全部署新固件到单个设备或群组、自动部署至加入或重启设备时、验证新固件真实性和完整性、监控部署进度以及调试失败。此类服务通过AWS IoT Job Manager, AWS IoT Device Management, AWS S3, 和 Amazon FreeRTOS Code Signing Service等多种AWS服务提供支持。
为开发者而言,将所有这些部分协同工作需要大量步骤,这一篇文章将重点介绍入门过程,以及一些实验室设置成功使用a:FreeRTOS的一些经验教训和技巧。
选择OTA测试硬件
目前,a:FreeRTOS支持多种开发板,包括Texas Instruments' SimpleLink Wi-Fi CC3220SF Wireless LaunchPad Development Kit, Microchip Technology's 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,该微集成了Wi-Fi模块,是一个全集成解决方案,可最大限度地减小物理尺寸并降低能耗。这篇文章将重点介绍SimpleLink Wi-Fi CC3220SF,因为它是目前唯一集成了Wi-Fi模块的a: FreeRTOSTest Platform.
除了硬件之外,还需要专业编程器,如Segger Microcontroller Systems J-Link Ultra+,这可以提供无限制断点跟踪以及极快SWO和接口时钟速率,以及应用跟踪以了解OTA示例如何工作。
配置Amazon FreeRTOSTo实现 OTA 升级
默认情况下,OTA库不包含在预配置的 a : FreeRTOS包中。开发人员必须手动配置这些库。在登录AWSIoT控制台并进入“Create new”按钮开始创建自定义配置后,只需设置几项即可完成这一步骤(图4)。其中包括选择硬件平台(如CC3220SF-LAUNCHXL)、添加 OTA 库(如图6所示)并创建一个新的配置名称。
一旦完成此操作,便可下载该 配置,并将 aws_demos 项目导入代码调试器。在aws_demo_runner.c 模块找到DEMO_RUNNER_RunDemos函数后,将vStartMQTTEchoDemo调用添加注释,而vStartOTAUpdateDemoTask调用则取消注释,然后进行快速编译构建项目,即可执行引导程序功能启用的项目。(图7)
最后,对于嵌入式软件开发者来说,要运行 OTA 示例还需要根据先决条件指南对 AWS 进行正确配置。这包括创建 Amazon S3 存储桶、授予 AWS 帐户 OTA 升级权限、创建 OTA 服务角色及用户策略,并授予访问代码签名证书权限等。此外,还要确保你的账户具有必要权限以管理你的资源,比如IAM用户/角色的策略应该允许它们来读取S3存储桶中的文件。如果你正在寻找如何让你的物联网设备更好地连接到云端,我们建议阅读关于 Amazon Web Services 的更多信息,以了解如何最好地利用它们用于您的物联网项目需求。