Zephyr 2024 开发者大会演讲文档概览
2024 Zephyr 开发者大会 4 月 16 至 18 日在西雅图举行,这次 ZDS 和去年一样是作为嵌入式开源峰会(EOSS) 的一部分进行。
本次开发者大会一共有 53 个演讲/会议,截止发文时 8 个没有文档,花了5天的空闲时间简单的过了一遍并做概览记录, 概览的内容有以下问题:
对感兴趣和熟悉的技术内容多关注一些,但理解上不一定准确,欢迎指正讨论。 演讲的知识面跨度太大,分的大类不一定合适。 无文档内容按摘要进行概览。
过完这次 ZDS2024 的 PPT 有几点感受:
- 机车中开始使用 Zephyr
- Zephyr 出现在大学 RTOS 的课程
- 在 Zephyr 上探寻提升嵌入式开发效率:引入 micropython, rust, wasm 和容器
- 大厂很重视完善测试
- Zephyr 持续投入到技术的改善:zbus, llext 动态模块, clock 管理, posix 持续发展
整理是直接从 https://eoss24.sched.com/overview/type/Zephyr+Developer+Summit 抓取,为了方便大家对应文档在网盘上放了一个备份 链接: https://pan.baidu.com/s/1UNLAxJ94iRZ5how_MmSp4Q 提取码: 6545
1 使用指导/展示 链接到标题
Configure Zephyr Kconfigs and Devicetree in Simple Words.pdf Kconfig 和 Devicetree 使用入门 链接到标题
[Configure Zephyr: Kconfigs and Devicetree in Simple Words - Roy Jamil, Ac6](https://eoss24.sched.com/event/1aBEh/configure-zephyr-kconfigs-and-devicetree-in-simple-words-roy-jamil-ac6?iframe=no&w=100%&sidebar=yes&bg=no)
- Zephyr 中 Kconfig 和 Devicetree 的架构简介
- 简要说明使用方法
- 说明不同角色人员的使用的注意点
EOSS24_Secure_Connectivity_Edge_Zephyr_T1L.pdf Zephyr 对 10BASE-T1L SPE 的支持 链接到标题
[Enabling Real-Time Secure Connectivity to the Industrial Edge with Single-Pair Ethernet and Zephyr - Jason Murphy, Analog Devices](https://eoss24.sched.com/event/1aBEn/enabling-real-time-secure-connectivity-to-the-industrial-edge-with-single-pair-ethernet-and-zephyr-jason-murphy-analog-devices?iframe=no&w=100%&sidebar=yes&bg=no)
- 10BASE-T1L SPE 能够将以太网连接能力带到边缘设备,提供更高的数据率和更长的距离
- 软件对 SPE 设备开发至关重要,以太网需要 L2 以上的软件
- Zephyr 软件栈完整支持 10BASE-T1L
- Zephyr 已经很好地支持 SPE,可以作为替代现有工业通信协议(如 CAN,Modbus) 的选择,同时可以使用熟悉的 IP 协议栈
- 如何配置使用 EVAL-ADIN1110EBZ 上的 10BASE-T1L SPE
ZDS 2024 - Shell over BLE.pptx.pdf 蓝牙 BLE Shell 链接到标题
[Open-Source Contribution Update: Shell Over BLE - Luis Ubieda, Croxel, Inc.](https://eoss24.sched.com/event/1aBF8/open-source-contribution-update-shell-over-ble-luis-ubieda-croxel-inc?iframe=no&w=100%&sidebar=yes&bg=no)
- 本次分享主要介绍如何使用蓝牙低功耗技术在 Zephyr RTOS 下实现串口通信,并通过此实现 Shell 命令行界面
- 介绍了蓝牙低功耗的 GAP 和 GATT 概念,以及 Nordic UART 服务(NUS) , Zephyr 中 NUS 的使用
- 讲解了如何在 Zephyr 中定义和注册 Shell 命令,以及支持的后端(包括蓝牙低功耗)
- 详细介绍了如何在 Zephyr 配置启用 Shell over Bluetooth LE,包括 Kconfig 选项和 Device Tree 配置
- 演示了使用 Shell over Bluetooth LE 的示例
CoAP_eoss24_zds-1.pdf Zephyr 下 COAP/LWM2M 的使用 链接到标题
[Connecting Zephyr Devices at Scale Using Open Source Solutions - Julien Vermillard, Tado](https://eoss24.sched.com/event/1aBEu/connecting-zephyr-devices-at-scale-using-open-source-solutions-julien-vermillard-tado?iframe=no&w=100%&sidebar=yes&bg=no)
- CoAP 介绍
- CoAP 面临 NAT 问题,需要心跳或云端缓冲操作。
- LWM2M 介绍
- CoAP 和 LWM2M 使用选择
Microservices for Microcontrollers(EOSS_ZDS 2024) .pdf 嵌入式应用程序的微服务架构 链接到标题
[Microservices for Microcontrollers: Composable Software Architecture for Embedded Devices - Sam Friedman, Golioth](https://eoss24.sched.com/event/1aBFH/microservices-for-microcontrollers-composable-software-architecture-for-embedded-devices-sam-friedman-golioth?iframe=no&w=100%&sidebar=yes&bg=no) 嵌入式应用程序的微服务概念和架构 Zephyr 中可以基于 zbus 实例展示
flexboard_eoss_2024.pdf 在 Zephyr 上开发一个键盘 链接到标题
[Flexboard: Developing Zephyr on a Keyboard That Runs It - Daniel DeGrasse, NXP](https://eoss24.sched.com/event/1aBEj/flexboard-developing-zephyr-on-a-keyboard-that-runs-it-daniel-degrasse-nxp?iframe=no&w=100%&sidebar=yes&bg=no)
- 基于 Kinetis K22 的键盘 FlexBoard,在 Zephyr 上面的移植, ZMK 的移植
2024-04-16_Mike-Szczys_Golioth_Build-Before-Installing_slides.pdf Codespaces 的 Zephyr 开发环境 链接到标题
[[Virtual Live] Build Before Installing: Zephyr Dev Environment Using Codespaces - Mike Szczys, Golioth](https://eoss24.sched.com/event/1aBFM/virtual-live-build-before-installing-zephyr-dev-environment-using-codespaces-mike-szczys-golioth?iframe=no&w=100%&sidebar=yes&bg=no)
- 在 github 的 Codespaces 中建立 Zephyr 开发环境
- 可以远端构建,但需要本地烧写
ZDS24-IPConfusion.pdf 链接到标题
[Inter Process Confusion - Navigating Zephyr’s IPC APIs - Andy Ross, Google](https://eoss24.sched.com/event/1aBFU/inter-process-confusion-navigating-zephyrs-ipc-apis-andy-ross-google?iframe=no&w=100%&sidebar=yes&bg=no) 对 Zephyr 内核的同步和数据传递进行介绍,说明不同对象的优缺点,给出不同场景下选择的指南。 在选择使用 Zephyr 内核进行同步和数据传递时的效能有很好的指导意义。
Automated, Simulation-Based Flow for Low-Cost FPGA-Accelerated devices with Zephyr on BeagleV-Fire.pdf 链接到标题
[Automated, Simulation-Based Flow for Low-Cost FPGA-Accelerated Devices with Zephyr on BeagleV-Fire - Piotr Zierhoffer, Antmicro](https://eoss24.sched.com/event/1aBFb/automated-simulation-based-flow-for-low-cost-fpga-accelerated-devices-with-zephyr-on-beaglev-fire-piotr-zierhoffer-antmicro?iframe=no&w=100%&sidebar=yes&bg=no) 介绍最近为 BeagleV-Fire 贡献的 Zephyr 移植以及与 Microchip 和 Antmicro 合作开发的 Renode 模拟器对该平台的全面支持
Learn OS whlie working in Zephyr(2) .pdf 链接到标题
[Learn Operating Systems Theory While Working with Zephyr - Lenka Kosková Třísková, Technical University of Liberec](https://eoss24.sched.com/event/1aBG0/learn-operating-systems-theory-while-working-with-zephyr-lenka-koskova-triskova-technical-university-of-liberec?iframe=no&w=100%&sidebar=yes&bg=no) Technical University of Liberec,大学将 Zephyr 作为教学 OS,教授学生 OS 的基本概念。 https://gitlab.com/lenkakt-git/zephyr/zephyr-os-labs
Zephyr I3C.pdf I3C 协议介绍 链接到标题
[Overview of I3C - Ryan McClelland, Meta Reality Labs](https://eoss24.sched.com/event/1aBG5/overview-of-i3c-ryan-mcclelland-meta-reality-labs?iframe=no&w=100%&sidebar=yes&bg=no)
- Zephyr 中如何使用 I3C,当前 I3C 驱动状况
- Zephyr 中 I3C 的发展方向
ZDS2024 SoC Development From ROM to Application.pdf 链接到标题
[SoC Development: From ROM to Application - Nadav Cohen Zukerman, Autotalks](https://eoss24.sched.com/event/1aBGH/soc-development-from-rom-to-application-nadav-cohen-zukerman-autotalks?iframe=no&w=100%&sidebar=yes&bg=no)
- 讲述了开发基于 ARC 处理器的 Tekton SoC 的过程,从 ROM 代码开始到最终应用。
- 为什么使用 Zephyr 操作系统,因为它支持 ARC、配置方便、开源。
- Zephyr 贯穿整个启动流程,从 ROM 到应用程序
- Tekton SoC 是使用 Zephyr 从头开始开发的
- 在开发过程中发现了 ARC 内核和缓存的 BUG,并与思科通报,这些 bug 的 patch 回流到 Zephyr 中。
ZDS24_Userspace.pdf 用户空间 链接到标题
[Userspace in Zephyr: Overview and Practicality - Daniel Leung, Intel Corporation](https://eoss24.sched.com/event/1aBGI/userspace-in-zephyr-overview-and-practicality-daniel-leung-intel-corporation?iframe=no&w=100%&sidebar=yes&bg=no)
- 用户空间在 Zephyr 中的概述与实用性
- Zephyr 支持用户模式与内核模式两个权限级别,用户模式下线程有限的内存访问权限
- 使用内存域与内存划分共享数据
- 使用内存域和内存划分可以实现不同用户线程组之间的数据隔离和共享
- 系统调用
- 用户空间的优缺点:用户模式代码不受信任,无法用于防御恶意代码
ZDS_2024_Z_LED_Frame.pdf 用 Zephyr 开发 LED Frame 链接到标题
[“Z LED Frame”: Illuminating Art with Zephyr - Jakub Duchniewicz, Tietoevry](https://eoss24.sched.com/event/1aBGM/z-led-frame-illuminating-art-with-zephyr-jakub-duchniewicz-tietoevry?iframe=no&w=100%&sidebar=yes&bg=no) 开发一个 LED Frame 的过程,软件使用了 Zephyr,涉及到 Zephyr http 网络相关
Using Picolibc in Embedded Systems(无文档) 链接到标题
[Using Picolibc in Embedded Systems - Keith Packard, Amazon](https://eoss24.sched.com/event/1aBGa/using-picolibc-in-embedded-systems-keith-packard-amazon?iframe=no&w=100%&sidebar=yes&bg=no) Picolibc 的概述、介绍测试基础设施以及将其集成到各种嵌入式 RTOS 中的实例。
2 新功能/技术 链接到标题
ZDS-2024-POSIX-Roadmap-for-Zephyr-LTSv3.pdf Posix 路线图 链接到标题
[LTSv3 POSIX Roadmap Update - Chris Friedt, Tenstorrent](https://eoss24.sched.com/event/1aBF3/ltsv3-posix-roadmap-update-chris-friedt-tenstorrent?iframe=no&w=100%&sidebar=yes&bg=no)
- Zephyr Posix 现状和进展
- Zephyr 目标是支持 PSE51、PSE52 和 PSE53 三个级别
- Zephyr 预计 LTSv3 版本可以实现所有必需的 POSIX 基本定义系统接口、支持 PSE51、PSE52 和 PSE53 级别,- 同时改进可维护性、标准符合度和文档
- 下一步实现信号、ZVFS 以及改进文档
- 文档中有大量现状数据
Build Wireless Products Faster with Zephyr and MicroPython - Ryan Erickson.pdf 基于 Micpython 和 Zephyr 快速构建无线产品 链接到标题
[Build Wireless Products Faster with Zephyr and MicroPython - Ryan Erickson, Ezurio](https://eoss24.sched.com/event/1aBFA/build-wireless-products-faster-with-zephyr-and-micropython-ryan-erickson-ezurio?iframe=no&w=100%&sidebar=yes&bg=no)
- 介绍了 Canvas 软件套件,它是一个软件平台,能够加速基于微控制器的无线产品的开发。它包括固件、工具、文档和示例。
- 支持的产品包括 Lyra 24 系列、BL65x 系列、Sera NX040 等产品。
- Canvas 软件套件的固件架构基于 Zephyr 内核,并集成了 MicroPython 引擎。
- Zephyr 提供了完整的功能,MicroPython 作为一个模块添加到 Zephyr 中。这样可以充分利用 Zephyr 的功能和社区。
- MicroPython 引擎可以启动在一个线程中。
- Zephyr 将 C API 提供给 MicroPython, 提供了文件系统、蓝牙低能耗等功能,支持固件更新。
- 可以使用 LwM2M 协议从云端进行固件更新。
zds-2024-rust-zephyr.pdf Zephyr 上使用 rust 链接到标题
[Update on Rust in Zephyr - David Brown, Linaro, LTD](https://eoss24.sched.com/event/1aBFG/update-on-rust-in-zephyr-david-brown-linaro-ltd?iframe=no&w=100%&sidebar=yes&bg=no)
- https://github.com/zephyrproject-rtos/zephyr/issues/65837
- 目标是在 Zephyr 上使用 Rust 开发应用程序(使用 Rust 编写 Zephyr 代码将是独立的工作)
- Rust cargo 使用 llvm 构建。a 再通过 Zephyr Cmake 进行链接
- Rust 对 kconfig 产生宏的访问,Rust 对设备树宏访问的方法,Rust 中 OS 的抽象(Mutex、Condition) ,驱动的调用,logging 系统的处理
Daniel DeGrasse- Clock Management.pdf 新的 Clock 管理框架 链接到标题
[Clock Management in Zephyr RTOS - Daniel DeGrasse, NXP](https://eoss24.sched.com/event/1aBFn/clock-management-in-zephyr-rtos-daniel-degrasse-nxp?iframe=no&w=100%&sidebar=yes&bg=no)
- 分析当前 Clock 系统的现状
- 提出为何要有新的 Clock 控制系统
- Clock 硬件分析
- 新的框架目标和说明
- 新框架下 API, Devicetree 说明
- 新框架实现说明
- 当前修改的状态
FutureOfDeviceModelZDS24.pdf 设备模型的改进方向 链接到标题
[Future of Zephyr Device Model - Ederson de Souza, Intel Corporation](https://eoss24.sched.com/event/1aBG4/future-of-zephyr-device-model-ederson-de-souza-intel-corporation?iframe=no&w=100%&sidebar=yes&bg=no)
- 设备模型的改进方向
- 延迟初始化设备
- 卸载/反初始化设备 用于功耗管理,增加 Notify
- https://github.com/zephyrproject-rtos/zephyr/pull/71469
- 初始化顺序的实现修改,不按照数字而是按照名称定义依赖关系,考虑「服务」
eoss2024-llext-tburdick.pdf 动态模块 llext 链接到标题
[Extending Zephyr Based Applications at Runtime with LLEXT - Tom Burdick, Intel](https://eoss24.sched.com/event/1aBGN/extending-zephyr-based-applications-at-runtime-with-llext-tom-burdick-intel?iframe=no&w=100%&sidebar=yes&bg=no)
- llext 的实现原理,内存分段&权限管理,重定位,elf 加载
- 如何构建动态模块
- 提供构建动态模块的工具:https://github.com/zephyrproject-rtos/zephyr/pull/69831
- 目前使用的注意事项
WASM on Zephyr: Securely Running Code in Any Language(无文档) 链接到标题
[WASM on Zephyr: Securely Running Code in Any Language - Daniel Mangum, Golioth](https://eoss24.sched.com/event/1aBGg/wasm-on-zephyr-securely-running-code-in-any-language-daniel-mangum-golioth?iframe=no&w=100%&sidebar=yes&bg=no) 介绍 WASM 模块的结构、如何在 Zephyr 应用程序中使用 WASM,展示如何从其它语言代码中调用 Zephyr API,探讨常见用例、当前限制以及将来支持更多功能的工作。
3 架构修改/OS/基础设施 链接到标题
ZDS-2024-Evgenii-Paltsev-pb.pdf Ticket 自旋锁 链接到标题
[Ticket Spinlocks in Zephyr RTOS: What, Where & Why - Evgenii Paltsev, Synopsys](https://eoss24.sched.com/event/1aBF2/ticket-spinlocks-in-zephyr-rtos-what-where-why-evgenii-paltsev-synopsys?iframe=no&w=100%&sidebar=yes&bg=no)
- 分析 spinlock 在 SMP 上导致不公平性的问题。
- 介绍 Ticket spinlock 的工作原理,并在 Zephyr 实现了 Ticket spinlock, 在模拟器和实际硬件上实测。
- 分析 Ticket spinlock 的性能开销和溢出问题。
eoss24_zbus.pdf zbus 新功能和路线图 链接到标题
[ZBus - New Features and Roadmap - Rodrigo Peixoto, Edge-UFAL/Citrinio](https://eoss24.sched.com/event/1aBFN/zbus-new-features-and-roadmap-rodrigo-peixoto-edge-ufalcitrinio?iframe=no&w=100%&sidebar=yes&bg=no)
- 内核数据传递对象应对不同场景的对比,引入 zbus 的优点
- 说明 zbus 的工作原理
- HLP(HIGHEST LOCKER PRIORITY PROTOCOL) 优先级协议引入,https://www.geeksforgeeks.org/highest-locker-protocol-hlp/
- 路线图:
- 关键消息订阅者使用独立的消息 pool
- 支持多核和多目标(跨 SOC)
- Zephyr Daemons(将特定功能模块 Daemons 化,例如 MQTT,驱动)
Zephyr Extensions: How to Dynamically Load an Application - Cedric Lescop, Schneider Electric(无文档) 动态模块 链接到标题
[Zephyr Extensions: How to Dynamically Load an Application - Cedric Lescop, Schneider Electric](https://eoss24.sched.com/event/1aBEv/zephyr-extensions-how-to-dynamically-load-an-application-cedric-lescop-schneider-electric?iframe=no&w=100%&sidebar=yes&bg=no)
4 多核异构&虚拟化 链接到标题
Zephyr Summit - Project Ocre.pdf OCRE 项目嵌入式系统上的容器 链接到标题
[Extending Cloud Native Beyond the 「Linux Barrier」 to MCUs - Jason Shepherd & Stephen Berard, Atym](https://eoss24.sched.com/event/1aBFh/extending-cloud-native-beyond-the-linux-barrier-to-mcus-jason-shepherd-stephen-berard-atym?iframe=no&w=100%&sidebar=yes&bg=no)
- Ocre(Open-Source Container Runtime for Embedded Systems) 运用 Wasm 技术,将云原生技术延伸到 MCU 上
- Wasm 使得不支持 Linux 或 Docker 和 Kubernetes 等技术的设备也可以实现云原生开发
- 项目 Ocre 是一个非常轻量级(~256KB) 的容器运行时,由 Zephyr 和 WebAssembly 组合而成,代码将于 6 月发布
- Ocre 提供类似 OCI 的应用程序容器化,但大小比 Linux 容器运行时如 Docker 小 2000 倍
- https://zephyrproject.org/ocre-a-tiny-open-source-container-runtime-for-embedded-systems/
- https://lfedge.org/from-the-magical-mystery-tour-to-project-ocre-my-open-source-journey/
ZephyrDevSummit_v1.pdf OpenAMP 和 Zephyr 链接到标题
[Zephyr and OpenAMP - Mohammed Billoo, MAB Labs Embedded Solutions](https://eoss24.sched.com/event/1aBGA/zephyr-and-openamp-mohammed-billoo-mab-labs-embedded-solutions?iframe=no&w=100%&sidebar=yes&bg=no) OpenAMP 简介。演示如何设置 Zephyr 以支持 OpenAMP。重点介绍一个包含运行嵌入式 Linux 的 Cortex A53 和运行 Zephyr 的 Cortex R5 的 Zynq Ultrascale+ MPSoC 开发板的设置。
RemoteProcZephyr.pdf Zephyr RTOS 中的远程处理器框架 链接到标题
[Remote Processor Framework in Zephyr RTOS - Vaishnav Mohandas Achath, Texas Instruments India Pvt. Ltd.](https://eoss24.sched.com/event/1aBGZ/remote-processor-framework-in-zephyr-rtos-vaishnav-mohandas-achath-texas-instruments-india-pvt-ltd?iframe=no&w=100%&sidebar=yes&bg=no) 说明 u-boot&linux 的 remoteproc 以及 remoteproc 的基本操作。zephyr 下 remoteproc 的提案(Zephyr 已经至此 open-amp,里面包含 remoteproc,再添加 remoteproc 子系统有何不一样?)
5 模拟器 链接到标题
Generating Zephyr Platforms and Apps with Visual System Designer and Renode .pdf 链接到标题
[Generate, Develop and Visualize Zephyr Platforms and Apps with Visual System Designer and Renode - Michael Gielda, Antmicro](https://eoss24.sched.com/event/1aBFV/generate-develop-and-visualize-zephyr-platforms-and-apps-with-visual-system-designer-and-renode-michael-gielda-antmicro?iframe=no&w=100%&sidebar=yes&bg=no) 介绍一种开源的端到端流程,允许用户使用开源的 Renode 模拟器和 Visual System Designer(VSD) 在自定义平台上设计、生成、构建、运行和可视化 Zephyr 应用程序。
VSD 是一种基于图形和基于图形的自定义硬件平台和系统设计工具,它构建在 Zephyr 的设备树和结构化数据上,允许系统开发人员通过开发一个参数化的块图从开源库中的真实组件构建复杂的系统。该工具允许您将 SoC 与外部传感器和执行器组合在一起,通过 I/O 接口连接它们,并自动生成用于测试接口和设备树和基本应用程序代码。
ZDS2024 Generic Tests and Emulators RevA.pdf 模拟驱动支持测试 链接到标题
[Streamlining Testing with Generic Tests and Emulators - Tristan Honscheid, Google](https://eoss24.sched.com/event/1aBFu/streamlining-testing-with-generic-tests-and-emulators-tristan-honscheid-google?iframe=no&w=100%&sidebar=yes&bg=no) 测试中模拟驱动,传感器模拟器后端说明,如何实现一个传感器模拟器后端
Warp Pipe: Library for Simulation-Driven Development of PCIe Devices Based on Zephyr(无文档) 链接到标题
[Warp Pipe: Library for Simulation-Driven Development of PCIe Devices Based on Zephyr - Karol Gugala, Antmicro & Chris Friedt, Tenstorrent](https://eoss24.sched.com/event/1aBFO/warp-pipe-library-for-simulation-driven-development-of-pcie-devices-based-on-zephyr-karol-gugala-antmicro-chris-friedt-tenstorrent?iframe=no&w=100%&sidebar=yes&bg=no) 介绍 Warp Pipe,用于模拟 PCIe 网络的 Zephyr 集成库。
6 测试 链接到标题
ITE Gpio Case Study.pdf ITE GPIO 驱动单元测试 链接到标题
[[Virtual Live] Unit Testing Memory Mapped Device Drivers - Jeremy Bettis, Google, LLC](https://eoss24.sched.com/event/1aBF1/virtual-live-unit-testing-memory-mapped-device-drivers-jeremy-bettis-google-llc?iframe=no&w=100%&sidebar=yes&bg=no) 说明驱动单元测试的必要性。以 ITE GPIO 驱动测试为例进行说明。
ZDS 2024 - Zephyr Application Development Using TDD_ Getting Started.pptx.pdf Zephyr 的应用程序测试驱动开发 链接到标题
[Zephyr Application Development Using TDD: Getting Started - Luis Ubieda, Croxel, Inc.](https://eoss24.sched.com/event/1aBFF/zephyr-application-development-using-tdd-getting-started-luis-ubieda-croxel-inc?iframe=no&w=100%&sidebar=yes&bg=no)
- 测试驱动开发(TDD) 基础知识。
- Zephyr 提供测试框架来支持 TDD,如 ZTest、FFF 和 Twister, BabbleSim, Pytest。
- Zephyr 中使用 TDD 相关信息
Pytest Tests in Twister.pdf 链接到标题
[Pytest Tests in Twister - Maciej Perkowski, Nordic Semiconductor](https://eoss24.sched.com/event/1aBGT/pytest-tests-in-twister-maciej-perkowski-nordic-semiconductor?iframe=no&w=100%&sidebar=yes&bg=no)
- 介绍 pytest
- 说明 pytest 和 zephyr 的结合
- pytest 用于编写小而易读的测试,可以帮助编写高质量的 Zephyr 代码
- pytest 与 Twister 集成,可以在 Twister 测试框架下运行 pytest 测试用例
- 提供了 Device Adapters 抽象,可以支持物理设备、模拟器和 QEMU 等多种测试设备
- 提供了 Fixture 机制,可以方便地配置和重用测试环境
- 可以测试 shell 命令、MCUboot 升级、LWM2M 等多种场景
- 可扩展性好,支持多设备和多镜像测试
7 工作流及代码管理 链接到标题
Taking Your Hardware To Production With Zephyr(EOSS_ZDS 2024) .pdf Zephyr RTOS 在量产环境中的实际应用 链接到标题
[Virtual Live] Taking Your Hardware to Production with Zephyr RTOS - Chris Gammell, Golioth](https://eoss24.sched.com/event/1aBEm/virtual-live-taking-your-hardware-to-production-with-zephyr-rtos-chris-gammell-golioth?iframe=no&w=100%&sidebar=yes&bg=no) 嵌入式设备的量产过程,说明 Zephyr 有那些工具可以应用到这些过程,并加速量产
How to integrate my(proprietary) code in Zephyr_IulianaProdan.pdf 将自己的代码和 Zephyr 整合 链接到标题
[How to Integrate My(Proprietary) Code in Zephyr - Iuliana Prodan, NXP](https://eoss24.sched.com/event/1aBFj/how-to-integrate-my-proprietary-code-in-zephyr-iuliana-prodan-nxp?iframe=no&w=100%&sidebar=yes&bg=no)
- 介绍 Zephyr 的目录树,许可证
- 创建 Zephyr 应用的目录管理方法
- 案例研究:将 Sound Open Firmware 集成到 Zephyr 中,从 out-of-tree 应用到 Zephyr 可选模块
该内容对基于 Zephyr 开发应用有指导意义
Practical SBOM Management with Zephyr and SPDX.pdf 链接到标题
[Practical SBOM Management with Zephyr and SPDX - Benjamin Cabé, The Linux Foundation](https://eoss24.sched.com/event/1aBFo/practical-sbom-management-with-zephyr-and-spdx-benjamin-cabe-the-linux-foundation?iframe=no&w=100%&sidebar=yes&bg=no)
-
介绍 SBOM, SPDX
-
介绍 Zephyr 对 SPDX 的支持
-
介绍如何使用工具识别 Zephyr 应用程序的 SBOM,并利用该信息评估安全状况和应对安全事件。
- ntia-checker
- sbomqs
- gh sbom
- sbom2doc
- cve-bin-tool
-
下一步对 CPE(Common Product Enumerator) 和 PURL(Package URL) 支持 https://github.com/zephyrproject-rtos/zephyr/pull/66495
-
支持 SPDX3.0
Zephyr_Summit_2024_Build_Zephyr_with_Yocto.pdf 使用 Yocto 构建 Zephyr 链接到标题
[[Virtual Live] Building Zephyr using Yocto - Naveen Kumar Saini & Anuj Mittal, Intel](https://eoss24.sched.com/event/1aIQ0/virtual-live-building-zephyr-using-yocto-naveen-kumar-saini-anuj-mittal-intel?iframe=no&w=100%&sidebar=yes&bg=no)
- meta-zephyr 层提供了使用 Yocto 构建系统构建 Zephyr 应用程序的替代方法。 https://git.yoctoproject.org/meta-zephyr
- qemu 上示例。
- 用 ACRN 和 Yocto 运行 Zephyr
8 安全性 链接到标题
Root_Canal_Audit_of_Zephyr_1713333335437_0.pdf 代码静态扫描和审计 链接到标题
A Root Canal Static Analysis Based Audit of Zephyr - Munawar Hafiz, OpenRefactory](https://eoss24.sched.com/event/1aBEw/a-root-canal-static-analysis-based-audit-of-zephyr-munawar-hafiz-openrefactory?iframe=yes&w=100%&sidebar=yes&bg=no)
- Coverity 扫描的情况和数据分析
- CVE 的数据分析
- 其它静态扫描工具在 Zephyr 上的表现,CodeChecker, Snyk, Semgrep
- 不同工具及 CVE 中一些严重问题的示例
- 结论:
- Zephyr 具有良好的安全态势
- Coverity 做得很好,但它并没有找到所有问题
- 其他工具偶尔有用,但它们会产生大量不符合预期的问题
insights-security-oss-eoss24_zds.pdf Zephyr 安全审计和漏洞经验的见解 链接到标题
[Insights from Zephyr Security Audit and Vulnerability Experiences - Flavio Ceolin, Intel & David Brown, Linaro, LTD](https://eoss24.sched.com/event/1aBFc/insights-from-zephyr-security-audit-and-vulnerability-experiences-flavio-ceolin-intel-david-brown-linaro-ltd?iframe=no&w=100%&sidebar=yes&bg=no)
- Zephyr 在安全方面的努力
- Zephyr 过去的漏洞概述,并提出结论和问题
- 外部代码审计
- 得到教训
- 增强 Zephyr 安全性而实施的策略
9 应用案例 链接到标题
battery_charging.pdf Zephyr 充电子系统 链接到标题
[Charging a Battery with Zephyr - Ricardo Rivera-Matos, Cirrus Logic, Inc.](https://eoss24.sched.com/event/1aBEt/charging-a-battery-with-zephyr-ricardo-rivera-matos-cirrus-logic-inc?iframe=no&w=100%&sidebar=yes&bg=no)
- 说明充电系统的基本知识:系统充电树和充电外设,充电配置文件(描述如何安全有效地对电池进行充电) 。
- Zephyr 引入了 charger_driver_api 来控制充电外设,获取和设置运行时属性。
- charger.h 列出了运行时属性,battery.yaml 描述了静态电池属性。
- 示例如何使用 charger_driver_api。
- 改进:GPIO 控制充电的驱动,增强示例程序,对充电遥测的支持。
oss_eoss24_zds_aedancullen.pptx.pdf 基于 Zephyr 开发 AR 设备 链接到标题
[Unreasonably Efficient AR: Using Zephyr to Achieve More with Simple Hardware - Aedan Cullen, Independent](https://eoss24.sched.com/event/1aBF4/unreasonably-efficient-ar-using-zephyr-to-achieve-more-with-simple-hardware-aedan-cullen-independent?iframe=no&w=100%&sidebar=yes&bg=no) imx RT595+VTOS6202 基于 Zephyr 开发的 AR 眼镜,主要是低功耗,低资源
OcppZephyrAsEVSE.pdf 电动汽车供电设备使用 Zephyr 链接到标题
[OCPP: Zephyr RTOS as Electric Vehicle Supply Equipment(EVSE) - Saravanan Sekar, Linumiz](https://eoss24.sched.com/event/1aBFa/ocpp-zephyr-rtos-as-electric-vehicle-supply-equipmentevse-saravanan-sekar-linumiz?iframe=no&w=100%&sidebar=yes&bg=no)
- 电动汽车(EV) 和充电基础设施
- OCPP 规格说明
- Zephyr 上的 OCPP 软件栈说明,还未 merge, https://github.com/zephyrproject-rtos/zephyr/pull/68739
- EVSE 标准(IEC 61851 和 ISO 15118)
10 机器学习 链接到标题
eoss24_beefy_ML.pdf 链接到标题
[Beefy ML: Ultra-Low Power Algorithms on Cattle - Jordan Yates, CSIRO](https://eoss24.sched.com/event/1aBFi/beefy-ml-ultra-low-power-algorithms-on-cattle-jordan-yates-csiro?iframe=no&w=100%&sidebar=yes&bg=no) 介绍如何在 Cortex M4F 上运行机器学习算法,以实时监测牛的饲料摄入量。涵盖系统设计、算法实现和验证,并介绍使用的开源组件,包括 Zephyr 作为底层操作系统、Zephyr Power Management 实现低功耗操作、PyTorch 进行算法训练,以及 CMSIS DSP 用于 ML 算法实现。
20240418 From a Weekend Hack to a Future-Proof IoT Device.pdf 人工鼻 链接到标题
[From a Weekend Hack, to a Future-Proof IoT Device - Benjamin Cabé, The Linux Foundation](https://eoss24.sched.com/event/1aBGU/from-a-weekend-hack-to-a-future-proof-iot-device-benjamin-cabe-the-linux-foundation?iframe=no&w=100%&sidebar=yes&bg=no) 使用 Zephyr+TinyML 制作人工鼻
11 社区治理 & 厂商支持 链接到标题
why_NXP_is_doubling_down_on_Zephyr.pdf NXP 为何大力投入 Zephyr 链接到标题
[Sponsored Session: Why NXP is Doubling Down on Zephyr Project - Brendon Slade, NXP](https://eoss24.sched.com/event/1aBec/sponsored-session-why-nxp-is-doubling-down-on-zephyr-project-brendon-slade-nxp?iframe=no&w=100%&sidebar=yes&bg=no) 为什么 NXP 加强对 Zephyr 项目的支持。
- NXP 最初参与 Zephyr 项目是为了抢占开源软件在微控制器领域的趋势
- 近年来,供应链问题促使 OEM 公司寻求更具弹性的供应链战略,这引起了他们对可移植性的需求
- OEM 公司希望更快地推出新产品而不增加研发成本,Zephyr 可以帮助他们实现这一点
- 新的欧盟网络弹性法规要求软件至少支持 5 年,这给 OEM 公司带来了压力,需要确保操作系统选择将得到支持
- Zephyr 可以帮助 NXP 实现从技术解决方案到完整参考设计的转型
- Zephyr 的硬件抽象层可以帮助不同的 NXP 微控制器平台实现相同的应用
- 开源对 NXP 有利,可以降低技术债务、共享社区努力、提高客户体验
Working with the Community A Timeline for Adding Support for a New Board in Zephyr.pdf Zephyr 社区交流 链接到标题
[Working with the Community: A Timeline for Adding Support for a New Board in Zephyr - Daniel Baluta, NXP Semiconductors](https://eoss24.sched.com/event/1aBEp/working-with-the-community-a-timeline-for-adding-support-for-a-new-board-in-zephyr-daniel-baluta-nxp-semiconductors?iframe=no&w=100%&sidebar=yes&bg=no)
- 介绍 Zephyr 发布周期,每 4 个月发布一次;每 2 年发布一个 LTS,提供 2.5 年支持
- 工具链情况,如何添加新工具链,至少 2 周合并修改,至少一个候选版本,通常要 1 个月
- 硬件模型 v2(HWMv2) 简介 & 添加主板的必要内容
- Zephyr 社区合作指南:贡献指南和编码规范
- 如何提交 PR
Graphing Zephyr Development and Project Health and How Visualizing Data Help with Growth and Scaling - Anas Nashif, Intel(无文档) 链接到标题
[Graphing Zephyr Development and Project Health and How Visualizing Data Help with Growth and Scaling - Anas Nashif, Intel] Zephyr 项目管理仪表盘,介绍自 Zephyr 开始以来一直在跟踪的一些数据,并重点介绍一些问题以及我们如何解决或计划解决这些问题。
Zephyr Documentation BoF(无文档) 链接到标题
[Zephyr Documentation BoF - Benjamin Cabé, The Linux Foundation](https://eoss24.sched.com/event/1aBFz/zephyr-documentation-bof-benjamin-cabe-the-linux-foundation?iframe=no&w=100%&sidebar=yes&bg=no) 回顾 Zephyr 文档的一些最新改进。讨论后续改进方向,包括改善用户体验、搜索板卡和 SoC 以及提供端到端的代码示例等
Meet the Maintainers BoF(无文档) 链接到标题
[Meet the Maintainers BoF - Anas Nashif, Intel](https://eoss24.sched.com/event/1aBFv/meet-the-maintainers-bof-anas-nashif-intel?iframe=no&w=100%&sidebar=yes&bg=no) 讨论项目维护者的角色和责任、改进领域以及如何跟上项目的发展
12 低功耗 链接到标题
eolin-pm-oss-eoss24_zds.pdf Zephyr 的电源管理 链接到标题
[Exploring Zephyr Power Management: Overview and Implementation Guide - Flavio Ceolin, Intel](https://eoss24.sched.com/event/1aBEi/exploring-zephyr-power-management-overview-and-implementation-guide-flavio-ceolin-intel?iframe=no&w=100%&sidebar=yes&bg=no)
- 概述 Zephyr 的电源管理框架,阐明其架构和关键组件。
- 探讨 Zephyr 采用的各种电源管理技术和策略,以延长电池寿命并提高整体系统的可持续性。
- 如何有效实施 Zephyr 电源管理的实用指南,使用 Zephyr 支持电源管理的步骤和最佳实践。
Zephyr Power Management for Wearable Devices(无文档) 可穿戴设备的电源管理 链接到标题
[Zephyr Power Management for Wearable Devices - Disha Patil, NXP Semiconductors](https://eoss24.sched.com/event/1aBEo/zephyr-power-management-for-wearable-devices-disha-patil-nxp-semiconductors?iframe=no&w=100%&sidebar=yes&bg=no) 基于 NXP 平台的智能手表演示应用程序,讨论 Zephyr 电源管理子系统的实现。演示 Zephyr kconfig 和 devicetree 对电源管理的支持。另外还包括
- LVGL 图形和 2D GPU 集成
- MIPI display/DSI 显示驱动程序
- DVFS 传感器和 PMIC 支持
- 闪存和 SRAM 的存储器优化
eoss24_journey_to_5uA.pdf 低功耗调试 链接到标题
[Device Power Management: Journey to 5uA - Jordan Yates, CSIRO](https://eoss24.sched.com/event/1aBGB/device-power-management-journey-to-5ua-jordan-yates-csiro?iframe=no&w=100%&sidebar=yes&bg=no)
- 介绍各种低功耗的策略策略和概念
- 说明基于 Zephyr 的 CSIRO Loci3 的低功耗调试过程
往年 ZDS 链接到标题
Zephyr-20223 开发者大会演讲文档概览 Zephyr-2022 开发者大会演讲文档概览 Zephyr-2021 开发者大会演讲文档概览