大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

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:001180
用户头像

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

关注

评论

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

一天梳理完React所有面试考察知识点

beifeng1996

React

从React源码分析看useEffect

goClient1992

React

Java中的泛型详解

共饮一杯无

Java 泛型 11月月更

鸿蒙开发实例 | 分布式涂鸦

TiAmo

华为 鸿蒙 云开发 11月月更

3分钟快速掌握Go语言正/反向代理的姿势

有态度的马甲

发力新市民圈层,银行系消费金融这半年都有哪些行动?

易观分析

金融 银行

线上 hive on spark 作业执行超时问题排查案例分享

明哥的IT随笔

hadoop spark hive

Java中的Iterator迭代器详解

共饮一杯无

Java 迭代器 11月月更

极客时间运维进阶训练营第一周作业

LiaoWD

dokcer

React源码分析8-状态更新的优先级机制

goClient1992

React

从异步讲起,『函数』和『时间』该作何关系?

掘金安东尼

前端 11月月更

2022-11-07:给你一个 n 个节点的 有向图 ,节点编号为 0 到 n - 1 ,其中每个节点 至多 有一条出边。 图用一个大小为 n 下标从 0 开始的数组 edges 表示, 节点 i 到

福大大架构师每日一题

算法 rust 福大大

【炫丽】从0开始做一个WPF+Blazor对话小程序

沙漠尽头的狼

前端打工人的面试总结

loveX001

JavaScript

随机森林-机器学习中调参的基本思想

烧灯续昼2002

Python 机器学习 算法 随机森林 11月月更

计算机网络:随机访问介质访问控制之ALOHA协议

timerring

计算机网络 11月月更 ALOHA

深入理解Metrics(一):Gauges

冰心的小屋

Java metrics Guages

算法题学习---链表中的节点每k个一组

桑榆

算法题 11月月更

你需要的react面试高频考察点总结

beifeng1996

React

React源码分析8-状态更新的优先级机制

goClient1992

React

Java中的递归详解

共饮一杯无

Java 递归 11月月更

如何做好线上服务质量保障?

老张

软件测试 质量保障

从输入URL到渲染的过程中到底发生了什么?

loveX001

JavaScript

前端工程师的20道react面试题自检

beifeng1996

React

Cox 比例风险回归模型

heart_6662

11月月更 cox 生存分析 生物信息学

docker-compose下的java应用启动顺序两部曲之二:实战

程序员欣宸

Docker Docker-compose 11月月更

有赞算SaaS平台吗?

产品海豚湾

产品经理 SaaS 产品运营 B端产品 11月月更

从输入URL到渲染的完整过程

loveX001

JavaScript

一道React面试题把我整懵了

beifeng1996

React

数据湖(二十):Flink兼容Iceberg目前不足和Iceberg与Hudi对比

Lansonli

数据湖 11月月更

前端面试中小型公司都考些什么

loveX001

JavaScript

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