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

ZDS 2023技术报告分享第62篇:Manifests在不断变化的Zephyr世界中保持项目健全


前言

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


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


今天分享第62篇技术报告,由彭盼整理,题目为:

Manifests: 在不断变化的Zephyr世界中保持项目的健全



作者简介

Mike Szczys在Golioth担任开发者关系工程师,拥有15年的固件开发经验,曾担任Hackaday的主编。他对微控制器的深厚热爱始于2000年代初,源于他希望制造更多的BEAM机器人。在Hackaday的12年中(其中8年担任主编),他积极开发了许多定制的电子会议徽章,占据了行业发展的前排位置。



文章简介

本文介绍了如何创建项目级的manifest文件,以安装Zephyr及其依赖库。安装完成后,则可以使用manifest文件来提取自定义板块、helper程序文件和其他一些有用的模块,这样的特性能够同时保持固件稳定、模块化和易于升级。



关于Golioth

Golioth是一家物联网云平台公司。致力于帮助硬件工程师将他们的传感器和设备连接到互联网,而无需成为云计算专家。使用Zephyr来支持尽可能广泛的硬件类型。清单文件(Manifest files)在其中起着重要的作用。



Manifest文件

Manifest文件是用来管理项目层次结构的。它包括以下内容:

  • 仓库信息:每个仓库的URL

  • 仓库的分支/标签/提交信息

  • 用于检出的本地路径

  • 提交到代码库中


应用程序和Manifest文件

Zephyr使用Manifest文件来管理模块和库的版本。其他项目也可以遵循相同的范例。

Zephyr使用的Manifest文件(356行)

Manifest文件的基本结构

基于默认Manifest文件的项目

在Manifest文件中增加项目的命令、允许列表等

运行west init

运行west update



Zephyr应用程序的版本控制

  • 应用程序位于app文件夹中

  • zephyr相关的内容位于deps文件夹中

  • Manifest文件控制所有的版本信息

  • 本地存储库只包含app文件夹中的内容

优点:

  1. Zephyr及所有模块锁定到已知版本

  2. 你的存储库仅跟踪你的文件

  3. Zephyr位于依赖项文件夹中

  4. 构建环境易于复制

缺点:

  1. 每个Zephyr 应用程序都存储了自己的本地副本

  2. Zephyr和其模块(大约 2.2 GB 或更大)

  3. VS Code扩展插件在跟进方面存在困难



设置Zephyr的应用程序

  • 创建带有应用程序目录的west.yml

  • 将Zephyr添加到依赖项中

  • 添加模块

  • 使用允许列表限制模块



Zephyr的应用结构



添加外部库



解析

  • west manifest --resolve

  • 从源代码和所有导入的清单生成单个清单

  • 非常适用于验证您的模块和本地路径



用户数据

  • 将数据传递到项目中

  • 可通过west命令访问

  • Golioth 使用基于Python west 扩展(自定义命令) 来为基于 Twister 的测试应用补丁



总结

  1. Manifest文件是版本控制的重要组成部分

  2. 正确使用可以稳定构建环境

  3. 对于外部板载、驱动程序和库非常有用

上一条:ZDS 2023技术报告分享第63篇:基于Zephyr&pytest测试无线物联网产品 下一条:ZDS 2023技术报告分享第61篇:使用Zephyr操作系统在不同硬件上运行

关闭

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