cancel
Showing results for 
Search instead for 
Did you mean: 

FreeRTOS vs Zephyr on STM32U5 – Support, Maturity, Integration with STM32CubeIDE

ALong.4
Associate II

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:

  1. What is the current maturity level of Zephyr in terms of STM32U5 support? Is it considered stable for production use?

  2. Is Zephyr officially supported by ST?
    Specifically:

  3. 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?

  4. 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!

4 REPLIES 4

FreeRTOS certainly has the edge on maturity - it's been around since the turn of the century!

 

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.
Sarra.S
ST Employee

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.

ALong.4
Associate II

Hi @Sarra.S ,

thank you for detailed response.

Since our application needs to go low power, we would take advantage of Zephyr Power Management (Device Runtime Power management):

 

Thank you,

Alessandro

Sarra.S
ST Employee

Hello @ALong.4

The STM32U5 series is PM aware, but we don't have such a list, you'll have to check for the peripherals you're going to use! 

Regarding the power states, they are defined by pm_device_state. In general power states with higher indexes will offer greater power savings and have higher wake latencies.

These are the device states: 

SarraS_0-1744707400013.png

and the default state depends on the soc/board configuration, you can customize your board config to add/ delete some stop modes and transition from a mode to another after reaching the residency value! 

Check: Device Power Management — Zephyr Project Documentation 

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.