STM32Cube SDK in Zephyr

Erwan Gouriou

Hi all,

There are growing number of STM32 based boards being ported in Zephyr
by the community. As part of ST, I can say that we are pleased to contribute
this way to Zephyr impact in IoT world.

In order to ease porting of STM32 devices, we'd like to introduce STM32Cube
SDK into Zephyr. Aim is to make porting fast and easy thanks to ST CSMIS
files, reduce code duplication and provide mature software with STM32Cube
adaptation layers (HAL and LL).

About STM32Cube CMSIS files:
Proposition for now is to move progressively towards the support of
on available STM32 based boards and that new boards include STM32Cube CMSIS
files from start.

About STM32Cube Abstraction layers:
HAL and LL are 2 flavors of component based porting layers provided by
*Cube HAL provides high level, complete porting API
*Cube LL (Low Layers) provides basic set, optimized porting API
They could be used independently or mixed. HAL and LL provide abstraction
for full
STM32 family. Hence, one single HAL/LL based driver could be used on all
Implementing HAL/LL based drivers is not mandatory. Though, by maximizing
reuse and providing proven maturity SW, using HAL/LL could be a good asset
STM32 Zephyr devices.
HAL/LL based drivers can co-exist with already available drivers.

STM32Cube SDKs (one per series) are available for download here:

If you're curious:
I've made a first change to introduce STM32Cube on stm32f1 series in Zephyr
implement serial driver with HAL/LL:
STM32Cube is also being brought on stm32l4 in nucleo_l476rg porting by


Join to automatically receive all group messages.