0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文解析FreeRTOS的OTA特性使用技巧与诀窍

电子设计 来源:互联网 作者:佚名 2018-08-02 10:22 次阅读

Amazon FreeRTOS 可帮助开发人员简化将物联网 (IoT) 设备连接到云的过程。然而,即使有更简单的云连接,许多开发人员面临的一个主要障碍仍然是如何现场升级其设备的固件。

固件升级常常利用引导程序完成;基于设备架构和可用的通信外设,引导程序可能有多种不同形式。引导程序很普遍,几乎所有嵌入式系统中都有包括,因此开发人员需要利用现有解决方案,而不是从头开始开发。这样,他们可以将更多时间投入到产品的差异化和特性上。

本文将探讨开发人员如何利用内置于 Amazon FreeRTOS (a:FreeRTOS) 中的引导程序功能(常被称为空中升级 (OTA)),来快速实现在其物联网设备上运行引导程序解决方案。

Amazon FreeRTOS 的 OTA 升级概述

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

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

  • 部署前对固件进行数字签名和加密
  • 将新固件映像安全地部署到单一设备、设备组或整个设备集群
  • 当设备加入组中、重新启动或重新配置时,将固件部署到设备中
  • 将新固件部署到设备后验证其真实性和完整性
  • 监视部署进度
  • 调试失败的部署

这些特性通过运行各种 AWS 服务来提供,例如:

  • OTA 管理器服务
  • AWS IoT 作业服务
  • 串流服务
  • Amazon FreeRTOS 代码签名服务
  • OTA 库和代理

对开发人员而言,让所有这些部分协同工作所需的步骤是相当多的,无法在一篇文章中详细说明。本文将重点介绍如何入门,以及关于在实验室中成功设置 a:FreeRTOS 的一些经验教训和诀窍。

选择 OTA 测试硬件

a:FreeRTOS 目前支持多种开发板。它支持的开发套件包括:

  • Texas Instruments的 SimpleLink Wi-FiCC3220SF Wireless LaunchPad开发套件
  • Microchip Technology的PIC32MZEF Curiosity开发套件
  • STMicroelectronics的STM32L4 Discovery 套件IoT 节点
  • NXP Semiconductors的 LPC54018 IoT 模块
  • Espressif Systems的ESP32-DEVKITC开发套件

图 1:Texas Instruments 的 CC3220SF-LaunchXL 是一个可以启动 Amazon FreeRTOS OTA 的全集成解决方案。该微控制器集成一个 Wi-Fi 模块,最大限度地减小了物理尺寸并降低能耗。(图片来源:Texas Instruments)

出于多方面原因,本文将重点介绍 SimpleLink Wi-Fi CC3220SF。首先,CC3220SF 是目前唯一集成了 Wi-Fi 模块的 a:FreeRTOS 微控制器。虽然其他开发板具有板载 Wi-Fi 模块,但 CC3220SF 通过将控制器和 Wi-Fi 功能集成在单一芯片中,节省了电路板空间和能耗。

其次,CC3220SF 的外部存储设备可以存储固件映像并在引导过程中恢复映像,因此其安全特性很有意义且更为复杂。如果读者能够在 CC3220SF 上成功设置 OTA,那么在其他平台上将不会有任何问题。

最后,CC3220SF 是 OTA 演示应用支持的第一款处理器,因此设计人员可以放心,处理器在 CC3220SF 上已经过全面审查。

图 2:J-Link Ultra+是一款全功能专业调试器,其特性包括无限制断点,以及极快的 SWO 和接口时钟速率。开发人员可以利用 J-Link Ultra+ 执行应用跟踪,以便了解 OTA 示例如何工作。(图片来源:Segger Microcontroller Systems)

除了选择开发板之外,开发人员可能还需放弃板载编程器,而使用专业编程器,例如 Segger Microcontroller Systems 的 J-Link Ultra+。专业编程器会降低程序速度并提供额外的调试功能,例如应用跟踪和 RTOS 感知调试,这对理解黑盒应用非常重要。开发人员也可利用Tag-Connect的TC201510 引脚钉式插头,轻松将编程器连接到目标板。调试器上可能需要TC2050-ARM201020 引脚适配器来转接 TC2050,以便连接板侧电缆。

图 3:Tag-Connect 的 TC2050-IDC 10 引脚钉式插头(左)是一种适配器电缆,可将开发板或生产电路板上的连接器基底面减到最小。与 SEGGER J-LINK 一起使用时,可能需要 TC2050-ARM2010 20 引脚适配器来转接 TC2050。(图片来源:Tag-Connect LLC)

配置 Amazon FreeRTOS 以实现 OTA 升级

默认情况下,OTA 库未包含在预配置的 a:FreeRTOS 包中。开发人员必须手动配置这些库和应用。首先,应登录AWSIoT 控制台并进入 Amazon FreeRTOS 菜单。然后,开发人员可以点击“Create new(新建)”按钮开始创建自定义配置(图 4)。

图 4:在 AWS IoT 控制台中,通过单击软件配置菜单中的“Create new(新建)”按钮可以自定义 a:FreeRTOS 设备软件。(图片来源:Beningo Embedded Group)

在配置过程中,开发人员只需要设置几项就能配置 OTA 特性。其中包括:

  • 选择硬件
  • 选择所包含的 a:FreeRTOS 库
  • 设置配置名称

对于本例,开发人员选择 CC3220SF-LAUNCHXL(图 5)。以这种方式选择硬件平台将会引入所有特定于电路板的文件,包括驱动程序。但是,选择电路板并不会自动引入 OTA 特性。在库部分,开发人员需要添加 OTA 库(如图 6 所示)。这将包含所有 OTA 库,包括开发人员可以参考或采纳的演示示例。

图 5:选择将要配合 a:FreeRTOS OTA 特性使用的硬件配置。(图片来源:Beningo Embedded Group)

将 OTA 升级库添加到 a:FreeRTOS 配置中的图片

图 6:将 OTA 升级库添加到 a:FreeRTOS 配置中。(图片来源:Beningo Embedded Group)

完成此操作后,开发人员便可创建配置并下载,然后将 aws_demo 项目导入代码调试器。

设置 OTA 示例代码

一旦导入 aws_demos OTA 示例,便需要执行若干任务。首先,配置终端、证书和安全密钥。这可以按照 a:FreeRTOS入门指南中的步骤完成。遵循该指南并按原样运行 aws_demos 项目,以便确认已连接到 AWS,然后再执行其他操作。

接下来,修改 OTA 演示非常简单。打开 aws_demo_runner.c 模块,找到位于模块末尾的 DEMO_RUNNER_RunDemos 函数。应对 vStartMQTTEchoDemo 调用添加注释,而 vStartOTAUpdateDemoTask 调用则取消注释。然后进行快速编译以构建项目,在引导程序功能启用的情况下,项目便可执行。

图 7:将 OTA 演示任务添加到 aws_demos 应用中。(图片来源:a:FreeRTOS 示例代码)

配置 Amazon Web Services 以实现 OTA

嵌入式软件开发人员而言,要运行 OTA 示例,进行到这一步骤时将涉及到云端。为了成功运行 OTA 示例,开发人员需要根据 OTA 先决条件指南配置 AWS。这要求开发人员:

  • 创建 Amazon S3 存储桶
  • 授予 AWS 帐户 OTA 升级权限
  • 创建 OTA 服务角色
  • 创建 OTA 用户策略
  • 授予访问代码签名服务的权限

完成这些操作后,依照最终的用户指南说明运行 OTA a:FreeRTOS 示例。

Amazon FreeRTOS 的 OTA 特性使用技巧与诀窍

使用 a:FreeRTOS 中包含的引导程序功能时,为尽量减少潜在问题,开发人员可以采用以下几点技巧和诀窍。其中包括:

  • 阅读“使用 Amazon FreeRTOS 连接到云”以获取关于如何使用 FreeRTOS 的一般技巧和信息
  • 通读 Amazon OTA 说明文档(详见此处)。
  • 在开发过程中,购买六片开发板并将它们分成三组,每组两片。这样便可试验现场升级设备和组可采用的不同方法。
  • 首先将固件升级部署到较小的设备组,以确保固件升级没有问题,然后才升级整个设备集群。
  • 利用 AWS Amazon Certificate Manager 创建证书并给固件签名。可以使用第三方认证机构,但如果全部在 AWS 内完成,该过程会比较简单。
  • 考虑将 PIC32MZEF Curiosity 板用于 OTA 实验,因为它是第二款支持 OTA 测试版演示的 a:FreeRTOS 开发套件。

总结

Amazon FreeRTOS 生态系统为开发人员提供了一个现场升级固件的范例。对于可能有不同需求或系统配置的开发人员,此范例可以轻松扩展。利用现有引导程序可为开发人员节省大量开发时间,以便其专注于产品差异化和价值主张。

如本文所述,Amazon FreeRTOS 的确可提供空中升级解决方案,该方案目前用于 Texas Instruments CC3220,而未来无疑将可用于其他 Amazon FreeRTOS 产品。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • OTA
    OTA
    +关注

    关注

    7

    文章

    504

    浏览量

    34486
  • FreeRTOS
    +关注

    关注

    11

    文章

    472

    浏览量

    61305
  • Amazon
    +关注

    关注

    1

    文章

    114

    浏览量

    17054
收藏 人收藏

    评论

    相关推荐

    请问BlueNRG ota升级中ota_sw_activation变量上电是随机值吗?

    最近在看BlueNRG ota升级代码时有个疑惑,ota_sw_activation变量是个未初始化的值,按照ram特性上电应该是
    发表于 03-13 08:29

    光耦PC817中解析

    光耦PC817中解析
    发表于 08-20 14:32

    Amazon FreeRTOS简化物联网设备连接到云

    文章中详细说明。本文将重点介绍如何入门,以及关于在实验室中成功设置 a:FreeRTOS些经验教训和诀窍。选择 OTA 测试硬件a:FreeR
    发表于 06-15 09:41

    精准解读FreeRTOS的十三大特性

    FreeRTOS]FreeRTOS的主要特性如下:实时性:FreeRTOS]任务数量:FreeRTOS对任务数没有限制,同
    发表于 06-23 08:30

    解析传感器的设计要点

    好的传感器的设计是经验加技术的结晶。般理解传感器是将种物理量经过电路转换成种能以另外种直观的可表达的物理量的描述。而下文我们将对传感器的概念、原理
    发表于 08-28 08:04

    求助,PID调节有哪些诀窍

    PID调节有哪些诀窍
    发表于 10-17 06:12

    基于OTA的模拟元件电路非线性特性建模

    研究了一种典型CMOS 源耦合差分对管电路(OTA)的非线性特性,得到非线性失真项。据此,导出了由OTA 构成模拟电阻和模拟电感以及其他一些模拟元件电路的非线性特性
    发表于 01-07 14:52 17次下载

    iPhone手机操作诀窍

    iPhone手机操作诀窍
    发表于 01-13 15:25 50次下载

    3.3V—5V连接技巧与诀窍

    3.3V—5V连接技巧与诀窍3.3V—5V连接技巧与诀窍3.3V—5V连接技巧与诀窍3.3V—5V连接技巧与诀窍3.3V—5V连接技巧与诀窍
    发表于 12-14 14:11 0次下载

    解析三元材料电池特性

    解析三元材料电池特性
    发表于 01-11 18:17 28次下载

    初入FreeRTOS

    目录一、FreeRTOS介绍1、初识FreeRTOS,什么是 FreeRTOS2、FreeRTOS的特点二、FreeRTOS移植1、
    发表于 12-06 21:06 37次下载
    初入<b class='flag-5'>FreeRTOS</b>

    UM-WI-048 DA16200 DA16600 FreeRTOS OTA更新用户手册

    UM-WI-048 DA16200 DA16600 FreeRTOS OTA更新用户手册
    发表于 01-10 19:01 0次下载
    UM-WI-048 DA16200 DA16600 <b class='flag-5'>FreeRTOS</b> <b class='flag-5'>OTA</b>更新用户手册

    OTA是什么?OTA升级有何用?

    ota是什么?ota升级是什么意思?很多用智能手机的人应该都会知道 ota是什么 ,而对于一些刚入门的机友们,ROOT、刷机、越狱都比较熟悉,但OTA升级比较陌生,那么
    的头像 发表于 03-15 14:36 4734次阅读

    UM-WI-048 DA16200 DA16600 FreeRTOS OTA更新用户手册

    UM-WI-048 DA16200 DA16600 FreeRTOS OTA更新用户手册
    发表于 06-30 19:42 0次下载
    UM-WI-048 DA16200 DA16600 <b class='flag-5'>FreeRTOS</b> <b class='flag-5'>OTA</b>更新用户手册

    RX系列帮您实现二级MCU OTA升级:FreeRTOS

    RX系列帮您实现二级MCU OTA升级:FreeRTOS
    的头像 发表于 10-26 18:04 455次阅读
    RX系列帮您实现二级MCU <b class='flag-5'>OTA</b>升级:<b class='flag-5'>FreeRTOS</b>篇