Zephyr v3.4.0在2023.6.16按计划正式release
Release 文件
https://github.com/zephyrproject-rtos/zephyr/releases/tag/v3.4.0Release Notes
https://docs.zephyrproject.org/latest/releases/release-notes-3.4.htmlRelease Blog
https://www.zephyrproject.org/announcing-general-availability-of-zephyr-3-4/
https://www.zephyrproject.org/announcing-general-availability-of-zephyr-3-4-zh/
官方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
内容简要
修补漏洞
- CVE-2023-1901
- CVE-2023-1902
2023.7.4才会解禁揭露
https://docs.zephyrproject.org/latest/security/vulnerabilities.html
API变化
- mcuboot,hawkbit,updatehub构建Kconfig依赖配置项变动
- sensor driver API 文档变化:
sensor_trigger_set
的trig
由应用分配内存并需要保持 - 增加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