Zephyr v3.5.0 在 2023.10.21 按计划正式 release。
- Release 文件 https://github.com/zephyrproject-rtos/zephyr/releases/tag/v3.5.0
- Relase Notes https://docs.zephyrproject.org/3.5.0/releases/release-notes-3.5.html
- Release Blog https://www.zephyrproject.org/introducing-zephyr-3-5/
和以往的 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 订阅者示例演示如何使用消息订阅者。