10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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

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

关注

评论

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

《搞定1》读书笔记

超超不会飞

OPPO互联网DevSecOps实践

OPPO安全

DevOps 安全

聊聊微服务

炜娓道来程序人生

架构 微服务 SOA

月度工作汇报,为什么要全球直播?

赵新龙

TGO鲲鹏会 技术社区 开源社区

【Elasticsearch 技术分享】—— ES 查询检索数据的过程,是什么样子的?

程序员小航

Java elasticsearch 搜索 ES Lucene Elastic Search

使用 K8s 进行作业调度实战分享

后端进阶

学习 Kubernetes 容器 k8s 调度式分布

Redis系列(一):Redis简介及环境安装

简爱W

科普小知识:区块链与分布式系统

CECBC

区块链 分布式

零代码简史

明道云

SaaS

Docker 镜像构建之 Dockerfile

哈喽沃德先生

Docker 容器 微服务

面经手册 · 第7篇《ArrayList也这么多知识?一个指定位置插入就把谢飞机面晕了!》

小傅哥

Java 数据结构 面试 小傅哥 ArrayList

Woman、man、camera、TV:如何做一个完整的深度学习应用

LeanCloud

学习 程序员 互联网 容器 LeanCloud

Apache Pulsar 2.6.1 版本正式发布:2.6.0 功能增强版,新增 OAuth2 支持

Apache Pulsar

消息队列 Apache Pulsar 消息系统 消息中间件

有选择才会有困惑

escray

学习 面试

Android |《看完不忘系列》之dagger

哈利迪

android

Redis系列(二):Redis的5种数据结构及其常用命令

简爱W

Flink-键值分区状态-10

小知识点

scala 大数据 flink

CRM企业到底该不该做PaaS?

ToB行业头条

PaaS SaaS CRM

为什么中国出了这么多厉害的互联网公司,但没有自己设计过编程语言?

代码制造者

编程语言 低代码 企业信息化 零代码 编程开发

解决数据指数级增长挑战,英特尔如何又快又好提供领导力产品?

最新动态

面试官再问你Http请求过程,怼回去!

架构师修行之路

HTTP TCP/IP

Java | 你知道快速搭建一个spring boot项目该怎么做吗?

简爱W

区块链是一个有去无返的奇幻旅程

CECBC

区块链

甲方日常2

句子

工作 随笔杂谈 日常

第11周总结+作业

林毋梦

性能相关,内存

Linuxer

性能

炒股不要看K线图(分享最近学习投资的一点心得)

Nick

投资 理财

前端智能化的加速时刻:华为机器视觉的创新方程式

脑极体

Luajit字节码分析之KSTR

whosemario

lua

难以遏制的人因差错-Go的日志工具之痛

田晓亮

微服务 Go 语言

迎接物联网时代,区块链大有可为

CECBC

云计算 大数据 区块链技术

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