2023年Zephyr开发者大会(ZDS)于6月27日至30日在捷克布拉格隆重举行。与以往两次不同,本次ZDS由Zephyr项目规划和管理,并作为首届嵌入式开源峰会(EOSS)的一部分进行。在这个令人期待已久的盛会中,全球Zephyr开发者们共同探讨了Zephyr实时操作系统(RTOS)的最新技术与发展趋势。作为一款开源、灵活和可扩展的嵌入式实时操作系统,Zephyr项目在2014年由英特尔发起,2016年作为Linux基金会项目正式面向公众启动,得到了全球范围内的广泛关注和采用。
ZDS 2023共70余个技术报告,涵盖了使用指导与展示、新功能与技术、架构修改与操作系统、多核异构与虚拟化、模拟器、测试、工业流程与代码管理、安全性、应用案例、工具与调试等丰富多样的内容。湖大嵌入式实验室的小伙伴们将对本次大会的所有技术报告进行逐一收集、整理与分享,尽最大努力为Zephyr开发者提供ZDS 2023技术报告的开发经验、实践成果以及解决方案的参考。
今天分享第10篇技术报告,题目为:
“Circuit Dojo基于VSCode的zephyr开发环境插件的使用”
Jared是一位出色的制作者和开发者,他热衷于使用新技术,并通过对开源项目的贡献与他人分享自己的知识。他是nRF9160 Feather的创建者,nRF9160 Feather是nRF9160系统级封装(SiP)的开源开发板。Jared还是Zephyr实时操作系统的贡献者和倡导者,并通过YouTube上名为"Zephyr 101"的直播课程分享他的知识和经验。
对于新手来说,Zephyr很难上手。Python安装、环境变量、工具链等等都加剧了这种困惑!幸运的是,如果你使用VSCode,那么使用Circuit Dojo的Zephyr Tools就可以更容易地开始使用Zephyr。这些工具最近在Apache 2.0许可下作为开源发布,其目标是使Zephyr社区中的每个人都可以更轻松地启动他们的项目,无论工具链或体系结构如何。在这个演讲中,我们将讨论:*初始化扩展*从头开始一个项目*获取依赖关系*构建、闪存(flash)和控制台输出。
问题
每个人都明白Zephyr是一个新热点,开始使用Zephyr时会很痛苦。我们必须弄清楚如何使用它,去完成新工具(如mcumgr, west, ninja, cmake等)的学习路线。我可以编写一个统一的代码库改变多个目标,并且可以在完全不同的平台上编写相同的固件。
为了减轻负担,我们聚焦于一个大多数人使用的代码环境——VSCode,推出一个解决方法让用户更容易地将完成将代码从0转到编译,并且支持能够跨平台使用。这一解决方案通过构建一个开源VSCode扩展包实现,代码使用typescript编写完成,并放置于于GitHub (https://github.com/circuitdojo/zephyr-tools)。
在使用这个工具之前,用户只需要做两个准备,即预先安装Git和python3。接下来在VSCode的扩展市场下载Circuit Dojo插件,使用Setup指令完成以下下载和安装。
所有支持的平台(Windows、Linux、Mac)会得到一个提供了下载链接的manifest.json入口文件,允许对不同体系结构的二进制文件进行细粒度控制,特别地,这同样适用于x86—64和Arch64架构的Mac。
正如你所能想到的,这一工具为以下场景提供了很多的可能性。
用户可以使用Init Repo完成以下目标:
它的巧妙之处在于,你的代码和SDK代码被放在同一个位置,而改变依赖关系并不会影响其它的事物。缺点在于,需要更多的存储空间。
你并不一定需要去克隆一个仓库,你也可以直接使用Create Project指令去完成以下目标:
获取依赖关系
如果你需要把一些东西pull进你的项目,那么可以将它们作为依赖项加入到已创建的west.yml文件中,接着使用指令 Zephyr Tools: Update Dependencies即可完成依赖性的更新。
使用指令Zephyr Tools: Build即可简单地完成构建(Build)。而想要完成一个干净的构建,只需要运行Pristine或者使用Clean指令删除已经构建好的文件夹。
在构建的过程中,扩展包会询问你需要构建的板子和app。
即使关闭VSCode,板和项目目标也会被保留。如果您需要更改它们,您可以使用以下命令Zephyr Tools: Change Board、Zephyr Tools: Change Project。
控制台访问是由Zephyr-Tools CLI后台完成,它能够连接和监视任何串口连接,并保存输出到日志文件供以后使用。
总结