历史上的今天
今天是:2025年01月25日(星期六)
2021年01月25日 | 如何利用亚马逊云进行OTA更新
2021-01-25 来源:beningo
自嵌入式系统问世以来,现场固件更新一直是每个嵌入式系统的关键组件。访问诸如JTAG或SWD编程器之类的编程工具以及对编程端口进行物理访问通常需要使用额外接口(如USB,CAN,串行端口等)来更新固件。随着许多设备现在可以访问Internet并成为IoT设备,越来越需要执行无线更新。在今天的帖子中,我们将使用Amazon Web Services(AWS)和FreeRTOS看看如何进行OTA。
使用AWS的OTA概述
OTA更新可能会使开发人员第一次(或多次)遇到更新感到有些恐惧,该过程涉及很多部分,但总体而言,OTA流程可以分解为以下所示的简单图表:

图片来源:Beningo Embedded Group
如您所见,固件更新包含三个主要部分:
发布新固件更新的OEM
存储并更新AWS
接收固件更新的已部署设备
显然,在此示例中,AWS在整个过程中扮演着非常重要的角色。首先,将新的固件映像上传到S3存储桶,该存储桶用于存储固件映像。接下来,将新固件添加到S3存储桶中,OEM将使用IoT核心版调度一项作业,该作业将通知已部署的设备有可用的固件更新。最后,已部署的设备下载新映像,对其进行验证,然后更新其应用程序代码。届时,将更新设备并运行新的应用程序代码,直到进程重新启动并且有新的更新可用为止。
微控制器中的OTA支持
概述确实使OTA更新看起来很简单,这是因为开发人员已经完成了所有繁重的工作。如果团队决定他们要从头开始构建自己的解决方案,他们会发现他们将投入大量的开发工作。团队确实不想建立自己的OTA解决方案,而是利用现有的解决方案,以便他们可以专注于自己的产品功能和差异化因素。对于计划使用FreeRTOS的团队,他们可以利用Amazon的FreeRTOS库和OTA示例来极其快速地启动并运行OTA解决方案。
AWS OTA解决方案的一个好处是,许多微控制器供应商都支持该解决方案。例如,如果您要访问AWS合作伙伴设备目录,您会发现有数十家芯片供应商合作伙伴支持了近60种不同的开发板。现在,并非所有这些都支持OTA解决方案,但是相当一部分支持。这为开发人员提供了广泛的设备可供选择,此外,开发人员还可以将示例移植到其他处理器上。
OTA功能和能力
在过去的几周中,我将特别在Infineon / Cypress PSoC 64 Standard Secure–AWS Wi-Fi BT Pioneer Kit上尝试通过FreeRTOS来测试AWS OTA演示代码。我提到此套件是因为从安全角度来看,它特别有趣,因为它们不仅支持“传统” OTA或引导加载程序,而且还尽力确保不仅可以安全地更新固件,还确保引导微控制器上的处理过程建立了安全的信任根。
并非所有OTA或Bootloader解决方案都是一样的,而且在许多情况下,还存在自定义和配置的空间。例如,默认情况下,PSoC 64 OTA演示被配置为为推送到S3存储桶的固件提供标准二进制文件输出。但是,在Cypress工具链中,有一个Secure SDK工具,其中包含可用于加密固件映像的几种策略。然后,安全引导加载器上的设备会在对新固件映像进行写入之前对其进行解密和验证。
在查看适用于微控制器的潜在OTA解决方案时,应牢记以下几个功能:
微控制器建立信任根
微控制器包括一个安全的引导程序(用于验证完整性,验证和解密映像)
固件映像可以加密
易于生成固件更新
易于管理已部署设备的数量
结论
OTA更新正迅速成为几乎所有物联网设备的要求。这些解决方案可帮助开发人员以最少的精力在现场更新固件,从而使他们比起引导加载程序和OTA等通用设备设计元素,将更多的精力放在产品上。在尝试使用Cypress PSoC 64开发板和AWS OTA演示进行实验时,我发现我能够配置AWS和开发板在第一次进行固件更新的时间大约为一个小时,这很不错,因为从头开始启动这样的解决方案通常需要几个月的时间。
史海拾趣
|
单片机与MC45(GPRS模块)建立连接的通信协议RS232怎么用C语言实现啊 如题,我做的课题是PIC单片机与MC45连接实现短信收发,现在对RS232协议标准有所了解,但是不知道如何用C语言实现,还有,它们之间的连接是近距离连接,还是远距离连接呢… 查看全部问答> |
|
我做STM32和STC12LE5412的SPI通讯,STM32在接受到USART1发出的0x55后就连续发送20个字节,但是在发送第一个字节的时候要将NSS拉低(NSS脚被软件配置为用户自用),接着将剩余的19个字节发送出去。STM32为主,STC12为从。 &nb ...… 查看全部问答> |
|
【TI原创】基于LM3S811和TEA5767芯片的收音机实现 用到的是飞利浦的TEA5767的收音机模块,在网上搜了下相关的内容,发现很多人都在问,可是提供编程指导的很少,可能是高手都不屑回答这些小问题吧,在这里我把我的部分程序及TEA5767的相关资料放上来吧,给需要的人一些参考 TEA5767采 ...… 查看全部问答> |
|
EE智能家居系统 首先,感谢坛友让出sensorTag设备才让我有机会加入这个活动,由于是日期较晚(2012-04-21号才开启sensorTa创意设计),相对其他人来说可能做得不是那么精致~! 在拿到sensorTag后,马上开始行动。环境的 ...… 查看全部问答> |
|
想把滑动变阻器的电压转化为数字信号,我就想把这些数字信号反应在led灯上,比较容易观察,方便收集嘛,可是,编了老半天,试验后,发现有时变阻器的不同位置对应相同的数字信号。还有就是变化不明显,走了一小段距离,le灯才变一次,可是我是想采 ...… 查看全部问答> |
|
【TIVA C Launchpad 学习笔记五】DAC7611驱动程序 /******************************************* 开发坏境:CCSv5.4 开发板:TIVA C Launchpad(TM4C123GH6PM) 程序功能:DAC7611 程序说明: 编程者:Linchpin ********************************************/ #include #include #include \" ...… 查看全部问答> |
|
【PSoC Creator 模拟设计实用教程】--EEWORLD大学堂 PSoC Creator 模拟设计:https://training.eeworld.com.cn/course/2004本视频介绍了采用PSoC Creator进行模拟设计的各种技巧和注意事项。目录 … 查看全部问答> |




