Zephyr v4.2.0 已发布,该版本支持截止日期为 2026.3.18。
-
Release 文件 https://github.com/zephyrproject-rtos/zephyr/releases/tag/v4.2.0
-
Relase Notes https://docs.zephyrproject.org/latest/releases/release-notes-4.2.html
-
Release Blog https://www.zephyrproject.org/zephyr-rtos-4-2-now-available-introduces-renesas-rx-support-usb-video-class-and-more/
-
迁移指南(从 4.1.0 迁移到 4.2.0) https://docs.zephyrproject.org/latest/releases/migration-guide-4.2.html
-
配套视频 https://www.youtube.com/watch?v=25xrHzeaw5w
官方 Release 博客详细概述 v4.2.0 新功能和亮点的摘要,Release note 可以找到细节,视频对重大变化进行说明和新功能演示,本文一二级标题列出主要更新内容,正文文字列出个人关注的内容。
重大变化
-
加入 Renesas RX 架构支持
-
新增 USB Video Class 驱动
-
在 Twister 中引入 Power Harness 测试,使用硬件电源监视器执行自动数据收集和分析,用于电流检测与结果验证
-
全面支持 MQTT 5.0
-
蓝牙协议栈中新增加 HFP/AG/HF
-
zbus API 到 1.0.0,API 状态已稳定
-
新增 96 个主板和 22 个扩展板
内容摘要
修补漏洞
详细的说明可以在 https://docs.zephyrproject.org/latest/security/vulnerabilities.html 找到
-
CVE 2025-27809 TLS 客户端可能会无意中跳过服务器身份验证
-
CVE 2025-27810 TLS 握手过程中潜在的身份验证绕过
-
CVE 2025-2962
dns_copy_qname
中有无限循环 -
CVE 2025-52496 AESNI 中有竞争发生
-
CVE 2025-52497 解析 PEM encrypted 资料时堆读取不足
-
CVE 2025-49600 LMS 验证中未检查返回值可导致绕过签名
-
CVE 2025-49601
mbedtls_lms_import_public_key()
读取越界 -
CVE 2025-49087 Timing side-channel in block cipher decryption with PKCS#7 padding
-
CVE 2025-48965 使用 mbedtls_asn1_store_named_data() 后出现空指针取消引用
-
CVE 2025-47917 Misleading memory management in mbedtls_x509_string_to_names()
-
CVE 2025-7403: 2025-09-05 解禁
API 变化
删除
-
删除已弃用的 net_buf_put() 和 net_buf_get() API 函数
-
删除已弃用的 include/zephyr/net/buf.h 头文件
-
移除 --disable-unrecognized-section-test Twister 选项。该选项已成为默认行为
-
删除已弃用的 kscan 子系统
-
删除 meas,ms5837 并替换为 meas,ms5837-30ba 和 meas,ms5837-02ba
-
从 video_driver_api 中删除 get_ctrl 驱动程序 API
-
删除 CONFIG_I3C_USE_GROUP_ADDR 和对 I3C 设备组地址的支持
弃用
-
CONFIG_SCHED_DUMB 和 CONFIG_WAITQ_DUMB 弃用。请用 CONFIG_SCHED_SIMPLE 和 CONFIG_WAITQ_SIMPLE 替代
-
CONFIG_LWM2M_ENGINE_MESSAGE_HEADER_SIZE 弃用。 标头大小应包含在消息大小中,使用 CONFIG_LWM2M_COAP_MAX_MSG_SIZE
-
TLS 凭证类型 TLS_CREDENTIAL_SERVER_CERTIFICATE 弃用,用 TLS_CREDENTIAL_PUBLIC_CERTIFICATE 替代
-
arduino_uno_r4_minima 和 arduino_uno_r4_wifi 开发板弃用,用 arduino_uno_r4 开发板替代
-
esp32c6_devkitc 板目标弃用,替换为 esp32c6_devkitc/esp32c6/hpcore
-
xiao_esp32c6 板目标已被弃,替换为 xiao_esp32c6/esp32c6/hpcore
-
CONFIG_HAWKBIT_DDI_NO_SECURITY 弃用,hawkBit 服务器已不再支持匿名身份验证
-
CONFIG_BT_CONN_TX_MAX 弃用。与 CONFIG_BT_BUF_ACL_TX_COUNT 选项保持一致
-
已弃用的 CONFIG_CRYPTO_TINYCRYPT_SHIM 被移除
-
已弃用项 CONFIG_BT_MESH_USES_TINYCRYPT 被删除。使用 CONFIG_BT_MESH_USES_MBEDTLS_PSA 或 CONFIG_BT_MESH_USES_TFM_PSA
稳定版本 API 变更
- net_mgmt_request_handler_t 从 uint32_t 更改为 uint64_t
新增加
-
架构
-
移除 NIOS2 架构
-
ARCH_HAS_VECTOR_TABLE_RELOCATION
-
-
蓝牙:涉及音频,Host
-
构建系统
-
SB_CONFIG_MCUBOOT_MODE_SINGLE_APP_RAM_LOAD 单应用程序 RAM 加载
-
支持 load image 设置和选择
-
-
Counter: 新增 counter_reset()
-
调试
-
当选择 CONFIG_DEBUG_COREDUMP_MEMORY_DUMP_MIN 时,默认情况下为 ARM Cortex M 启用 CONFIG_DEBUG_COREDUMP_THREAD_STACK_TOP
-
CONFIG_DEBUG_COREDUMP_BACKEND_IN_MEMORY
-
CONFIG_DEBUG_COREDUMP_BACKEND_IN_MEMORY_SIZE
-
coredump
-
-
Display
-
标准化清除显示内容 API:display_clear()
-
CFB 可通过 cfb_draw_circle() 绘制圆圈
-
-
I2C
-
i2c_configure_dt().
-
i2c_configure_dt()
-
I2C_DEVICE_DT_DEINIT_DEFINE
-
I2C_DEVICE_DT_INST_DEINIT_DEFINE
-
-
I3C
-
CONFIG_I3C_MODE
-
CONFIG_I3C_CONTROLLER_ROLE_ONLY
-
CONFIG_I3C_TARGET_ROLE_ONLY
-
CONFIG_I3C_DUAL_ROLE
-
-
Kernel
-
K_TIMEOUT_ABS_SEC
-
timespec_add()
-
timespec_compare()
-
timespec_equal()
-
timespec_is_valid()
-
timespec_negate()
-
timespec_normalize()
-
timespec_from_timeout()
-
timespec_to_timeout()
-
k_heap_array_get()
-
-
LVGL
-
更新到 v9.3
-
支持多屏同时显示,支持输入设备和显示器绑定
-
SSD1327、SSD1320、SSD1322 和 ST75256 等显示器添加 L8/Y8 像素格式支持
-
CONFIG_LV_Z_COLOR_MONO_HW_INVERSION
-
-
LoRaWAN: lorawan_request_link_check()
-
Management
-
CONFIG_MCUBOOT_BOOTLOADER_MODE_FIRMWARE_UPDATER
-
CONFIG_MCUMGR_GRP_OS_RESET_BOOT_MODE
-
-
网络:涉及 Coap,DHCPv4,DNS,HTTP,IPv4,LwM2M,MQTT,OpenThread,SNTP, Sockets, WiFi,zperf
-
PCIe:CONFIG_NVME_PRP_PAGE_SIZE
-
电源管理
-
传感器
-
sensor_value_to_deci()
-
sensor_value_to_centi()
-
-
步进电机:stepper_stop()
-
Storage:flash_area_copy()
-
Sys
-
util_eq()
-
util_memeq()
-
sys_clock_gettime()
-
sys_clock_settime()
-
sys_clock_nanosleep()
-
-
USB:uvc_set_video_dev()
-
UpdateHub:updatehub_report_error()
-
Video: 改动了 API 和结构体,添加了软件视频生成器
-
ZBus
-
API 发布 1.0.0 版本,已稳定
-
runtime 观察者可以静态/动态分配内存
-
增加一些配置项
-
主板 & 扩展板
新增 96 个主板和 22 个扩展板,详见 release note。 国产芯片的有:
-
乐鑫 ESP32x:
-
Adafruit x6
-
adafruit_feather_esp32s2
-
adafruit_feather_esp32s2_tft
-
adafruit_feather_esp32s2_tft_reverse
-
adafruit_feather_esp32s3
-
adafruit_feather_esp32s3_tft
-
adafruit_feather_esp32s3_tft_reverse
-
-
乐鑫 x1 esp32_devkitc
-
Lilygo x4
-
tdongle_s3
-
ttgo_tbeam
-
ttgo_toiplus
-
twatch_s3
-
-
-
-
M5Stack x1 m5stack_fire
-
微雪 x1 esp32s3_matrix
-
-
博流 BL60X
-
安信可 x1 ai_wb2_12f
-
博流 x1 bl604e_iot_dvk
-
四博智联 x1 dt_bl10_devkit
-
-
沁恒 CH32V
-
WeAct Studio x1 bluepillplus_ch32v203
-
沁恒 x4
-
ch32v003f4p6_dev_board
-
ch32v006evt
-
ch32v303vct6_evt
-
linkw
-
-
驱动
涉及多个驱动,详见 release note。
实例
新增 34 个实例,详见 release note。
其它显著的变化
-
添加对 Armv8.1-M MPU 的 PXN(Privileged Execute Never)属性的支持
-
Mbed TLS 从 3.6.2 更新至 3.6.4
-
TF-M 从 2.1.1 更新至 2.1.2
-
更新所有带有外部 I2C 连接器(Qwiic、Stemma、Grove 等)的开发板,可以使用 zephyr_i2c 标签