Zephyr v3.4.0 release

Creative Commons
本作品采用知识共享署名

Zephyr v3.4.0正式release.

Zephyr v3.4.0在2023.6.16按计划正式release

官方Release博客说明了主要v3.4.0的重大修改,Release note可以找到细节,本文大二级标题列出主要更新内容,正文文字列出个人关注的内容。

主要增加/增强的功能

  • 输入子系统
  • 内存保护区子系统
  • 内存屏障API
  • 片段构建
  • RTC API
  • SMBus API
  • Cache API改为inline
  • 开始支持Xtensa的MMU
  • USB Device
    • UDC(USB device controller) API, nrf USBD controll 驱动已加入
    • USB device stack使用新的UDC API实现
  • 蓝牙支持PAwR(Periodic Advertising with Responses)
  • 改进twister

内容简要

修补漏洞

API变化

  • mcuboot,hawkbit,updatehub构建Kconfig依赖配置项变动
  • sensor driver API 文档变化:sensor_trigger_settrig由应用分配内存并需要保持
  • 增加input驱动和input子系统对接
  • 应用入口main由void main(void) 更改为 int main(void)
  • net if接口变化
  • MCUmgr 接口使用方式变化
  • DAC接口变化:dac_channel_cfg增加buffered 标志
  • 分离sys和链接器的Iterable sections头文件
  • cache API全部变为Inline
  • 蓝牙HCI头文件重构
  • 移除Pinmux API
  • 弃用prj_<board>.conf方式的配置,使用片段代替
  • 弃用PTHREAD_BARRIER_DEFINE
  • 弃用旧版 Ztest API。所有新测试都应使用新的 Ztest API
  • 特定芯片nRF51 和 nRF52,STM32Cube部分功能弃用替换
  • SYS_INIT回调不再需要device参数
  • 将 spi_config cs (spi_cs_control) 从指针更改为结构成员。
  • 增加flash_ex_op()功能介绍。用于执行额外的Flash操作
  • 增加RTC API,实现了pcf8523和mc146818两种RTC驱动
  • 增加辅助显示驱动,只能显示字符的显示器,例如1602
  • 增加内存屏障API

内核变动

删除了___cpu_t_SIZEOF, _STRUCT_KERNEL_SIZE, K_THREAD_SIZEOF 和 _DEVICE_STRUCT_SIZEOF

涉及涉及ARC/ARM/ARM64/NIOS2/RISC-V/SPARC体系架构

  • ARC增加MPUv8支援
  • Cortex-M55启用fp16
  • ARM实现新的cache管理API
  • ARM增加CPU idle hook函数z_arm_on_enter_cpu_idle()
  • ARM支持产生zImage headers
  • 为 v8r aarch64 启用 FPU 和 FPU_SHARING
  • ARM64 引入并启用安全异常堆栈
  • Xtensa开始支持MMU
  • RISC-V可以设置PMP的粒度
  • RISC-V支持单线程模式(Zephyr不跑多线程)

涉及蓝牙音频/Host/定位

  • 支持蓝牙5.4
  • 新增Mesh 1.1

增加4种soc系列和30多种board

  • esp32-s3

涉及构建系统和基础设施

  • 修复构建系统问题
  • 改进构建系统
  • 引入扩展/替换image签名机制
  • Twister 改进
  • 修改和引入新的overlay,EXTRA_CONF_FILE取代OVERLAY_CONFIG. EXTRA_ZEPHYR_MODULES取代ZEPHYR_EXTRA_MODULES. 引入EXTRA_DTC_OVERLAY_FILE

涉及驱动和传感器的增加和修改

  • 增加辅助显示驱动模型和驱动(HD44780/Noritake Itron/Grove LCD)
  • 增加RTC驱动模型和驱动
  • 导入Input子系统
  • 增加NVMe的支持

涉及网络

涉及USB

子系统和库的修改

  • 涉及文件系统
  • 涉及IPC
  • 涉及MCUmgr, MCUmgr API已标记为稳定
  • 改进POSIX API,缓解竞争
  • 增加保留内存区子系统
  • RTIO改进
  • 电源管理改进
  • 涉及HAL增加和更新
  • 涉及MCUboot的配置修改
  • 涉及Trusted Firmware-M
  • zcbor更新到0.7.0

测试用例和示例代码更新

SDK

Zephyr SDK 0.16.1于2023.5.12发布,构建v3.4.0建议更新到该最新的SDK
https://github.com/zephyrproject-rtos/sdk-ng/releases/tag/v0.16.1