September 2020 UM2285 Rev 2 1/37
1
UM2285
User manual
Development guidelines for STM32Cube Expansion Packages
Introduction
STM32Cube is an STMicroelectronics original initiative to significantly improve designer's
productivity by reducing development effort, time and cost. STM32Cube covers the whole
STM32 portfolio.
STM32Cube includes:
A s
et of user-friendly software development tools to cover project development from the
conception to the realization, among which STM32CubeMX, a graphical software
configuration tool, STM32CubeIDE, an all-in-one development tool, and
STM32CubeProgrammer (STM32CubeProg), a programming tool.
STM32Cube MCU and MPU Packages, comprehensive embedded-software platforms
specific to each microcontroller and microprocessor series (such as STM32CubeL4 for
the STM32L4 Series), which include STM32Cube hardware abstraction layer (HAL),
STM32Cube low-layer APIs, a consistent set of middleware components, and all
embedded software utilities.
STM32Cube Expansion Packages, which contain embedded software components that
complement the functionalities of the STM32Cube MCU and MPU Packages with
middleware extensions and applicative layers, and examples.
For a complete description of STM32Cube, refer to Chapter 3.
Figure 1. STM32Cube MCU and MPU Package components
This document describes the c
ompatibility requirements for STM32Cube Expansion
Package development that ensure a proper match with STM32Cube MCU and MPU
Package and tools, and overall consistency within the STM32Cube ecosystem, enabling
rapid application development based on proven and validated software elements.
Readers of this document must be familiar
with STM32Cube architecture, HAL and LL APIs,
and programming model. A complete documentation set is available in the STM32Cube
MCU and MPU Packages page on www.st.com.
MSv49209V2
Middleware
level
(1)
Utilities
Application level
demonstrations
HAL and LL
APIs
(1) The set of middleware components depends on the product Series.
User
application
Evaluation
boards
Discovery
boards
STM32 Nucleo
boards
Dedicated
boards
USB FAT file system RTOSTouch library Graphics
Hardware abstraction layer APIs (HAL)
Board support package (BSP)
Low-layer APIs (LL)
Utilities
CMSIS
www.st.com
Contents UM2285
2/37 UM2285 Rev 2
Contents
1 General information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 References and acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 What is STM32Cube? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4 STM32Cube Package and
STM32Cube Expansion Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.1 Supported hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.2 STM32Cube Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.3 STM32Cube Expansion Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5 STM32Cube Expansion packaging requirements . . . . . . . . . . . . . . . . 10
5.1 Example development with STM32CubeMX . . . . . . . . . . . . . . . . . . . . . . 10
5.2 IDE and environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.3 Extension of STM32Cube Expansion Package drivers and middleware . 13
6 New middleware integration in STM32Cube Expansion Package . . . 15
6.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6.2 Middleware architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6.2.1 Middleware overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6.2.2 Middleware architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6.2.3 Middleware repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6.2.4 Middleware rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6.2.5 Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6.2.6 High interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.2.7 Low interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.2.8 Application architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.3 Delivery in object format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
7 Software quality requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
8 Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36