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

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

3天内不再提示

使用Amazon FreeRTOS在边缘更新固件

设计idea 来源:互联网 作者:佚名 2018-05-14 10:25 次阅读

Amazon FreeRTOS帮助开发人员简化将物联网IoT)设备连接到云的过程。但是,即使采用更简单的云连接,许多开发人员将面临的一个主要障碍是如何在现场更新其设备的固件。

固件更新通常使用引导程序完成,引导程序可以基于设备体系结构和可用的通信外围设备以多种不同形式出现。由于引导加载程序很普遍并且几乎包含在每个嵌入式系统中,开发人员需要利用现有的解决方案,而不是从头开始开发。这使他们可以花更多的时间专注于自己的产品的差异化和功能。

本文将探讨开发人员如何利用内置于Amazon FreeRTOS(a:FreeRTOS)中的引导加载程序功能(通常称为无线更新(OTA))来快速获取在其物联网设备上运行的引导加载程序解决方案。

Amazon FreeRTOS的OTA更新概述

Amazon FreeRTOS是一个实时操作系统,其中包含了轻松连接到亚马逊网络服务(AWS)所需的所有库。亚马逊FreeRTOS基本上是FreeRTOS内核,现在已经包含了连接和安全库,以促进与AWS的安全通信。OTA功能包含在单独的OTA库中,并且必须单独配置才能包含在FreeRTOS下载中。

a:FreeRTOS OTA更新服务包含允许开发者进行以下操作所必需的软件:

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

  • 将新固件映像安全地部署到单个设备,设备组或整个设备队

  • 将设备添加到组中时将固件部署到设备,重新启动或重新设置

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

  • 监视部署的进度

  • 调试失败的部署

这些功能通过各种运行的AWS服务提供,例如:

  • OTA管理器服务

  • AWS IoT工作服务

  • 流媒体服务

  • 代码签名Amazon FreeRTOS服务

  • OTA图书馆和代理

对于开发人员来说,让所有这些部分协同工作所需的步骤是相当大的,并且不可能在单篇文章中详细介绍。相反,本文将重点介绍如何开始学习经验教训以及获得a:FreeRTOS设置在实验室中工作的提示。

选择OTA测试硬件

FreeRTOS目前支持几种不同的开发板。这些开发工具包包括:

图1:德州仪器的CC3220SF-LaunchXL是一款完全集成的解决方案,可以开始使用Amazon FreeRTOS OTA。微控制器具有集成的Wi-Fi模块,可最大限度地减小物理尺寸并最大限度地降低能耗。(图片来源:德州仪器)

本文将重点介绍SimpleLink Wi-Fi CC3220SF的几个不同原因。首先,CC3220SF是目前唯一一款具有集成Wi-Fi模块的FreeRTOS微控制器。虽然其他开发板具有板载Wi-Fi模块,但CC3220SF通过将控制器和Wi-Fi功能集成到单个芯片中,节省了电路板空间和能源。

其次,由于CC3220SF的外部存储设备可以存储固件映像并在引导过程中恢复映像,因此CC3220SF的安全特性非常有趣且更为复杂。如果读者能够成功地在CC3220SF上设置OTA,他们将不会在其他平台上运行。

最后,CC3220SF是OTA演示应用程序第一个支持的处理器,因此设计人员可以确信它已完全通过CC3220SF审核。

图2:J-Link Ultra +是一款功能齐全的专业调试器,包含无限制断点和极快的SWO和接口时钟速率。开发人员可以使用J-Link Ultra +执行应用程序跟踪,以便他们了解OTA示例的行为。(图片来源:Segger微控制器系统

除了选择开发板之外,开发人员还可能决定放弃板载编程器并使用专业编程器,例如Segger Microcontroller Systems的J-Link Ultra +。专业程序员会降低程序速度并提供额外的调试功能,例如应用程序跟踪和RTOS感知调试,这对理解黑盒应用程序非常重要。开发人员还希望使用来自Tag-ConnectTC201510引脚插头,轻松将其连接至目标板TC2050-ARM201020针对TC2050适配器可以在调试器,以适应基板侧电缆是必需的。

图3:来自标签连接(左)的TC2050-IDC 10针插头钉是一种适配器电缆,可以最大限度地减少开发板或生产电路板上的连接器占用面积。与SEGGER J-LINK一起使用时,可能需要TC2050-ARM2010 20针至TC2050适配器。(图片来源:Tag-Connect LLC)

为OTA更新配置Amazon FreeRTOS

默认情况下,OTA库不包含在预配置的a:FreeRTOS软件包中。开发人员必须改为手动配置库和应用程序。这可以通过登录AWS IoT控制台并进入Amazon FreeRTOS菜单来完成。然后开发人员可以点击“新建”按钮开始创建自定义配置(图4)。

a:AWS IoT控制台中的FreeRTOS设备软件的图像

图4:从AWS IoT控制台中,通过单击软件配置菜单中的“创建新”按钮可以自定义a:FreeRTOS设备软件。(图片来源:Beningo嵌入式集团)

在配置中,开发人员需要设置一些设置才能配置OTA功能。这些包括:

  • 选择硬件

  • 选择包含的:FreeRTOS库

  • 设置配置名称

在这个例子中,开发人员可以选择CC3220SF-LAUNCHXL(图5)。以这种方式选择硬件平台将拉入所有特定于电路板的文件,包括驱动程序。但选择电路板不会自动带入OTA功能。在库部分下,开发人员需要添加OTA库(如图6所示)。这将包括所有的OTA库,包括开发人员可以参考或合并的演示示例。

将与a:FreeRTOS OTA功能配合使用的硬件配置图像

图5:选择将与FreeRTOS OTA功能配合使用的硬件配置。(图片来源:Beningo嵌入式集团)

将OTA更新库添加到a:FreeRTOS配置中的图像

图6:将OTA更新库添加到a:FreeRTOS配置中。(图片来源:Beningo嵌入式集团)

完成此操作后,开发人员可以创建配置,下载配置并将aws_demo项目导入Code Composer Studio。

设置OTA示例代码

一旦导入了aws_demos OTA示例,就需要执行几个任务。首先,配置终点,证书和安全密钥。这可以按照a:FreeRTOS入门指南中的步骤完成遵循本指南并按原样运行aws_demos项目将允许在进一步确认之前确认与AWS的连接。

修改OTA的演示非常简单。打开aws_demo_runner.c模块,找到位于模块末尾的DEMO_RUNNER_RunDemos函数。vStartMQTTEchoDemo调用应该被注释掉,而vStartOTAUpdateDemoTask调用应该被取消注释。然后,快速编译将构建该项目,并准备在启用引导加载程序功能的情况下执行。

将OTA演示任务添加到aws_demos应用程序中的图像

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

为OTA配置Amazon Web Services

对于嵌入式软件开发人员来说,这就是运行OTA示例的过程,它将界限推向云端。为了成功运行OTA示例,开发人员需要根据OTA先决条件指南配置AWS。这要求开发者:

  • 创建一个Amazon S3存储桶

  • 授予AWS账户OTA更新权限

  • 创建一个OTA服务角色

  • 创建一个OTA用户策略

  • 授予访问代码签名服务的权限

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

使用Amazon FreeRTOS的OTA功能的技巧和诀窍

开发人员可以遵循以下几条提示和技巧,以尽量减少使用FreeRTOS中包含的引导加载程序功能时可能遇到的潜在问题。这些包括:

  • 阅读“使用Amazon FreeRTOS连接到云”以获取关于如何开始使用FreeRTOS的一般提示和信息

  • 阅读可在此处找到的Amazon OTA文档

  • 在开发过程中,购买六块开发板并将它们分成三组,每组两个设备。这将允许试验设备和组可以在现场更新的不同方式。

  • 首先将固件更新部署到较小的设备组,以确保在更新整个设备队伍之前固件更新没有问题。

  • 使用AWS亚马逊证书管理器创建证书并签署固件。可以使用第三方认证机构,但如果全部在AWS内完成,则该过程将被简化。

  • 考虑将PIC32MZEF好奇板用于OTA实验,因为它是第二个:支持OTA beta演示的FreeRTOS开发套件。

结论

亚马逊FreeRTOS生态系统为开发人员提供了一个如何在现场更新固件的例子。对于可能有不同需求或系统配置的开发人员,可以轻松扩展此示例。利用现有的引导加载程序可以为开发人员节省大量开发时间,并让他们专注于其产品差异化和价值主张。

如图所示,亚马逊FreeRTOS确实有一个无线更新解决方案,目前可用于德州仪器CC3220,并且无疑将来可用于其他亚马逊FreeRTOS产品。

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

    关注

    12

    文章

    473

    浏览量

    61340
收藏 人收藏

    评论

    相关推荐

    使用Amazon FreeRTOS的IoT解决方案

    主板或底板进行快速产品开发和原型设计。 使用Amazon FreeRTOS的IoT解决方案 采用Amazon FreeRTOS原理图的IoT解决方案 特征 LPC54018 IoT模块
    的头像 发表于 04-27 13:40 8813次阅读

    amazon-freertos-master

    本帖最后由 lee_st 于 2018-2-11 00:04 编辑 amazon-freertos-master
    发表于 02-10 23:29

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

    服务来提供,例如:OTA 管理器服务AWS IoT 作业服务串流服务Amazon FreeRTOS 代码签名服务OTA 库和代理对开发人员而言,让所有这些部分协同工作所需的步骤是相当多的,无法一篇
    发表于 06-15 09:41

    HDMI固件更新失败

    刚刚将我的nuc7i3BNH更新为最新的hdmi固件。我认为这将解决occaional空白屏幕的问题,但更新后hdmi端口根本不起作用。有没有办法回到旧固件。现在我的显示器上看不到任何
    发表于 11-22 11:31

    STM32F2x7_Ethernet(FreeRTOS)驱动更新

    STM32F2x7_Ethernet(FreeRTOS)驱动更新
    发表于 12-04 15:40 0次下载

    J-link_V8_固件更新软件

    J-link V8 固件更新软件及教程压缩文件包
    发表于 02-24 15:32 12次下载

    简化安全、基于 UEFI 的物联网 固件更新

    简化安全、基于 UEFI 的物联网 固件更新
    发表于 09-04 17:22 8次下载
    简化安全、基于 UEFI 的物联网 <b class='flag-5'>固件</b><b class='flag-5'>更新</b>

    本文讨论并演示如何使用 Amazon FreeRTOS 快速、安全地将设计连接到云

    使用 AWS 提供一个良好的基础。考虑使用 Amazon FreeRTOS 的内置无线 (OTA) 更新功能 (https://docs.aws.amazon.com/
    的头像 发表于 03-28 16:41 6021次阅读

    什么是空中固件更新又怎样影响着物联网

    空中固件更新是指远程更新嵌入式设备上代码的做法。Particle的技术内容撰稿人Jeffrey Lee说,嵌入式硬件必须具备空中固件更新功能
    发表于 01-24 16:09 1684次阅读

    什么是Amazon FreeRTOS?3FreeRTOS V10.2.1更新功能

    Amazon FreeRTOS,它基于 FreeRTOS 内核,并且增加了重要的 AWS 支持和 IoT 使用案例支持。
    的头像 发表于 05-16 15:42 1w次阅读
    什么是<b class='flag-5'>Amazon</b> <b class='flag-5'>FreeRTOS</b>?3<b class='flag-5'>FreeRTOS</b> V10.2.1<b class='flag-5'>更新</b>功能

    Mi Watch它正在推出新的固件更新

    PiunikaWeb报道,新的Mi Watch固件更新为v1.2.52,由用户在Mi Community上发布。Mi Watch上的Amazon Alexa虚拟助手支持仅限于部分地区。但是,未指定哪些地区有资格获得支持。
    的头像 发表于 02-22 10:42 2393次阅读

    【STM32】FreeRTOS资源(持续更新)

    什么,第一件事情我们就是找资料,可能有的朋友说“找资料还不容易吗?“, 打开百度或者谷哥搜索不就行了。方法是没有错,但是你会发现搜索出来的资料比较凌乱,尤其是国内大部分开发者不喜欢看英语文档,都想找中文资料。但是FreeRTOS的中文资料大多数都是老版本的,要知道FreeRTOS
    发表于 12-04 14:21 9次下载
    【STM32】<b class='flag-5'>FreeRTOS</b>资源(持续<b class='flag-5'>更新</b>)

    FreeRTOS历史版本更新记录

    前言:本文会不定期更新,一方面FreeRTOS发布新版本时会第一时间跟进;另一方面,会慢慢补上V8.0之后的版本更新内容。
    发表于 01-26 17:28 0次下载
    <b class='flag-5'>FreeRTOS</b>历史版本<b class='flag-5'>更新</b>记录

    使用 Amazon FreeRTOS边缘更新固件

    发表于 11-25 19:10 0次下载
    使用 <b class='flag-5'>Amazon</b> <b class='flag-5'>FreeRTOS</b> 在<b class='flag-5'>边缘</b><b class='flag-5'>更新</b><b class='flag-5'>固件</b>

    血手滑鼠固件更新及DPI设定工具下载

    血手滑鼠固件更新及DPI設定工具.exe
    发表于 05-30 09:09 0次下载