Drivers and Middleware for STM32 ARM Cortex-M MCUs
STM32Cube is free embedded software from ST
that provides all the drivers and middleware components necessary
to get up and running quickly on STM32 ARM Cortex-M microcontrollers. STM32Cube
STM32Cube is distributed on a per device family basis. Each supported
family has a single STM32Cube
download that gathers together all the generic embedded software
components required to develop an application for that family. For
example, there is a single download that provides everything needed
for STM32F4 parts, and a separate single download that provides everything
needed for STM32F0 parts. Device support is being actively extended,
and future STM32 families will be launched with STM32Cube support.
A common abstraction layer is used to ensure maximum portability between
STM32Cube Building Blocks
As would be expected, the STM32Cube embedded software is
structured into a
set of layers of increasing abstraction: Start up code and low level hardware
interfaces are found in the bottom layer, and pre-configured examples
are found in the top layer - with peripheral drivers, component
drivers and middleware found in the layers in between. Each layer
uses the interfaces provided by the layer below it - with the abstraction
layer ensuring portability across STM32 ARM Cortex-M device families.
Examples, applications and demonstrations are pre-configured, buildable
and executable projects that both facilitate learning by demonstrating
how to use the drivers, and speed development by providing a known
good starting point from which applications can be developed.
Examples are provided at the peripheral driver level. They
are simple projects that demonstrate how to use a driver.
Applications are provided at the middleware level. They
are larger than the projects provided at the driver level,
and demonstrate how to use middleware components simultaneously
with multiple different peripheral drivers.
Demonstrations are provided at the eval and Discovery board
level. They are very comprehensive projects that make use
of all the facilities available on their target hardware platform.
That means they make use of multiple different middleware
components and drivers in a single project. Demonstration
projects run under the control of FreeRTOS.
Example, application and demonstration project files are provided for the
(which uses the ARM GCC compiler)
and Keil development tools, and target a range of off-the-shelf STM32
Evaluation, Discovery, STM32 Nucleo and dedicated boards.