前言
2023年Zephyr开发者大会(ZDS)于6月27日至30日在捷克布拉格隆重举行。与以往两次不同,本次ZDS由Zephyr项目规划和管理,并作为首届嵌入式开源峰会(EOSS)的一部分进行。在这个令人期待已久的盛会中,全球Zephyr开发者们共同探讨了Zephyr实时操作系统(RTOS)的最新技术与发展趋势。作为一款开源、灵活和可扩展的嵌入式实时操作系统,Zephyr项目在2014年由英特尔发起,2016年作为Linux基金会项目正式面向公众启动,得到了全球范围内的广泛关注和采用。
ZDS 2023共70余个技术报告,涵盖了使用指导与展示、新功能与技术、架构修改与操作系统、多核异构与虚拟化、模拟器、测试、工业流程与代码管理、安全性、应用案例、工具与调试等丰富多样的内容。湖大嵌入式实验室的小伙伴们将对本次大会的所有技术报告进行逐一收集、整理与分享,尽最大努力为Zephyr开发者提供ZDS 2023技术报告的开发经验、实践成果以及解决方案的参考。
今天分享第19篇技术报告,题目为:
“STM32上的Zephyr:你需要了解的内容”
作者简介

Erwan是STMicroelectronics公司的员工,同时也是Linaro组织的成员,拥有超过15年的嵌入式软件开发经验。自2016年底以来,他一直在Zephyr项目中做出贡献,涉及到设备树引入、板级配置以及外设模块等通用领域,但他主要专注于STM32平台,也是该平台的子系统维护者。
文章简介
本文将探讨如何通过设备树配置STM32的时钟设置,以及STM32设备上的电源管理支持状态。同时也会讨论如何使用STM32和TF-M固件的支持情况。这些是在Zephyr中涉及STM32设备时最常被问到的问题之一。在本文中,STM32维护者Erwan将解答这些问题,提供使用Zephyr在STM32上时尽可能少出现问题所需的所有信息。此外,本文也将回顾整个STM32子系统的支持状况,以及相关的未来挑战。
STM32CubeMCU软件包存储在zephyr hal_ stm32模块下
STM32Cube API用于Zephyr驱动程序开发
支持混合使用Zephyr和STM32Cube APIs

配置STM32开发板
1. 选择STM32开发板
识别受支持的STM32部件
添加未支持的STM开发板
添加内存大小变量


2.时钟配置
红色圆圈表示固定时钟,蓝色圆圈表示锁相环(PLL),黄色圆圈表示核心源时钟,灰色圆圈表示外设总线速度。

使用设备树对STM32时钟进行配置。


3.配置外设

常用STM32设备设置:pinctrl
使用pinctrl子系统配置单板上一个或者一组引脚的功能和特性。


常用STM32设备设置:DMA

DMA基于“dmas”属性启用
配置取决于DMA兼容:
st,stm32-dma-v1
st,stm32-dma-v2
st,stm32-dma-v2bis
st,stm32-dmamux
计划在.dtsi文件中配置DMA设备属性
必须直接在驱动程序中检查DMA支持
常用STM32设备设置:域时钟
可以使用 48MHz时钟、特定的PLL输入输出、持续处于停止模式的时钟等。



设备级别

Trusted Firmware-M
Trusted Firmware-M(TF-M)是IoT安全框架的参考实现。它定义并实现了一个架构和一组软件组件,旨在解决物联网产品中的一些主要安全问题。

下一步计划