前言
2023年Zephyr开发者大会(ZDS)于6月27日至30日在捷克布拉格隆重举行。与以往两次不同,本次ZDS由Zephyr项目规划和管理,并作为首届嵌入式开源峰会(EOSS)的一部分进行。在这个令人期待已久的盛会中,全球Zephyr开发者们共同探讨了Zephyr实时操作系统(RTOS)的最新技术与发展趋势。作为一款开源、灵活和可扩展的嵌入式实时操作系统,Zephyr项目在2014年由英特尔发起,2016年作为Linux基金会项目正式面向公众启动,得到了全球范围内的广泛关注和采用。
ZDS 2023共70余个技术报告,涵盖了使用指导与展示、新功能与技术、架构修改与操作系统、多核异构与虚拟化、模拟器、测试、工业流程与代码管理、安全性、应用案例、工具与调试等丰富多样的内容。湖大嵌入式实验室的小伙伴们将对本次大会的所有技术报告进行逐一收集、整理与分享,尽最大努力为Zephyr开发者提供ZDS 2023技术报告的开发经验、实践成果以及解决方案的参考。
今天分享第55篇技术报告,由李江伟整理,题目为:
“Zephyr的输入子系统”
作者简介

Jason是BeagleBoard.org项目的创始人。该项目旨在增加对嵌入式Linux硬件、软件的培训。作为德州仪器(TI)的资深人士,Jason在嵌入式系统集成电路的设计、制造、测试、应用和营销方面积累了丰富的经验。他负责领导和维护PocketBeagle、BeagleBone、BeaglePlay和BeagleV等开源工具。此外,Jason还在许多行业和教育活动中担任特邀演讲者和讲师,包括Maker Fairs、ASEE Conferences、ELC、Collaboration Summit、Android Builders、OSCON、CES等。
文章简介
通过在Linux和Zephyr之间建立紧密连接,可以快速引入新的物联网设备。Linux和Zephyr都是经过充分测试和审查的开源项目。Linux和Zephyr代码库与众多可用的Arduino和Micropython代码截然不同,它们的质量水平差异很大,并且没有用于标准化应用程序内使用的驱动程序模型。本文探讨了将新外围设备连接到Zephyr主机并通过专用网络上的Linux主机创建相关数据/控制连接的6种不同机制,即:
Zephyr上的Arduino代码
Zephyr上的Micropython
通过Greybus网络导出接口的Linux用户空间代码
原生Zephyr驱动程序
基于UDP的 Zephyr 驱动程序
通过集成Linux主机简化Zephyr的使用
1. Zephyr上的Arduino代码
Zephyr + Arduino:a Google Summer of Code story
许多非 CS/EE 人员熟悉的示例
能够利用无线和蜂窝网络堆栈
能够利用MCUBOOT / MCUmgr
FOTA 更新


void loop()
{
OPT3001 result = opt3001.readResult();
printResult("OPT3001", result);
delay(500);
}
2. Zephyr上的Micropython
• 自托管 REPL 环境
• 新兴的示例和熟悉的编程语言
• 启动和网络优势,例如 Arduino


3. 基于Greybus网络的Python代码
• Greybus 来自 Project Ara
• Project Ara 试图创建一款模块化手机,这样你就可以只更新你想要的内容
• 需要使嵌入式总线可热插拔
• 在主线内核中,使用Unipro





4. 原生Zephyr驱动程序


5. 基于UDP的 Zephyr 驱动程序
