写点什么

Amazon FreeRTOS 空中 (OTA) 更新

  • 2019-10-18
  • 本文字数:1355 字

    阅读完需:约 4 分钟

Amazon FreeRTOS 空中 (OTA) 更新

Amazon FreeRTOS 是一种用于微控制器的操作系统,为设备、健身追踪器、工业传感器、智能电表、安防系统等联网设备提供支持。Amazon FreeRTOS 专为在小型低功耗设备中使用而设计,它通过与 AWS IoT Core 等云服务之间通信的库以及运行 AWS Greengrass 的更强大边缘设备扩展了 FreeRTOS 内核(如需了解更多信息,请参阅 Amazon FreeRTOS 公告 – 支持数十亿台设备安全获享云优势)。


与功能更强大、拥有按需加载和运行代码能力的通用计算机(配有大量本地内存和存储空间)不同,微控制器通常由出厂时装载的固件驱动,然后在设备生命周期内通过错误修复和新功能不时进行更新。尽管某些设备能够在运行的过程中接受现场更新,但必须将其他设备断开连接、从服务中移除并手动执行更新。而这种做法可能造成中断,不但不方便,而且成本高昂,更不必说耗费时间了。


我们希望一如既往地为客户提供更好的解决方案!


空中更新


如今,我们添加了空中更新机制,可用于现场向设备提供更新,进一步提高了 Amazon FreeRTOS 的实用性。以下是这一新功能的一些最重要属性:


安全性 – 更新可以由集成的代码签名者签名,通过受 TLS 保护的连接流式传输到目标设备,然后在目标设备上进行验证,以防止更新损坏、未经授权或存在欺诈性。


容错 – 为了防止失败的更新导致设备“砖化”,无法使用,更新流程具有恢复能力,并且能够避免不完整的更新生效,从而保证设备处于可正常运行的状态。


可扩展性 – 设备队列往往包含数千台乃至数百万台设备,可为了执行更新而划分成组,而 AWS IoT Device Management 会为此提供支持。


节省资源 – 微控制器具有有限的 RAM(通常为 128KB 左右)和计算能力。Amazon FreeRTOS 使用单个 TLS 连接执行更新和其他 AWS IoT Core 通信,并且使用轻量级 MQTT 协议,从而充分利用这些稀缺资源。


每台设备都必须包含 OTA 更新库。这个库包含一个侦听更新作业并监督更新过程的代理。


OTA 实际操作


我自己没有部署设备队列,所以这篇博文只简要介绍操作方法,如需了解更多信息,请参阅 OTA 教程


每次更新均采用 AWS IoT 作业的形式。作业会指定目标设备(物品和/或物品组)列表,并引用一份作业文档,描述要对每个目标执行的操作。而这份作业文档又会指向要为更新部署的代码或数据,并指定所需的代码签名选项。代码签名可确保所部署的内容真实无误;您可以提前自行签署内容,也可以要求在作业过程中签署。


作业可以运行一次(快照作业),也可以在目标中检测到更改时运行(持续作业)。持续作业可用于在将新设备添加到物品组时,注册或升级新设备。


创建作业后,AWS IoT 将通过 MQTT 发布 OTA 作业消息。OTA 更新库将以流式传输的方式下载签名内容、监督更新,并将状态回报给 AWS IoT。


您可以通过 AWS IoT 控制台创建和管理作业,也可以使用 CLI 和 API 构建自己的工具。我们打开控制台,首先单击创建任务



随后单击创建 OTA 更新任务



选择我的固件映像并为其签名:



此时,选择我的物品或物品组,启动作业并监控状态:



再强调一下,如果您需要了解更多信息,请参阅教程


这项新功能现已推出,您可以立即开始使用。


作者介绍:


Jeff Barr


AWS 首席布道师; 2004 年开始发布博客,此后便笔耕不辍。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/new-over-the-air-ota-updates-for-amazon-freertos/


2019-10-18 08:001030
用户头像

发布了 1856 篇内容, 共 131.4 次阅读, 收获喜欢 81 次。

关注

评论

发布
暂无评论
发现更多内容

如何安全地移动WSL 2 到另一个驱动器

吴脑的键客

windows WSL2

架构师的十八般武艺:高可用

agnostic

容灾

架构设计小结

Geek_e8bfe4

大数据训练营一期毕业作业

张大彪

千万用户3毫秒内抽奖100名如何实现?

知识浅谈

8月月更

如何在 SAP Spartacus 中编写 ASM-Compatible 的代码

汪子熙

angular SAP Hybris Spartacus 8月月更

Bigdata 毕业设计

Pyel

[JS真好玩] 嘘!我改了掘金源代码!1行代码,让表格支持page_size切换,从每页10条变为20条!

HullQin

CSS JavaScript html 前端 8月月更

SpringBoot 快速入门(保姆级详细教程)

SpringBoot 2 8月月更

总结

Asha

Spring 全家桶之 Spring Data JPA(五)

小白

8月月更

Linux 的十大下载管理器,提升效率杠杠的,偷着乐吧!

wljslmz

Linux 8月月更

毕业总结

Geek_2ce415

Bigdata 大数据训练营毕业总结

Pyel

Struts2应用详解

No Silver Bullet

应用 Struts2 8月月更

高绩效研发团队领导者的视野和格局

顺哥聊成长

模块九毕业设计

Geek_2ce415

IPv6过渡技术部署策略与建议

穿过生命散发芬芳

ipv6 8月月更

RT-Thread记录(十、全面认识 RT-Thread I/O 设备模型)

矜辰所致

单片机I/O设备的控制方式 RT-Thread 8月月更 设备模型

IT运维如何助力企业数字化转型

阿泽🧸

数字化转型 8月月更

秒杀系统设计demo

Geek_e8bfe4

Spring 全家桶之 Spring Data JPA(四)

小白

8月月更

Go-Excelize API源码阅读(十六)——GetSheetViewOptions、SetPageLayout

Regan Yue

Go 源码 Excelize 8月日更 8月月更

Spring 全家桶之 Spring Data JPA(三)

小白

8月月更

用RocketMQ这么久,才知道消息可以这样玩

牧小农

RocketMQ

拜托!不要用“ ! = null 做判空了

TimeFriends

8月月更

基于STM32+ESP8266设计物联网产品(重点支持微信小程序一键配网连接腾讯云平台)

DS小龙哥

8月月更

RocketMQ高可用设计之主从复制和读写分离

急需上岸的小谢

8月月更

长安链学习 -WEB插件-SmartPlugin

云原生(二十三) | Kubernetes篇之Kubernetes 网络策略(NetworkPolicy)

Lansonli

云原生 k8s 8月月更

【LeetCode】检查单词是否为句中其他单词的前缀Java题解

Albert

LeetCode 8月月更

Amazon FreeRTOS 空中 (OTA) 更新_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章