目前的位置: 首页 学术信息 正文

ZDS 2023技术报告分享第5篇:由社区推动的针对Zephyr(和其他微控制器)的OTA(Over-The-Air)解决方案


前言


2023年Zephyr开发者大会(ZDS)于6月27日至30日在捷克布拉格隆重举行。与以往两次不同,本次ZDS由Zephyr项目规划和管理,并作为首届嵌入式开源峰会(EOSS)的一部分进行。在这个令人期待已久的盛会中,全球Zephyr开发者们共同探讨了Zephyr实时操作系统(RTOS)的最新技术与发展趋势。作为一款开源、灵活和可扩展的嵌入式实时操作系统,Zephyr项目在2014年由英特尔发起,2016年作为Linux基金会项目正式面向公众启动,得到了全球范围内的广泛关注和采用。


ZDS 2023共70余个技术报告,涵盖了使用指导与展示、新功能与技术、架构修改与操作系统、多核异构与虚拟化、模拟器、测试、工业流程与代码管理、安全性、应用案例、工具与调试等丰富多样的内容。湖大嵌入式实验室的小伙伴们将对本次大会的所有技术报告进行逐一收集、整理与分享,尽最大努力为Zephyr开发者提供ZDS 2023技术报告的开发经验、实践成果以及解决方案的参考。


今天分享第5篇技术报告,题目为:

由社区推动的针对Zephyr(和其他微控制器)的OTA(Over-The-Air)解决方案






作者介绍

16465

Josef Holzmayr

Mender 开发者关系负责人

Yocto Project 社区经理

OpenEmbedded 社交媒体经理



联系方式


电子邮箱:josef.holzmayr@northern.tech

Twitter:@theyoctojester@fosstodon.org






Who we are(Northern.tech)

总部设在旧金山/奥斯陆

- 历史 -

Mender的开发商Northern.tech成立于2008年

- 使命 -

为全球联网设备提供安全的一流OTA解决方案

- 专业知识 -

超过10年的时间,确保规模化嵌入式系统的安全性

- 奉献精神 -

高度技术化的团队致力于解决客户的问题

- 认可 -

得到欧洲委员会Horizon 2020研究与创新项目的支持

- 信任 -

受到全球最大品牌的信赖






Joël


我有一个朋友叫Joël。他喜欢制作剪贴簿页面,并邮寄给自己的朋友们。到现在为止,我已经有了一个收集册,里面装着他寄给我的所有页面。


1691


每当他完成一张新的页面,他就将其放进信封,邮寄给我。这很酷,因为他住在法国,而我在德国。


960B


实际上,他只是把信封投进邮筒。邮政公司会收集所有信件,然后把属于我的信封放进我的邮箱里。


B856


这真的很方便。我每天差不多检查一次邮箱。每当有来自Joël的信件,我就可以把新的页面取出来放进我的收集册里。


91F3


由于邮政公司还提供追踪服务,所以Joël能够知道我的收集册里的新页面是否已经到达。


92E9


不过,有时候也会出现问题,比如信件可能被损坏或者在插入时页面撕裂。幸运的是,我可以将问题反馈给邮政服务,他们就会通知Joël。


99F0


当这种情况出现时,Joël可以用改进的包装寄一张新的页面给我。在此期间,不会造成任何损失,我也可以照常阅读收集册。


2959






OTA更新(OTA Updates)

事实上原理相同

现在假设Joël是一名软件开发人员,需要通过空中发送更新。

8001




1. 准备好要发送的更新

2. 上传更新到OTA管理系统

3. 只有与目标设备匹配的更新才会部署到设备上

4. 如果一切正常,Joël会收到确认提示(acknowledgment)。

5. 如果出现问题,Joël会收到错误提示,并且能够进行相关操作,同时OTA解决方案返回上一级,且设备仍然可用。



现在让我们转向开源

与真实的邮政服务形成垄断(或者至少是寡头垄断)不同,我们能够通过软件自己实现这一点。


8F83






服务器端

做自己的邮政服务(用于软件)

Mender是一个采用APL2.0许可的OTA解决方案。

90B9




关键词:文档

第一部分:API

30CD0


第二部分:软件包格式


17AFA






客户端侧

最后还缺少的是(关于软件)

为了完成我们的OTA解决方案,我们仍然需要"邮箱"。


· 接收传入的软件包


理解元数据


· 将其应用于设备


要么流式传输或复制到存储

切换A/B分区

报告成功


· 如果出现问题,处理回滚


切换回A/B分区

报告错误



Mender 微控制器单元客户端


https://github.com/joelguittet/mender-mcu-client

301CF



平台可移植性是设计的一部分。需要对以下内容进行封装或实现:


HTTPS客户端,以及TLS

线程/进程原语

写入ROM

切换分区

10D07



前往Zephyr


https://github.com/joelguittet/mender-stm32l4a6-zephyr-example


在Zephyr上将MCU客户端进行示例集成:


NUCLEO-L4A6ZG评估板

W5500以太网模块

Zephyr v3.3.0版本

利用MCUboot

cJSON

无其他依赖项,

目前的软件包在未压缩的负载上有限制。






未来的发展方向

官方客户端目前正在被重写成C++,其中Zephyr也在路线图中。

“第一个独立发布版本刚刚发布”

“稍有不同的重点,也是完全开放的”

“参与测试、贡献代码”

“在寻找合作伙伴”


Mender拥有远程终端功能,可以将其连接到Zephyr shell

1F37C



上一条:ZDS 2023技术报告分享第6篇:Oniro在Zephyr应用中的经验与教训 下一条:ZDS 2023技术报告分享第4篇:Zephyr中系统设备树支持

关闭

嵌入式与网络计算湖南省重点实验室
版权所有 © 2023 湖南大学