写点什么

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

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

关注

评论

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

架构实战营--模块一

永佳

架构实战营

Scrum Patterns:每日Scrum(译)

Bruce Talk

敏捷开发 译文 Agile Scrum Patterns

浅聊函数防抖与节流

程序员海军

JavaScript 大前端 防抖 节流

「架构实战营」课堂作业-G20210698010384

张亮

踩坑 MySQL 索引,看看你真的会用么?

架构精进之路

MySQL 4月日更

PCB如何拼版

不脱发的程序猿

嵌入式 电路设计 硬件设计 4月日更 PCB打样

作业1--微信的业务架构及学生管理系统

大可

怎么画出专业的架构图?

秋天

架构 架构师

脑机接口简史——假如这篇推送是你靠意念打开的

白洞计划

脑机接口简史——假如这篇推送是你靠意念打开的

脑极体

Java最强规则引擎-ice是如何炼成的?

waitmoon

规则引擎使用 规则引擎 流程引擎

如何做Nginx安全日志分析可视化

运维研习社

nginx 4月日更 waf

极客架构module 1 作业

Geek_649372

架构实战营

为什么数据库字段要使用NOT NULL?

艾小仙

架构实战营 模块一作业

netspecial

架构实战营

机器学习(二):理解线性回归与梯度下降并做简单预测

caiyongji

机器学习

架构实战营-模块一作业

Sun

VUE2,基于vue-cli搭建创建vue项目

Chalk

Vue 大前端 4月日更

区块链的环保实验,助全球提高垃圾回收

CECBC

环保

Linux grep 命令

一个大红包

4月日更

Wireshark数据包分析学习笔记Day25

穿过生命散发芬芳

Wireshark 数据包分析 4月日更

一文读懂区块链领域最新发展方向 NFT经济将成未来发展方向

CECBC

艺术品

基于二叉树实现Map

Silently9527

Java 二叉树 数据结构与算法

什么是架构?怎么来理解?

秋天

架构 架构师

go每日一库 [go-rate] 速率限制器

happlyfox

学习 Go 语言 4月日更

架构实战营——作业一:微信架构及学生管理架构

开拓纪

架构实战营 作业一

重磅官宣:Nacos2.0发布,性能提升10倍

xcbeyond

Java 微服务 nacos 4月日更

机器学习和大数据的区别和联系

大数据技术指南

机器学习 大数据 4月日更

架构实战营 - 模块 1- 作业

请弄脏我的身体

架构实战营

聪明人的训练(五)

Changing Lin

4月日更

高承实:绘一幅区块链社会画像

CECBC

区块链

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