揭秘FreeRTOS OTA与can总线智慧解锁实用技巧与精髓
AmazonFreeRTOS可以显著简化物联网设备与云端连接的过程,但现场固件升级仍然是开发人员面临的一个挑战。引导程序在嵌入式系统中普遍存在,开发人员通常会利用现成的解决方案,而不是从头开始。AmazonFreeRTOS内置了OTA功能,可以帮助快速部署引导程序解决方案。本文将探讨如何使用a:FreeRTOS中的OTA特性进行设备上运行引导程序。
AmazonFreeRTOS OTA概述
AmazonFreeRTOS是基于实时操作系统的轻量级版本,它包含了连接AWS所需的一切库。它实际上是包含安全通信库的FreeRTOS内核。OTA特性位于单独的OTA库中,需要单独配置才能包含在a:FreeRTOS下载中。
a:FreeRTOS OTA服务提供必要软件,以便开发者执行以下操作:
对固件进行数字签名和加密
安全地部署新固件映像到单一设备、设备组或整个集群
在设备加入组、重新启动或重新配置时自动部署固件
验证新固件真实性和完整性后再部署
监控部署进度并调试失败
这些功能通过AWS服务如OTA管理器、AWS IoT作业、串流服务以及代码签名服务等来实现。
设置实验室环境
选择合适的硬件平台对于成功设置a:FreeRTOS至关重要。当前支持多种开发板,如Texas Instruments SimpleLink Wi-Fi CC3220SF Wireless LaunchPad Development Kit,Microchip Technology PIC32MZ EF Curiosity Development Kit,以及STMicroelectronics STM32L4 Discovery Suite IoT Node等。
本文将重点介绍SimpleLink Wi-Fi CC3220SF,因为它是目前唯一集成了Wi-Fi模块的微型板,其外部存储可以存储固件映像,并在引导过程中恢复映像,因此其安全特性非常有意义且更为复杂。如果读者能够在CC3220SF上成功设置OTA,那么其他平台也不会有问题。此外,由于CC3220SF是首个支持演示应用处理器,因此设计师可以放心,该处理器已经被全面审查过。
除了硬件之外,专业编程器,如Segger Microcontroller Systems J-Link Ultra+也非常重要。这类编程器能降低程序速度,并提供额外调试功能,如应用跟踪和RTOS感知调试,对理解黑盒应用非常重要。此外,还需要Tag-connect TC201510 引脚钉式插头以便轻松将编程器连接到目标板,而可能还需要TC2050-IDC10 引脚适配器以转接TC2050以配合SEGGER J-LINK 使用。
配置 Amazon Free RTOS 以实现 OTA 升级
默认情况下,OTA库不包括预配置包。在手动配置这些库之前,先要登录 AWSIoT 控制台并进入 Amazon Free RTOS 菜单,然后点击“创建新的”按钮开始创建自定义配置。在此过程中,只需几项即可完成 OTA 特性的配置,其中包括选择硬件平台(如图5所示),添加 OTA 库(如图6所示)以及输入相关信息就行了之后,便可创建该项目并下载下来,将 aws_demos 项目导入代码调试工具继续执行下一步任务。
修改 Ota 示例代码
一旦aws_demos项目被正确导入,就应该按照以下步骤进一步修改:首先,要确保已连接到 AWS,这通常涉及遵循 a: Free RTS 入门指南中的步骤然后,在aws_demo_runner.c 模块末尾找到 DEMO_RUNNER_RunDemos 函数,将对vStartMQTTEchoDemo 调用的注释取消,同时对vStartOTAUpdateDemoTask调用添加注释最后进行快速编译构建项目,即可使其在启用引导程序功能的情况下正常运行。
配置 Amazon Web Services 以实施 Ota
为了让嵌入式软件开发者能够顺利运行 Ota 示例,他们必须根据 Ota 先决条件指南针对 AWS 进行相应配置这要求他们: 创建一个 S3 存储桶 授权给 AWS 账户 Ota 升级权限 创建一个用于 Ota 的服务角色 创建用户策略授予访问代码签名证书权限
总结
通过本文,我们了解到了如何利用 Amazon Free RTS 中内置的 OTA 功能来快速实现物联网设备上的引导程序解决方案,从而简化现场升级流程,并提高整体效率。此方法不仅节省时间,而且减少了资源浪费,使得产品差异化和特征上更加灵活发展,为未来的技术创新奠定坚实基础。