You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
STM32Cube is an STMicroelectronics original initiative to ease the developers life by reducing efforts, time and cost.
STM32Cube covers the overall STM32 products portfolio (MCU and MPU). It includes a comprehensive embedded software platform, delivered for each STM32 series.
The CMSIS modules (core and device) corresponding to the ARM(tm) core implemented in this STM32 product.
The STM32 HAL-LL drivers : an abstraction drivers layer, the API ensuring maximized portability across the STM32 portfolio.
The BSP Drivers of each evaluation or demonstration board provided by this STM32 series.
A consistent set of middlewares components such as RTOS, USB, FatFS, Graphics, TCP/IP, BLE, STM32_TouchSensing_Library...
A full set of software projects (basic examples, applications or demonstrations) for each board provided by this STM32 series.
GitHub is a new publication model for the STM32Cube MCU embedded software. Three models of publication are proposed:
The MCU Package : monolithic STM32Cube software modules, per STM32 MCU series (Drivers, Middlewares, Utilities, Examples Projects) in an unique repo. The usual name of a STM32MCU Package is STM32Cubexx, xx corresponding to the STM32 series). Please refer to the chapter STM32Cube MCU Packages below.
The MCU components : parts of the MCU Packages, proposed as individual repos, allowing the user to select and get only the required software functions. Please refer to the chapter STM32Cube MCU Components below.
The X-CUBE : Expansion softwares, propose embedded software components that complement the functionalities of the STM32Cube.
A set of MCU Utilities : Various Utility features proposed in dedicated repos.
Please note that a MPU offer is also proposed for the STM32 MPU Products. You can refer to the repo STM32MPU_EmbSW_Overall_Offer.
Description
This repo is a simple Readme describing all STM32 MCU related GitHub projects, the overall offer for the STM32 MCU products.
This new publication channel of the STM32Cube embedded software components will provide new added values :
In complement to the MCU Package zip files today proposed on st.com, the capability for STM32 customers to get a configuration management based delivery (Git)
A more direct communication between developers, thanks to the Issues features. Caution : only software related questions will be taken into account. Any other subject must be submitted to the ST Community forum
Thanks to the deployment of a Contributor License Agreement feature (please refer to each repo CONTRIBUTING guide), the Pull-Request permits also to take into account customers proposed updates and enrich the STM32Cube FW offer.
For general communication and support, you can use
The STM32Cube expansion software contains embedded software components that complement the functionalities of the STM32Cube and/or enable the usage of a multitude of ST devices in domains such as of sensing, power management, connectivity or audio, together with the most appropriate STM32 MCUs.
STM32Cube function pack for IoT node with BLE connectivity to view real-time time-of-flight sensors data.
STM32Cube MCU Components
As mentioned above, the STM32Cube Components is an alternative delivery model to the STM32 Packages. In this case, each module is delivered as individual repos, allowing the customer to select and download only the pertinent features.
Components available today : CMSIS - HAL/LL - Base MW (USB, FatFS, FrreRTOS, LwIP)
Components upcoming : Other MW - BSP - Utilities
In each module README file you will find the cross compatibility information. When all modules will be available a set of new Manifest files (series by series) will be proposed to drive the user.
The HAL Drivers MCU Components propose the HAL and LL Drivers modules controlling all the HW IPs embedded in the STM32 products.
HAL Drivers:
A set of portable abstraction APIs offering high level services, built around standalone processes. The HAL drivers are functionalities oriented, example: for the Timer peripheral, the APIs could be split into several categories following the functions offered by the IPs (Basic timer, capture, PWM...) for a communication IP: an initialisation function, eventually a configuration function and data transfer services (polling, interruption or DMA based)
The compatibility SHALL be guaranteed across all the STM32 families for the generic APIs, including generic macros and common structures defines. Any specific feature is given in a dedicated extension model available in the associated extension files
LL Drivers:
Low Layer Drivers: a set of basic functions with direct hardware access (no standalone process), this layer can be called either by applications or by the HAL drivers.
HAL and LL Drivers are provided in the same module/repo
The dynamic usage of HAL APIs is provided thru projects examples, available in the respective STM32Cube MCU Packages STM32Cubexx where xx correspond to the series
The BSP Drivers MCU Components propose the BSP Drivers modules, which are constituted from the:
STM32Cube BSP Boards Drivers, based on the HAL drivers, and providing a set of high level APIs allowing a quick access to the boards services (e.g., audio, graphics, access to external memories).
STM32Cube BSP Components Drivers providing a set of high level APIs allowing a quick access to the (e.g., audio codecs, LCD drivers, SD cards, MEMS). The link between these external components and the HAL drivers (e.g., a SD card and the OSPI/QSPI HAL driver) is done within the BSP Boards drivers.
NOTE: A number of BSP components drivers (particularly of MEMS) come in two forms, each addressing a different purpose. For each one of such BSP components drivers, two repositories are available as explained below:
PID: Platform-Independent Drivers. Recognizable to their repositories' names <bspcomp> (e.g., hts221). Are low-level drivers allowing direct access to components' registers. These drivers are independent of any software platform, as the acronym PID suggests. The complete list can be found here.
STM32: STM32Cube-compatible drivers. Recognizable to their repositories' names stm32-<bspcomp> (e.g., stm32-hts221). Are hardware-abstracted drivers, specially designed to be compatible with the STM32Cube software offer, as the stm32- prefix suggests. The complete list is provided below (refer particularly to tables MEMS and Temperature Sensor).
The Middleware Libraries MCU Components propose the following set of stacks common to all STM32xx series very useful to design number of middleware-based user applications.
These Middleware Libraries delivered in standalone mode, permit to get in advance, compared to the full FW Packages, the new features or updates. Please take a look to the Release Note to verify the compatibility information.
FatFS library: A set of platform- and storage device-independent services allowing user application to access storage devices and manage files.
FreeRTOS library: A set of platform-independent services implementing a real-time operating system kernel for embedded devices and providing methods for multiple threads or tasks, mutexes, semaphores and software timers.
LwIP library: LwIP (Lightweight IP) is an open-source TCP/IP stack designed to reduce resource usage while still offering a full-scale TCP stack. Among other services, it also offers a network interface, buffers and a memory management section, and an operating system emulation layer.
USB Device library: A set of services allowing the configuration and the control of the USB on STM32 MCUs in device mode. It is mainly based on the "Core" and the "Class" modules including the common and most used features and APIs.
USB Host library: A set of services allowing the configuration and the control of the USB on STM32 MCUs in host mode. It is mainly based on the "Core" and the "Class" modules including the common and most used features and APIs.
The dynamic usage of Middleware Libraries is provided thru projects examples, available in the respective STM32Cube MCU Packages STM32Cubexx where xx correspond to the series. Additionnal projects examples are also available under stm32u5-classic-coremw-apps.