Zephyr V4.4.0发布
Zephyr之前是季度发布,从2026年开始调整为半年发布。加长发布周期有利于提高软件发布质量,同时也表明Zephyr功能架构大体趋向稳定,整体动荡将减少,标志着项目成熟度与社区协作模式的重大演进。
Zephyr v4.4.0 是首个半年发布版本,比预期晚一天,于 2026年4月14日 发布,该版本支持截止日期为 2027年4月12日。v4.5.0 计划于今年10月发布。
- Release 文件 https://github.com/zephyrproject-rtos/zephyr/releases/tag/v4.4.0
- Release Notes https://docs.zephyrproject.org/latest/releases/release-notes-4.4.html
- Release Blog https://www.zephyrproject.org/zephyr-rtos-4-4-now-available-wireguard-wi-fi-direct-openrisc-and-more/
- 迁移指南(从 4.3.0 迁移到 4.4.0) https://docs.zephyrproject.org/latest/releases/migration-guide-4.4.html
- 配套视频 https://youtu.be/KoMIB980bpU?si=yIDihM21Wacc0Fgt
官方 Release 博客详细概述了 v4.4.0 的新功能和亮点,Release Note 中可以找到细节,视频对重大变化进行说明和新功能演示。本文用一二级标题列出主要更新内容,正文文字列出个人关注的内容。
重大变化 链接到标题
- Zephyr SDK 1.0 与工具链升级:SDK 1.0引入了实验性的 Clang/LLVM 支持,默认的最低 C 语言标准要求为C17
- 网络新增WireGuard VPN 支持和Wi-Fi Direct (P2P)
- 安全性与鲁棒性
CONFIG_SYS_HEAP_HARDENING运行时检查堆溢出和破坏- 在 Wi-Fi 协议栈中,默认使用 PSA (Platform Security Architecture)
- 引入Scope-based Cleanup,类似 C++ RAII 、 Golang defer 的机制,退出作用域时自动清理资源
- 硬件架构与驱动增强
- Biometrics API:首次引入了生物识别 API 框架,支持指纹、面部识别等传感器
- OTP (One-Time Programmable) 驱动
- Wake-up Controller (WUC)
- Flash Translation Layer (FTL):新增了对 NAND Flash 的磨损平衡(Wear Leveling)和坏块管理支持(基于 dhara)
- MSPI 改进:Devicetree 现在支持分别配置 MSPI 的读、写和控制命令
- 新增对 OpenRISC 32位架构支持
- 性能改善
- CPU负载感知和自动频率调整
- ARM Cortex-M 上下文切换平均提速 8%
- zbus支持跨CPU/domain通信和异步监听器 (Async Listeners)
- USB Host扩展支持UVC
- 开发者体验改进
- Build Dashboard(点击看示例):构建后产生 HTML 报告:RAM/ROM 占用(表格+旭日图)、Kconfig 溯源、初始化层级、Devicetree 导航
- 新增了 ztest 基准测试框架 ,可创建周期精确的基准测试,实现自动化数据采集、开销补偿和统计报告(均值、标准差、最小值/最大值)
- 增加全新的QEMU显示驱动
- 新增 121 个主板和 31 个扩展板
内容摘要 链接到标题
修补漏洞 链接到标题
详细的说明可以在 https://docs.zephyrproject.org/latest/security/vulnerabilities.html 找到
总共14个CVE漏洞,其中8个尚未公开,主要涉及 Trusted Firmware-M (TF-M)
- CVE 2025-53022
- CVE 2026-0849
- CVE 2026-1677
- CVE 2026-1678
- CVE 2026-1679
- CVE 2026-1681
- CVE 2026-4179
- CVE 2026-5066
- CVE 2026-5067
- CVE 2026-5068
- CVE 2026-5071
- CVE 2026-5072
- CVE 2026-5589
- CVE 2026-5590
API 变化 链接到标题
删除的 API 和选项
- Xtensa: 移除了 4 个关于 MMU 映射及缓存区域的架构特性配置项
- 蓝牙
- 移除了已弃用的 bt_hci_cmd_create() 函数,由 bt_hci_cmd_alloc 替代
- 移除了 1 个蓝牙电话服务(TBS)支持选项
- 控制器 (Controller): 优化了 3 个关于广播集与缓冲区的配置逻辑,不再强制依赖“高级特性”开关
- Mbed TLS
- 移除了 53 个 配置项。主要涵盖了具体的加密算法开关(AES, DES, SHA 等)、椭圆曲线类型(ECP/ECC 系列)以及密钥交换协议
- 4 个配置项进行了重命名(涉及熵源驱动、SNI 服务名指示、调试开关等)
- 1 个格式选项(PEM)被拆分为更底层的解析、写入及 Base64 独立选项
- Random:CONFIG_CSPRNG_AVAILABLE 已更名为 CONFIG_ENTROPY_NODE_ENABLED
弃用的 API 和选项
- 蓝牙:
- Mesh 弃用了 1 个输入函数及 1 个结构体回调(number 变更为 numeric),弃用了 1 个 Vendor 消息 CID 强制配置项
- Host 连接间隔从 interval(1.25ms)迁移至 interval_us(微秒)。弃用了 4 个设备名称及外观的 GATT 可写性配置项。
- HCI: 纠正 2 个关于 LE 监督超时(Supervision Timeout)宏定义的拼写错误
- I2S:弃用了 4 个旧版宏定义,和最新规范对齐(MASTER -> CONTROLLER, SLAVE->TARGET)
- Mbed TLS:弃用用户自定义配置文件的旧选项,统一使用 CONFIG_MBEDTLS_CONFIG_FILE,弃用了 CONFIG_MBEDTLS_LIBRARY
- Entropy/Random:弃用了 2 个与 PSA Crypto 和 CTR_DRBG 相关的熵源/生成器选项
- 弃用了 mcux_lpcmp 驱动程序及相关示例, 计划4.6移除
- 弃用了旧版 SysTick 低功耗挂钩宏、头文件及 4 个相关配置项
- 弃用了 zephyr,cortex-m-idle-timer 属性,由 zephyr,system-timer-companion 替代
- POSIX STREAMS 配置项由 CONFIG_XOPEN_STREAMS 变更为 CONFIG_XSI_STREAMS
新功能与增强
- 驱动:
- ADC/DAC: 新增大量基于 Devicetree 的宏与 API,支持索引/名称获取配置;DAC 新增了毫伏/微伏转原始值等转换函数
- 音频 (Audio/PDM): 引入 PDM 设备树配置宏及左右声道检测功能
- 视频: 增加 30+ 个像素格式宏(如 Bayer, RGB, YUV 系列)及缓存池管理功能
- 显示: 新增事件回调注册接口,并扩展了 SDL 与 SSD1325 驱动的颜色格式支持。
- 新增 OTP(一次性可编程) 内存驱动 API
- PWM 增加事件回调机制
- 新增 NXP SEMA42(硬件自旋锁)及 4 通道 DMA 驱动
- 蓝牙
- Audio/CAP: 增加 BAP 连接获取、CAP 交接回调及 TBS 客户端索引查询
- Mesh: 正式支持 numeric(数值型)带外配网输入/输出;新增 CDB 与本地存储的密钥同步功能
- 新增 GATT 与周期性广播同步的回调注销接口;优化了 ISO 频道断开的回调顺序
- 新增 ANS 支持
- 构建系统:
- 新增 CMake 函数用于生成 C 结构体布局常量
- Sysbuild 支持合并 Hex 文件及自动生成 MCUboot 变体镜像
- 网络协议栈
- 支持 Wi-Fi Direct (P2P) 模式及 WEP 加密;默认启用 PSA 加密
- 新增 WireGuard、FTP 客户端及 CoAP 多播客户端支持
- DTLS 服务器现支持 socket 多并发会话
- 子系统与工具
- MCUmgr 增加对原始 UART 传输协议的支持
- Shell 增加 readline 用户输入接口
- Mbed TLS: 扩展支持 26 个 配置项,重点涵盖 TLS 1.3 密码套件、SHAKE 算法及 X.509 证书解析。
- 新增 COBS(一致性开销字节填充) 流式编解码支持
- 新增 Disjoint-set 数据结构
- Zbus: 引入Async Listener与Proxy Agent机制,支持按名称获取通道。
- 增加 CPUFreq 压力策略
- 调试、日志与质量改进
- 新增 Exception Dump Hook
更多细节请参考 Release Note。
主板 & 扩展板 链接到标题
新增 121 个主板和 31 个扩展板,详见 Release Note。主要特点如下:
- 国际主流芯片支持: 多个RP2040/RP2350(树莓派)、ESP32 系列(乐鑫)、STM32 系列(意法半导体)以及 NXP MCX/i.MX 开发板加入
- 高性能与工业级:增加了 AMD Versal 系列、Intel Wildcat Lake 以及 Renesas(瑞萨)多款面向电机控制、AI 视觉的开发板
- 虚拟化与仿真:新增了 QEMU(OpenRISC)和 BlackBerry QNX 虚拟机的支持
- 特定应用:涵盖了框架笔记本(Framework Laptop)配件、电子纸显示器(Inkplate)、以及各种物联网传感器(Third Reality)
中国的芯片有:
- 乐鑫(Espressif)
- heltec_wifi_lora32_v3:ESP32-S3
- heltec_wireless_tracker:ESP32-S3
- beetle_esp32c3:ESP32-C3
- esp32c5_devkitc:ESP32-C5
- esp_threadbr:ESP32-H2
- m5stack_nanoc6:ESP32-C6
- doit_esp32_devkit_v1:ESP32
- esp32c3_lckfb:ESP32-C3
- glyph_c3:ESP32-C3
- glyph_h2:ESP32-H2
- rak11160:ESP32-C6
- esp32s3_geek:ESP32-S3
- esp32s3_rlcd_4_2:ESP32-S3
- lolin32_lite:ESP32
- 博流(Bouffalo Lab)
- bl706_iot_dvk:BL706
- ai_m61_32s_kit:BL616 / BL618
- 瑞昱(Realtek)
- rtl8721f_evb:RTL8721F
- rtl872xd_evb:RTL8720XD
- rtl872xda_evb:RTL8720XDA
- rtl8752h_evb:RTL8752H
- rtl87x2g_evb_a:RTL87x2G
- rts5817_maa_evb:RTS5817
- 瑞芯微(Rockchip)
- orangepi_5_ultra_rk3588:RK3588 (高性能 8 核 SoC)
- 沁恒微(WCH / Nanjing Qinheng)
- ch32v307v_evt_r1:CH32V307(RISC-V MCU)
- 联发科(MediaTek)
- mt8365:MT8365 ADSP
不出意外,基于乐鑫 SoC 的开发板数量又排在前面。
驱动 链接到标题
新增多个驱动,详见 release note。其中引入 Biometrics 驱动,说明 Zephyr 要从单纯的连接型 OS 向复杂的交互型 OS 演进(如智能门锁、安防系统)
实例 链接到标题
新增 73 个实例,详见 release note。这次Zephyr增加了大量的Sample,从Sample的功能可以大体推测 Zephyr 技术路线、生态扩展和商业落地方向:
- 推动实时数据流处理模型(zbus、streaming sensor framework),与 AI sensor / edge computing 契合
- 加强 IoT / 云连接能力,正进入 工业 IoT / 能源 IoT(Wireguard VPN,OpenThread BorderRouter,OCPP charge point)
- 支持 Linux-style 复杂系统
- 增强工业与汽车能力(10BASE-T1S)
- 强化电源管理
- 扩展多媒体与音频(A2DP,MIDI2)
库和子系统 链接到标题
- LoRa / LoRaWAN:新增 CAD(信道检测) 与 LBT(先听后发) 模式,提升信道利用率。支持硬件级 RX 占空比循环,实现更省电的无线唤醒
- Mbed TLS:更新到 4.1.0,只保留 TLS/X.509 功能,基础加密算法(Crypto)剥离至 TF-PSA-Crypto 模块
- Zbus
- 异步任务:支持在工作队列中执行监听,避免阻塞发布者,且无需为订阅者开设独立线程。
- 跨核转发:新增实验性 IPC 代理,支持在多核/多域之间转发通道数据。
- 状态监控:支持按名称查找通道,并可监控消息发布延迟(Age)。
- TF-M 从 2.2.0 升级到 2.2.2,NS interface简化
- native_sim 支持交叉编译