2025-04-09 5:00 AM - last edited on 2025-04-09 9:05 AM by Andrew Neil
We’re working on a custom board based on the STM32U5 series. We've already developed the low-level drivers, and now we’re moving on to the firmware application layer. We’re currently evaluating RTOS options and considering FreeRTOS and Zephyr.
Some questions we have regarding Zephyr:
What is the current maturity level of Zephyr in terms of STM32U5 support? Is it considered stable for production use?
Is Zephyr officially supported by ST?
Specifically:
Does ST actively contribute to the official Zephyr repository?
Are STM32U5 boards and drivers maintained by ST within that repo?
What is the relationship between Zephyr drivers and STM32Cube HAL?
Does Zephyr reuse or wrap the STM32 HAL drivers (e.g., from STM32CubeU5)?
Or does it provide a fully independent hardware abstraction layer?
Our development environment is currently based on STM32CubeIDE v1.18.0, and we’ve been using CubeMX to generate initialization code.
Can Zephyr be integrated into this workflow?
Is there any way to use Zephyr “on top” of CubeMX-generated projects, or is a full migration to Zephyr's build system (CMake + West) required?
Any insights or recommendations from those who have worked with Zephyr on STM32U5 (especially in production) would be greatly appreciated!
2025-04-09 9:08 AM
FreeRTOS certainly has the edge on maturity - it's been around since the turn of the century!
2025-04-10 6:28 AM
Hello @ALong.4,
1. Zephyr is officially supported by ST, contributing to the official zephyr repository and support the community through various channels (GitHub, Discord, direct customer support, ST Community..). However, the main focus remains on the Cube solution, so we cannot provide the same support level for the moment!
2. The STM32U5 series has been actively supported and maintained within the Zephyr project and is stable for production use (we already have customers in production with U5/Zephyr).
The STM32CubeMCU packages are stored under zephyr hal_stm32 module which provides the required STM32cube packages, dtsi files and libraries needed to build a Zephyr application running on STM32U5 series.
3. STM32Cube APIs are used for Zephyr drivers developments, this allows the reuse of validated code and factorization of HAL, LL or CMSIS files, so you can mix Zephyr and STM32Cube APIs in your application (Use STM32Cube in your application)
4. Regarding the development environment, STM32CubeIDE (in later versions) supports CMake, which can be used to build Zephyr applications. (check STM32CubeIDE — Zephyr Project Documentation), but the zephyr configuration is done using device tree and the CubeMX- generated code cannot be used if you intend to use Zephyr drivers.
You can also check this link for supported SoC/Board/drivers : Supported Boards and Shields — Zephyr Project Documentation
Hope that helps!
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.