Zephyr V4.2.0 发布

Zephyr v4.2.0 如期在 2025.7.18 发布,该版本支持截止日期为 2026.3.18。

官方 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()
  • 调试
    • coredump
      • 当选择 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
  • 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 标签