Zephyr v3.5.0 在 2023.10.21 按计划正式 release。

和以往的 Release 不同,这次增加了大版本更新的迁移指南,让使用者更容易切换到 v3.5.0 https://docs.zephyrproject.org/3.5.0/releases/migration-guide-3.5.html

官方 Release 博客说明了 v3.5.0 的重大修改,Release note 可以找到细节,本文一二级标题列出主要更新内容,正文文字列出个人关注的内容。个人认为v3.5.0最大的亮点就是开始支持动态模块。

主要增加/改变的功能 链接到标题

  • 开始支持动态模块 - linkable loadable extensions ( llext ) ( 等待已久的功能 )
  • 添加新的 native 模拟器 native_sim
  • 集成了静态代码分析工具 Codechecker
  • 默认 libc 库改为 Picolibc,功能全且占用空间小
  • LVGL 集成改进,直接使用 input 子系统

内容摘要 链接到标题

修补漏洞 链接到标题

  • CVE-2023-3725
  • CVE-2023-4257
  • CVE-2023-4258
  • CVE-2023-4259
  • CVE-2023-4260
  • CVE-2023-4263
  • CVE-2023-4264
  • CVE-2023-5184
  • CVE-2023-5563
  • CVE-2023-4424:2023-11-01 解禁
  • CVE-2023-5055:2023-11-01 解禁
  • CVE-2023-5139:2023-10-25 解禁

内核 链接到标题

  • 添加 k_thread_stack_alloc ( ) 支持动态线程堆栈分配
  • 添加 k_spin_trylock ( )
  • 添加 k_object_is_valid ( ) 检查内核对象是否有效

架构 链接到标题

  • 引入了 ARC VPX 处理器的标量端口
  • 引入了对 ARCv3 HS ( 32 位和 64 位 ) SMP 平台 ( 最多 12 个 CPU 内核 ) 的支持
  • 改善 ARC MWDT 工具链的支持
  • Arm Cortex-M 的架构支持与 Arm Cortex-A 和 Cortex-R 分离,例如单独的源模块来处理 IRQ 管理、异常处理、线程处理和上下文切换。
  • RISC-V 支持 PMP 检测空指针异常
  • Xtensa 添加了基本的 MMU v2 支持
  • 支持 Intel Sensor Hub ( ISH )
  • POSIX 增加了 native_sim 模拟器可以使用嵌入式 C 库,避免与主机符号和库的冲突,支持 AMP,支持 LLVM 源分析/覆盖

蓝牙 链接到标题

修改涉及蓝牙音频,Direction Finding, Host, Mesh ( 支持 TF-M ) ,Controller

网络 链接到标题

涉及 CoAP,连接管理,DHCP, Ethernet, gPTP, ICMP, IPv6, LwM2M, MQTT-SN, OpenThread, PPP, Sockets, TCP,TFTP,WebSocket,Wi-Fi

  • 添加了对 DHCPv4 单播回复处理的支持
  • 添加了对 DHCPv6 协议的支持
  • 推出新的调制解调器子系统
  • 添加了对网络接口名称的支持
  • 添加了对静态分配套接字对的支持
  • 添加了对 FIONREAD 和 FIONBIO ioctl ( ) 命令的支持
  • 添加了对 SO_REUSEADDR 和 SO_REUSEPORT 套接字选项的支持
  • Wi-Fi 添加了被动扫描支持
  • Wi-Fi 扫描 API 更新了 Wi-Fi 扫描参数,以允许选择扫描模式
  • 添加了对 Wi-Fi 模式设置和选择的支持
  • Wi-Fi 添加了扫描扩展,用于指定通道、限制扫描结果、过滤 SSID、设置主动和被动通道停留时间和频段

开发板和 SOC 链接到标题

新增加 6 个系列的 SOC 和超过 45 个开发板,其中包含对Raspberry Pi 4 Model B的初步支持。

构建系统和基础设施 链接到标题

  • 静态代码分析集成 CodeChecker
  • 支持共享中断
  • Twister 支持 required_snippets
  • sysbuild 支持设置 MCUboot 密钥
  • 构建时优先级检查
  • 新加 initlevels, 运行 west build -t initlevels 可以得到初始化的顺序列表
  • 重新设计系统调用代码生成

驱动 链接到标题

涉及 ADC, CAN, Clock 控制,Counter, DAC, Disk, Display, DMA, EEPROM, Entropy, Ethernet, Flash, GPIO, I2C, I2S, I3C, IEEE 802.15.4,中断控制器,Input, PCIE, ACPI, Pin Ctrl,PWM,Regulators,Reset,Retained,RTC,SDHC,串口, SPI, Timer,USB,wifi

  • Posix 以太网支持超时
  • entropy_get_entropy 变为线程安全
  • 支持 ST7735S
  • 添加了对 NXP Pixel Pipeline ( PXP ) 的支持,以实现显示加速
  • 引入 npcx flash 驱动,通过单个 flash 接口单元 ( FIU ) 模块和直接读取访问 ( DRA ) 模式支持两个或多个 spi nor flash
  • 采用 ACPICA 库作为新模块,进一步增强 ACPI 支持
  • 将 esp32 默认网络 ( TCP workq、RX 和 mgmt 事件 ) 堆栈大小增加到 2048 字节
  • 增加了 14 个传感器驱动

USB 链接到标题

删除 USB_HID_PROTOCOL_CODE

设备树 链接到标题

涉及通用宏,绑定的更新和修改

库和子系统 链接到标题

  • MCUmgr 客户端支持 img_mgmt 和 os_mgmt
  • 添加了 MCUmgr setting 管理组,允许从远程设备操作 zephyr setting
  • MCUmgr 配置项增加
  • 支持 ext2 文件系统
  • Retention 增加了 bootloader 信息子系统
  • 添加年 Binary descriptors 子系统
  • POSIX API 的实现更新
  • loramac-node 从 v4.6.0 更新到 v4.7.0
  • 添加了对 CAN FD 的支持
  • RTIO 增加原子计数器
  • ZBus 更新,改进一些功能,增加 API
  • 电源管理更新
  • 添加了调制解调器模块子系统

HAL 链接到标题

  • nrfx 更新至版本 3.1.0
  • 添加新唐 NuMaker M46x

MCUboot 链接到标题

添加一些配置项,并修复大量 bug,重构 image 加密

Nanopb更新 链接到标题

LVGL 链接到标题

更新至 v8.3.7, 输入设备改为标准的 input

Trusted Firmware-A 链接到标题

新至 TF-A 2.9.0

文档 链接到标题

Sphinx 升级至 6.2

测试和示例 链接到标题

新增文件系统示例 fs_sample,支持 FAT 和 ext2 文件系统 新增 zbus 确认通道示例,以演示如何使用订阅者实现交付保证通道,新增 zbus 订阅者示例演示如何使用消息订阅者。