FreeRTOS OTA特性之智者教我如何在现场总线上运用技巧与诀窍
Amazon FreeRTOS:如何利用内置引导程序功能实现物联网设备的OTA升级
在物联网(IoT)时代,连接设备到云端变得越来越重要。Amazon FreeRTOS正是为此而生,它能帮助开发者简化这个过程。但是,即使有了更简单的云连接方式,许多开发者仍然面临着如何安全地在现场升级他们设备的固件这一挑战。固件升级通常依赖于引导程序,这可能以不同的形式存在于不同的设备架构中。
本文将探讨如何使用Amazon FreeRTOS中的内置引导程序功能(也称为空中升级,OTA)快速实现对IoT设备上的引导程序解决方案。
Amazon FreeRTOS OTA概述
Amazon FreeRTOS是一种实时操作系统,它包含了所有与AWS通信所需的库。它基于FreeRTOS内核,并且已经包含了连接和安全性的相关库,以便与AWS进行安全通信。OTA特性则独立于a:FreeRTOS作为单独的一个库,在下载a:FreeRTOS时需要单独配置才能被包含。
通过a:FreeRTOS OTA服务提供商所需软件,可以执行以下操作:
对固件进行数字签名和加密
安全地部署新固件映像到单个或多个设备、或整个集群
在加入组、重启或重新配置时自动部署新固件
验证新部署后的真实性和完整性
监控部署进度
调试失败的部署
这些特性通过运行各种AWS服务来提供,如OTA管理器服务、AWS IoT作业服务等。
入门指南与经验教训
选择合适的硬件平台对于成功设置a:FreeRTOS至关重要。目前支持多种开发板,其中包括Texas Instruments' SimpleLink Wi-Fi CC3220SF-Wireless LaunchPad Development Kit、Microchip Technology's PIC32MZEF Curiosity Development Kit等。此外,还有STMicroelectronics' STM32L4 Discovery套件IoT节点以及NXP Semiconductors' LPC54018 IoT模块等。
图1展示了Texas Instruments' CC3220SF-LaunchXL,该微集成一个Wi-Fi模块,是唯一集成了Wi-Fi模块的a:FreeRTOS微。这不仅节省空间还降低能耗,是目前唯一可以启动ota演示应用支持的一款处理器,因此设计人员可以放心其在CC3220SF上已经过全面审查。
除了硬件之外,专业编程器如Segger Microcontroller Systems' J-Link Ultra+也是必不可少的一部分。这类编程器能够加速代码调试并提供额外功能,如应用跟踪,以便理解ota示例是如何工作的。在调试过程中,可以使用TagConnect's TC201510插头轻松将编程器连接到目标板,同时可能需要TC2050-IDC10转接电缆以适配SEGGER J-LINK Ultra+用于转接TC2050.
配置 Amazon FreeRTOS 进行 OTA 升级
默认情况下,OTA库未包含在预配置的 a:FreeRT OS 包中,所以开发人员必须手动配置这些库和应用。在 AWS IoT 控制台中登录后,你可以点击“Create new”按钮开始创建自定义配置(图4)。
然后,只需设置几项即可完成配置,这些包括选择硬件平台、选择含有的 a:Free RT OS 库,以及设置 配置名称。此次,我们会选择CC3220SF-LAUNCHXL(图5)。这样做会引入所有特定于该电路板文件及驱动,但不会自动添加 OTA 特性。在“Libraries”部分,你需要添加 OTA 库(如图6所示),这将包括演示项目中的所有必要内容供参考或者采用。
一旦完成此操作,就可以创建并下载你的自定义软件包,然后将 aws_demos 项目导入代码调试工具进行测试。
设置 OTA 示例代码
一旦你已成功导入aws_demos Ota 示例,你就需要执行几个关键任务。一开始,要确保终端、证书及安全密钥都已正确设定。这可以按照 a:free rt os 入门指南 中给出的步骤来完成。一旦确认已连结至 AWS,您才应该继续执行其他操作。如果一切顺利,那么你只需打开 aws_demo_runner.c 模块,将注释移除 vStartMQTT EchoDemo 调用,并取消注释 vStartOtaUpdateDemoTask 调用,然后快速编译以构建项目,使其准备好启用 引导程序功能后运行。(图7)
最后一步是在云端环境上为您的嵌入式软件工程师团队建立一个完全可用的 Amazon Web Services (AWS) 环境,从而确保您能够成功运行您的 Ota 示例。你要做的是根据先决条件指南来调整 AWS 设置,这意味着:
创建一个 S3 存储桶。
授权 AWS 帐户用于 Ota 升级。
创建一个 Ota 服务角色。
创建用户策略并授权访问代码签名数据存储桶。
使用 Segger 的 J-link 编程器和 Tag Connect 的 TC201510 插头对目标板进行物理连接,并确保正确安装 SDK 和任何必要驱动程序,以便从源码编译出最小化版本;同时,确保你的网络环境足够稳定,以避免出现任何潜在问题。
总结起来,由于 Amazon Web Services 提供了一系列强大的工具和资源,无论你是否经验丰富,都能让自己成为专家,从而应对任何复杂的问题。如果你遵循本文列出的步骤,并保持耐心,不断尝试,每一次尝试都会使得学习过程更加顺畅,最终达到目的——实现物联网设备上的空中更新技术。不过,请记住,如果遇到了困难,不要犹豫寻求帮助,因为这只是学习曲线的一部分,而不是结束点。当你掌握了这些技巧之后,便能够无缝地迁移到更高层次,让你的项目发光发亮!