写点什么

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

发布了 1961 篇内容, 共 168.1 次阅读, 收获喜欢 82 次。

关注

评论

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

字节前端必会面试题

helloworld1024fd

JavaScript

Python 教程之数据分析(6)—— 数据分析的数学运算

海拥(haiyong.site)

Python 9月月更

一加现在属于OPPO吗 资深“加油”来解答

Geek_8a195c

数据可视化系列教程之组件通信

云智慧AIOps社区

前端 JavaScrip 可视化数据

软件测试 | 测试开发 | 这些常用测试平台,你们公司在用的是哪些呢?

测吧(北京)科技有限公司

测试 bug

2022年全年Java岗面试题总结+一线互联网大厂Java岗面经/面试题总结!

程序员小毕

Java 程序员 面试 程序人生 后端

源码 | SpringBoot启动流程大揭秘

六月的雨在InfoQ

源码 springboot SpringBoot实战 9月月更 SpringBoot启动流程

Qt | 关于容器类的一些总结

YOLO.

c++ qt 9月月更

校招前端面试题

夏天的味道123

JavaScript 前端

基于Hudi的湖仓一体技术在Shopee的实践

Shopee技术团队

Hudi LakeHouse 湖仓一体

测试平台解决了什么问题?

老张

测试平台

Qt | 关于对象树和元对象的相关问题

YOLO.

c++ qt 9月月更

直播预告 | PolarDB-X 动手实践系列——PolarDB-X 数据导入导出功能

阿里云数据库开源

MySQL 数据库 阿里云 云原生 PolarDB-X

如何在 Jenkins CI/CD 流水线中保护密钥?

SEAL安全

DevOps jenkins CI/CD 密钥管理 CI/CD管道

leetcode 101. Symmetric Tree 对称二叉树(简单)

okokabcd

LeetCode 算法与数据结构

【荣耀开发者服务平台—百亿曝光扶持等你来】智慧服务快应用卡片接入指南(上)

荣耀开发者服务平台

JavaScript 前端 UI 安卓 honor

软件测试 | 测试开发 | 一文搞定 uiautomator2 自动化测试工具使用

测吧(北京)科技有限公司

测试 自动化测试

字节跳动A/B实验背后的秘密:样本量计算

字节跳动数据平台

数据分析 前端 ab测试 统计原理

华为云WeLink助力平房区打造智慧政务办公

科技怪咖

广东省湛江市等保测评机构有几家?怎么做?

行云管家

等保 等级保护 等保测评 湛江

LED显示屏是否可以实现智能化控制

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

“数智化”时代 ,房企转型路径与挑战的一种技术思路

Speedoooo

小程序 前端开发 数字化转型 移动开发 小程序容器

博云 Kubernetes 开源榜单贡献度进入全球前十

BoCloud博云

云计算 开源 云原生

Python 教程之数据分析(5)—— 使用 Python 进行数据分析和可视化 | 第 2 套

海拥(haiyong.site)

Python 9月月更

字节跳动 DanceCC 工具链系列之Xcode LLDB耗时监控统计方案

字节跳动终端技术

ios xcode swift LLVM 客户端

软件测试 | 测试开发 | 测试人员必须掌握的测试用例

测吧(北京)科技有限公司

测试 测试用例

实战Elasticsearch6的join类型

程序员欣宸

elasticsearch 9月月更

NFT艺术品交易平台:有哪些功能?

开源直播系统源码

NFT 数字藏品 数字藏品软件

博弈论(depu)与孙子兵法-02(46/100)

hackstoic

博弈论

高并发下的网络 IO 模型设计

C++后台开发

后台开发 reactor 高并发 epoll 网络io模型

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