FreeRTOS OTA特性使用技巧与诀窍一位教导者指引我们解析OTA升级的奥秘通过实例探索can报

Amazon FreeRTOS 可以帮助开发人员简化将物联网(IoT)设备连接到云的过程。然而,即使有更简单的云连接,许多开发人员面临的一个主要障碍仍然是如何现场升级其设备的固件。通过内置于 Amazon FreeRTOS 中的引导程序功能(常被称为空中升级 OTA),本文将探讨开发人员如何快速实现在其物联网设备上运行引导程序解决方案。

Amazon FreeRTOS 的 OTA 升级概述

Amazon FreeRTOS 是一种实时操作系统,其中包含了轻松连接 Amazon Web Services (AWS) 所需的全部库。它本质上是 FreeRTOS 内核,现已包含连接和安全库,以方便与 AWS 进行安全通信。OTA 特性包含在单独的 OTA 库中,必须单独配置才能包含在 a:FreeRTOS 下载中。

a:FreeRTOS OTA 升级服务包括必要的软件,以便开发人员可以执行以下操作:

部署前对固件进行数字签名和加密

将新固件映像安全地部署到单一设备、设备组或整个设备集群

当设备加入组中、重新启动或重新配置时,将固件部署到设备中

将新固件部署到设备后验证其真实性和完整性

监视部署进度

调试失败的部署

这些特性通过运行各种 AWS 服务来提供,例如:OTA 管理器服务、AWS IoT 作业服务、串流服务 和代码签名服务。此外,还需要 OTA 库和代理。

入门指南:选择硬件与编程器设置实验室环境

为了成功设置 a:FreeRTOS 并实施 OTA 升级,本文将重点介绍如何选择合适硬件平台以及使用专业编程器,如 Segger Microcontroller Systems 的 J-Link Ultra+。

选择硬件平台:

Texas Instruments 的 SimpleLink Wi-Fi CC3220SF-Wireless LaunchPad 开发套件。

Microchip Technology 的 PIC32MZE F Curiosity 开发套式。

STMicroelectronics 的 STM32L4 Discovery 套装 IoT 节点。

NXP Semiconductors 的 LPC54018 IoT 模块。

Espressif Systems 的 ESP32 DEVKITC 开发套式。

专业编程器:

使用 Segger Microcontroller Systems 的 J-LINK Ultra+ 来降低程序速度并提供额外调试功能,如应用跟踪与 RTOS 感知调试。这对于理解黑盒应用非常重要。此外,可以使用 Tag Connect TC201510 引脚钉式插头轻松将编程器连接至目标板,并可能需要 TC2050 ARM201020 引脚适配器转接电缆。

配置 Amazon FreeRT OS 以实现 OTA 升级:

默认情况下,OTA 库未包含在预配置 a:FreeRTOS 包中,因此需要手动添加。在 AWSIoT 控制台中的“Create new”按钮开始创建自定义配置,并设置几项关键选项:

选择硬件平台,如 CC3220SF-LAUNCHXL。

选择所含有的 a:FreeRTOS 库,并添加 OTA 库以获取演示示例支持。

修改并构建项目以执行OTA演示任务:

打开 aws_demo_runner.c 模块,将 DEMO_RUNNER_RunDemos 函数中的 vStartMQTTEchoDemo 注释掉,而 vStartOTAUpdateDemoTask 则取消注释,然后快速编译构建项目,在启用引导程序功能的情况下可执行该项目(图7)。

配置 Amazon Web Services 以实现OTA:

对嵌入式软件开发者而言,要运行OTA示例,最终会涉及云端工作。这要求按照先决条件指南为 AWS 配置存储桶权限、创建 OTA 服务角色及用户策略,以及授予访问代码签名等权限,使得所有这些步骤能够顺畅地完成,从而使得基于 Amazon FreeRT OS 设备上的物理层次上传更新成为可能,同时确保数据传输过程中的安全性不受影响。