Zephyr 2021开发者大会演讲文档概览

本文记录Zephyr 2021开发者大会演讲文档阅读的内容。

zephyr第一次开发者大会结束快有1个月了,当时因为:时间不友好,几项会议同时开,个人英语水平差,听了两堂就没听了。好在最近Zephyr开发者大会的演讲文档已经发布出来,全部下载下来阅读了一遍,这里将阅读的内容做一个记录。 因为演讲的主题的范围太广,记录有如下问题: * 做了简单分类,有一些演讲内容跨度太大,分类可能不准。 * 感兴趣和能看懂的,或者打算深入学习的记录得多一点。 * 个人水平有限,对演讲文件的理解会出错,欢迎大家讨论指正。

目前所有的演讲文档都可以在文末链接下载到,考虑到小伙伴们下载可能不方便,大家可以在下面地址下载: https://pan.baidu.com/s/1cm1wSMIyaHrBlBk1nVZysA 提取码:bymd 当中文档的文件名是和后文的小结名是一一对应的。 之后Zephyr project可能会发布演讲视频,内容细节会比演讲文档详细(特别是讨论会议的文档,只是guide,干货都在讨论过程中),到时候再选择感兴趣的内容深入一下。

1 功能设计和原理介绍 链接到标题

A deep dive into the zephyr 2.5 and 2.6 device model 链接到标题

介绍说明Zephyr device模型的基本框架,设备有统一抽象的API,对于API有不同驱动的实现,不同的驱动下可以挂不同的外设。 说明了设备驱动的基本使用方法,介绍了目前抽象出来的API。 以BME280在SPI和I2C上为例介绍了devicetree中device的基本概念,说明了devicetree的使用方法。 设备树节点的依赖关系。

Coredump 链接到标题

介绍Zephyr Coredump的实现原理和现状。

Demand_Paging 链接到标题

When software is bigger than available memory 说明Zephyr分页机制的算法/流程,目前只有x86实现了分页机制。

ZDS-2021 RISC-V PMP 链接到标题

Zephyr userspace简介,将实现的关键点说得很清晰。 说明了Risc-v 实现userspace的架构/硬件基础。 说明了Risc-v如何使用PMP实现Zephyr的userspace。

ZDS2021_logging_overview 链接到标题

Logging subsystem overview 比较说明v1和v2两版log系统的实现机制,说明了设计时的考虑和因应方法,值得学习。

ZDS-RealTimeRealWorld-AndyRoss 链接到标题

Real Time in the Real World 介绍Zephyr内核调度,总结得非常到位,简单明了。最后P17的总结非常好。 说明了线程调度的时机,优先级和调度的关系,调度锁。说明了thread在调度列队的管理方法(backend) MetaIRQ, 中断下半段的处理,比协助线程的优先级还要高,会抢占协助线程,处理完后会总是返回到被抢占的协助线程中(不会有额外的调度),MetaIRQ支持多各level,可以相互抢占. 没有使用协作线程就没必要使用MetaIRQ, 只能用于驱动不能用于应用。 SMP下调度的情况。 Work queue, P4 work queue的介绍,线程池分担work,支持并行,抢占,优先级。支持SMP, EDF Deadline.

zds2021_usb 链接到标题

USB support in Zephyr OS 只支持USB device, 支持USB2.0 spec,常见USB Class都支援, 支持USB Composite, 驱动支持全速和高速,不支持运行时配置,只支持一个device控制器实例。 基于LPCUSB stack。 支持的class: Audio/CDC ACM/CDC ECM,EEM,RNDIS/USB DFU/USB HID/BT HSI over USB/MSC,class可以组合,由驱动和端点决定。 提供USB使用的示例/USB协议栈框图/代码目录结构/协议栈介绍。 驱动API和协议栈缺点说明 USB当前的开发情况,改进说明 USB stack测试简介 USB IP现状简介 USB host进度(已经有PR,还是实验性的)

Zephyr_DevSummit-PM101 链接到标题

Zephyr Power Management - 101 低功耗框架目标:

  • 尽可能减少能耗,可定制(提供机制,不是策略)
  • 跨平台(架构/板子/SOC)
  • 使用和不部署方便

说明了PM的设计架构,通过提供机制如何做到跨平台。 系统电源管理:

  • Idle thread是电源管理的入口,由策列管理器决定进入那种低功耗状态,并调用SOC的实现进行操作。
  • 应用程序也可以定义自己的电源管理策略。

设备电源管理:

  • 两种方式:中央控制由系统电源管理来挂起/恢复设备,设备运行时自己决定是否进入挂起或者恢复。
  • 驱动维护设备的电源状态,提供设备的电源管理接口

介绍如何配置启动电源管理,介绍在SOC上如何实现电源管理(系统),介绍在驱动上如何实现电源管理(设备),介绍如何实现电源管理策略。 电源管理的状态已经在设备树中定义.

2 移植和使用实例 链接到标题

ZDS_2021_TFM_Zephyr 链接到标题

Trusted Firmware M in Zephyr TF-M介绍,说明Zephyr内支持的TF-M的板子和示例

Circuit Dojo - Jared Wolff - Developing Hardware on Zephyr - Slides with Notes 链接到标题

作者以自己的nRF9160 Feather为例,说明如何将该board加入到zpehyr中

Circuit Dojo - Jared Wolff - Securing MCUBoot in 5 minutes or less - Slides with Notes 链接到标题

作者说明如何在nRF9160 Feather 上启用MCUBoot

ZDS-XtensaYarns-AndyRoss 链接到标题

Weaving Xtensa Yarns with Zephyr 介绍Xtensa 指令集架构,Zephyr针对该架构移植要做的细节. SMP的支持(ESP32/Intel DSP)。L1 cache,展望:内存管理(MMU), 用户空间的实现

Zephyr_DevSummit21_esp32 链接到标题

ESP32 Family Support Status 介绍目前ESP32对Zephyr的支持情况和计划。 ESP32的外设在Zephyr上已经实现超过50%, Q3/21将支持mcuboot,并对IRQ/I2C重构, Q4/21将支持OTA+update和硬件加密。 Q3/21 ESP32-S2/C3将开始支持Zephyr, PPT中有时间节点表。 最早Q4/21,最晚Q1/22 ESP32-S3/C6将支持zephyr 将基于ESP32系列的SOC持续对Zephyr进行支持。 正在研究的项目:

  • Zephyr上ESP32系列SOC动态调整频率节能
  • Zephyr上进行片上wifi native集成
  • MCU Manager
  • UpdateHUB
  • ESP-Rainmaker

Zephyr_DevSummit21_miklankova 链接到标题

Micropython binding to LVGL in Zephyr OS PPT内容源自于作者的论文,在rt1050平台上将micropython和lvgl绑定后做为zephyr的app进行编译运行,和直接使用zephyr内的lvgl编译运行。将二者的二进制大小,内存使用,运行效能进行比较。

3 应用案例 链接到标题

Golioth + Zephyr Dev Summit slides 链接到标题

Connecting Zephyr-based devices to the cloud 介绍云平台Golioth和Zephyr的对接

how_to_perform_zephyr_ota_update_over_lorawan.pptx 链接到标题

LoRa搭配MCUboot进行OTA升级,主要介绍了MCUBoot的工作原理和LoRa约束下的处理方式/解决方案

zds_2021_libre-solar_slides 链接到标题

IoT-enabled Solar Power Converters with Zephyr Libre Solar Project简介在Zephyr上太阳能管理应用实例

Lemonbeat_end_to_end_ipv6 链接到标题

Using Zephyr RTOS in an end-to-end IPv6 IoT solution 说明LB无线网络架构和需求,说明OS/SW Stack选型原因。 介绍Zephyr上实施情况和Zephyr上L2集成方法。以及Zephyr使用的经验总结。

Zephyr_DevSummit_Systerel_OPC_UA_A 链接到标题

Using OPC UA with Zephyr OPC UA:新的工业互操作性标准, 介绍OPC UA 说明S2OPC在zephyr上的状态和计划 提及使用Renode做OPC的CI

Zephyr_DevSummit21_Anjay 链接到标题

Simplifying sensor management using LwM2M and Zephyr API LwM2M介绍 针对传感器网络和M2M/物联网环境的需求而设计的设备管理协议,消息层基于CoAP (RFC 7252),Server/Client之间基于请求响应模型。 为引导和管理设计了4个接口:BOOTSTRAP/CLIENT REGISTRATION/DEVICE MANAGEMENT & SERVICE ENABLEMENT/INFORMATION REPORTING。 LwM2M数据模型:最深4层的树,对象->对象实例->资源->资源实例 IPSO对象介绍。 Zephyr传感器API简介,说明如何使用API实现IPSO对象 anjay的使用示例

zephyr-hard-real-time-applications-motor-control 链接到标题

Using Zephyr for hard real-time applications: motor control 介绍基于Zephyr的电机控制项目SPINNER,说明了选择Zephyr的原因。

4 会议讨论 链接到标题

Zephyr_Developer_Summit_Slides_Birds_of_a_Feather 链接到标题

Zephyr Developer Environments 开发环境的讨论会议,ppt内容不多,等视频内容。 有一个vscode插件的列表可以参考。

Zephyr_DevSummit21_CommonApplicationConfiguration 链接到标题

Common application configuration for boards 会议讨论,说明当前RAM/ROM在linker文件,devicetree, Kconfig同时配置存在的问题和要讨论的解决方案

5 人工智能 链接到标题

Zephyr Developer Summit 2021 - Using CI-based workflow with Renode in bringing TensorFlow Lite to Zephyr 链接到标题

Machine Learn简介,有一些有趣的数据。 TENSORFLOW/Lite/Lite Mico 介绍(Google ML的框架),Renode介绍(硬件模拟器,可以模拟SOC和外设) Zephyr的测试框架使用Renode,可以基于Renode建立CI。

Zephyr_Developer_Summit_Slides 链接到标题

TensorFlow, Meet Zephyr TFLM介绍,TFLM以module的形式被集成在Zephyr中,Zephyr 2.6开始支持,以lib的形式导入。应用开发者和贡献值的tips。

6 虚拟化 链接到标题

Taking Zephyr RTOS to the Virtual Edge 链接到标题

边缘虚拟化介绍,Virtio简介, Zephyr在边缘虚拟化的现状和计划

Zephyr_DevSummit21_PPT_jmw_ACRN_IIoT 链接到标题

ACRN Hypervisor and Zephyr RTOS for Industrial IoT Applications 介绍基于x86的虚拟化平台ACRN,可以跑Zephyr RTOS。有Zephyr的简单示例。

7 认证,质量与安全,项目管理 链接到标题

Zephyr_DevSummit21_FMEA_enjimai 链接到标题

Conduct FMEA in the safety analysis of Zephyr FMEA简介,为什么要将FMEA导入到Zephyr: 功能安全认证 Zephyr项目质量 如何实施SW FMEA, FMEA实施流程 以信号量为例实施FMEA RPN = Severity x Occurrence x Detectability 最新手册: AIAG / VDA FMEA handbook (2019)

Zephyr_DevSummit21_FuSa_V&V 链接到标题

Functional Safety Verification & Validation T est Case Development and the Challenges 介绍FuSa认证测试方法,Zephyr上面的测试方法和管理追溯方式。

Bagnara_Slides_Zephyr 链接到标题

The Status of Zephyr with respect to MISRA Compliance 安全编程相关

Zephyr-SW_Safety_Quality_ISO26262 链接到标题

Software Quality vs Safety in ISO 26262 介绍软件质量/安全的基本概念,ISO 26262的软件开发模型和质量/安全章节内容

Zephyr_DevSummit21_PPT - SW Product Lines 链接到标题

Field Report: Setting up a Software Product Line (SPL) Architecture 软件产品线的定义说明及作用。 基于Zephyr实施SPL的策略,介绍说明Zephyr的各项技术时如何支持SPL的。

8 测试 链接到标题

Zephyr_DevSummit21_MaciejPerkowski_twister_onhardware 链接到标题

On-target testing with Twister and the process of results publishing 说明如何使用Zephyr测试框架Twister

Zephyr_DevSummit21_PPT 链接到标题

Twister, a Powerful Test Runner for Zephyr OS Automation Testing Twister作用说明,使用简介。 Twister硬件环境,测试流程介绍。 Intel使用Twister案例

9 分析与调试 链接到标题

Zephyr_DevSummit21_Memfault_IRNAS_ConnectivityDebug 链接到标题

Best Practices for Debugging Connected Applications running Zephyr 调试方式简介: 本地调试: JTAG和打印调试 Zepyhr调试配置项说明:线程信息,PRINTK, LOG系统的使用 远程监控:使用Memfault,Zephyr上ARM base都可以用,说明如何集成Memfault到Zephyr 分别从Reboot Reason/Watchdogs/Faults & Asserts/Connectivity Metrics/自动测试说明如何使用Memfault进行调试分析和测试,有很丰富的实例。

Zephyr_DevSummit21_Percepio 链接到标题

Using Visual Trace Diagnostics on Zephyr Applications Tracealyzer在Zephyr上的使用介绍和演示。 Zephyr 2.6 Tracealyzer v4.5

10 其它 链接到标题

Connecting Zephyr To Students 链接到标题

如何向学生推广Zephyr

Zephyr Introduction- 20210604 链接到标题

Zephyr Project:Unlocking Innovation with an Open Source RTOS Zephyr项目情况简介

参考 链接到标题

https://github.com/zephyrproject-rtos/zephyr/wiki/2021-Zephyr-Developer-Summit https://docs.google.com/document/d/1b_KSNuEyCT0OhMVXaf87Nq7WbW6eg13pUHJh2vNECTs/edit#heading=h.x36xe8bnwr9r