前言
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文件夹中的内容
优点:
Zephyr及所有模块锁定到已知版本
你的存储库仅跟踪你的文件
Zephyr位于依赖项文件夹中
构建环境易于复制
缺点:
每个Zephyr 应用程序都存储了自己的本地副本
Zephyr和其模块(大约 2.2 GB 或更大)
VS Code扩展插件在跟进方面存在困难
设置Zephyr的应用程序
创建带有应用程序目录的west.yml
将Zephyr添加到依赖项中
添加模块
使用允许列表限制模块
Zephyr的应用结构
添加外部库
解析
west manifest --resolve
从源代码和所有导入的清单生成单个清单
非常适用于验证您的模块和本地路径
用户数据
总结
Manifest文件是版本控制的重要组成部分
正确使用可以稳定构建环境
对于外部板载、驱动程序和库非常有用