This article introduces the structure and the content of the STM32CubeMP2 package, the embedded software part of STM32Cube™. This embedded software supports running on the Arm® Cortex®-M33 coprocessor and Arm® Cortex®-M0+ coprocessor present only on STM32MP25x lines . It references also other interesting wiki articles to better understand and use the STM32CubeMP2 package.
1. What is the STM32CubeMP2 package[edit | edit source]
STM32CubeMP2 Package, running on the Arm® Cortex®-M33 processor, consists of:
- The hardware abstraction layer (HAL), enabling portability between different STM32 devices via standardized API calls
- The low-layer API (LL), a light-weight, optimized, expert oriented set of APIs designed for runtime efficiency and so enhanced performance
- The board support package drivers (BSP), based on HAL drivers, an API set for the evaluation board and third-party components
- A collection of middleware components (such as FreeRTOS)
- A collection of examples, running on an MPU board and allowing demonstration of a basic implementation of features from a set of IPs
![]() |
The HAL, LL and BSP are equally applicable for [| Arm® Cortex®-M0+ coprocessor] which is present on STM32MP25x lines ![]() |
STM32CubeMP2 package uses components such as OpenAMP and ResourceManager that allow easy communication and resource sharing between main processors running with Linux on Arm® Cortex®-A35, and MCU coprocessors running on Arm® Cortex®-M33.
- OpenAMP is a library implementing the remote processor service framework (RPMsg) which is a virtio-based messaging bus that allows a local processor to communicate with remote processors available on the system.
- ResourceManager is a utility that handles peripheral-accessibility requests and system-resource configuration.
![]() |
Note:
|
2. Software architecture overview[edit | edit source]
Software architecture overview is described in STM32CubeMP2 Package architecture.
3. STM32CubeMP2 Package structure[edit | edit source]
This chapter describes the structure of the STM32CubeMP2 Package (drivers, middleware components, etc.).
STM32CubeMP2 Package offers a highly portable hardware abstraction layer (HAL), built around a generic and modular architecture.
This HAL allows the upper layers, which are middleware and application, to implement functions whenever STM32MP25/23 device is used. This improves the library code reusability and guarantees easy portability from one device to another. STM32CubeMP2 Package also offers a highly portable low layer interface (LL), which allows a quick, simple, and optimized API to access the STM32MP2 registers.
The STM32CubeMP2 Package is provided with the structure shown below.
4. STM32CubeMP2 Package content[edit | edit source]
This chapter describes the content of the STM32CubeMP2 Package (drivers, middleware components, etc.).
4.1. Drivers[edit | edit source]
The Drivers folder contains all the STM32Cube Drivers, including BSP and HAL drivers.
The STM32CubeMP2 Package provides all driver user manuals:
- The BSP user manual for STM32MP257x-EV1 Evaluation board
is available in Drivers/BSP/STM32MP257F-EV1/STM32MP257F-EV1_BSP_User_Manual.chm
- The BSP user manual for STM32MP257x-DK Discovery kit
is available in Drivers/BSP/STM32MP257F-DK/STM32MP257F-DK_BSP_User_Manual.chm
- The HAL user manual is available in Drivers/STM32MP2xx_HAL_Driver/STM32MP257Cxx_CM33_User_Manual.chm
The following chapters give the list of available BSP, HAL, and LL drivers.
4.1.1. HAL drivers[edit | edit source]
STM32CubeMP2 HAL Driver items | Description | CM33 | CM0+ |
---|---|---|---|
ADC |
ADC) * peripheral: * + Initialization and deinitialization functions * ++ Initialization and configuration of ADC * + Operation functions * ++ Start, stop, get result of conversions of regular * group, using 3 possible modes: polling, interruption or DMA. * + Control functions * ++ Channels configuration on regular group * ++ Analog watchdog configuration * + State functions * ++ ADC state machine management * ++ Interrupts and flags management* This driver provides firmware functions to manage the following * functionalities of the analog to digital convertor ( |
YES | NO |
ADC_EX |
ADC) * peripheral: * + Operation functions * ++ Start, stop, get result of conversions of ADC group injected, * using 2 possible modes: polling, interruption. * ++ Calibration * +++ ADC automatic self-calibration * +++ Calibration factors get or set * ++ Multimode feature when available * + Control functions * ++ Channels configuration on ADC group injected * + State functions * ++ ADC group injected contexts queue management* This driver provides firmware functions to manage the following * extended functionalities of the analog to digital convertor ( |
YES | NO |
BSEC |
OTP control(BSEC) peripheral: * + Initialization and deinitialization functions * + Peripheral control functions * + Peripheral state functions* This driver provides firmware functions to manage the following * functionalities of the boot and security and |
YES | NO |
CRC |
CRC) peripheral: * + Initialization and deinitialization functions * + Peripheral control functions * + Peripheral state functions * + Extended features functions* This driver provides firmware functions to manage the following * functionalities of the cyclic redundancy check ( |
YES | NO |
CRYP |
CRYP) peripheral: * + Initialization and deinitialization functions * + AES processing functions * + DES processing functions * + TDES processing functions * + DMA callback functions * + CRYP IRQ handler management * + Peripheral state functions* This driver provides firmware functions to manage the following * functionalities of the cryptography ( |
YES | NO |
CRYP_EX |
CRYP extension peripheral: * + Extended AES processing functions* This driver provides firmware functions to manage the following * functionalities of |
YES | NO |
DCACHE |
* This file provides firmware functions to manage the following
* functionalities of the DCACHE.
* + Initialization and configuration
* + Cache coherency command
* + Monitoring management
|
YES | NO |
DCMI |
DCMI) peripheral: * + Initialization and deinitialization functions * + I/O operation functions * + Peripheral control functions * + Peripheral state and error functions* This file provides firmware functions to manage the following * functionalities of the digital camera interface ( |
YES | NO |
DCMIPP |
DCMIPP (digital camera interface pixel pipeline) peripheral: * + Initialization and deinitialization functions * + I/O operation functions * + Peripheral control functions * + Peripheral state and error functions* This driver provides firmware functions to manage the following * functionalities of the |
YES | NO |
DMA |
DMA) peripheral: * + Initialization and deinitialization functions * + I/O operation functions * + Peripheral state and errors functions* This driver provides firmware functions to manage the following * functionalities of the direct memory access ( |
YES | YES |
DMA_EX |
DMA extension peripheral: * + Extended features functions* This driver provides firmware functions to manage the following * functionalities of the |
YES | NO |
DSI |
DSI peripheral: * + Initialization and deinitialization functions * + I/O operation functions * + Peripheral control functions * + Peripheral state and errors functions* This file provides firmware functions to manage the following * functionalities of the |
YES | NO |
ETH |
ETH) peripheral: * + Initialization and deinitialization functions * + I/O operation functions * + Peripheral control functions * + Peripheral state and errors functions* This driver provides firmware functions to manage the following * functionalities of the Ethernet ( |
YES | NO |
EXTI |
EXTI) peripheral: * + Initialization and deinitialization functions * + I/O operation functions* This driver provides firmware functions to manage the following * functionalities of the general purpose input/output ( |
YES | YES |
FDCAN |
* This driver provides firmware functions to manage the following
* functionalities of the flexible datarate controller area network
* (FDCAN) peripheral:
* + Initialization and deinitialization functions
* + I/O operation functions
* + Peripheral configuration and control functions
* + Peripheral state and error functions
|
YES | NO |
GPIO |
GPIO) peripheral: * + Initialization and deinitialization functions * + I/O operation functions * + Extended peripheral control functions* This driver provides firmware functions to manage the following * functionalities of the general purpose input/output ( |
YES | YES |
HAL |
HAL, Tick, SYSCFG, DBGMCU: * + Initialization and deinitialization functions * + HAL initialization and deinitialization functions * + Configure the source of the time base * + HAL control functions * + Tick management (get/set/inc/priority/suspend/resume) * + Get HAL revision, the device revision identifier, the device identifier * + Enable/disable DBG wake up on AIEC * + Enable/disable the debug module during Domain1 SLEEP mode * + Enable/Disable the debug module during Domain1 STOP mode * + Enable/Disable the debug module during Domain1 STANDBY mode * + Configure the internal voltage reference buffer voltage scale * + Configure the internal voltage reference buffer high impedance mode * + Tune the internal voltage reference buffer (VREFBUF) * + Enable/disable the internal voltage reference buffer (VREFBUF) * + Ethernet PHY interface selection either MII or RMII * + Analog switch control for dual analog pads * + Enable/disable the booster to reduce the total harmonic distortion of the analog * + Enable/power-down the I/O compensation cell * + To Enable/disable optimize the I/O speed when the product voltage is low * + Code selection for the I/O compensation cell* This driver provides firmware functions to manage the following * functionalities of |
YES | YES |
HASH |
HMAC processing in polling mode * + HASH or HMAC processing in interrupt mode * + HASH or HMAC processing in DMA mode * + Peripheral state methods * + HASH or HMAC processing suspension/resumption* This driver provides firmware functions to manage the following * functionalities of the HASH peripheral: * + Initialization and deinitialization methods * + HASH or |
YES | NO |
HASH_EX |
SHA-224 and SHA-256 * algorithms: * + HASH or HMAC processing in polling mode * + HASH or HMAC processing in interrupt mode * + HASH or HMAC processing in DMA mode * Additionally, this file provides functions to manage HMAC * multibuffer DMA-based processing for MD-5, SHA-1, SHA-224 * and SHA-256.* This driver provides firmware functions to manage the following * functionalities of the HASH peripheral for |
YES | NO |
HSEM |
* This file provides firmware functions to manage the following
* functionalities of the semaphore peripheral:
* + Semaphore take function (2-Step procedure) , non blocking
* + Semaphore fastTake function (1-Step procedure) , non blocking
* + Semaphore status check
* + Semaphore clear key set and get
* + Release and release all functions
* + Semaphore notification enabling and disabling and callback functions
* + IRQ handler management
|
YES | YES |
ICACHE |
* This file provides firmware functions to manage the following
* functionalities of the instruction cache (ICACHE).
* + Initialization and configuration
* + Invalidate functions
* + Monitoring management
* + Memory address remap management
|
YES | NO |
IPCC |
IPCC). * + Initialization and deinitialization functions * + Configuration, notification, and interrupts handling * + Peripheral state and error functions* This file provides firmware functions to manage the following * functionalities of the inter-processor communication controller * peripherals ( |
YES | YES |
I2C |
I2C) peripheral: * + Initialization and deinitialization functions * + I/O operation functions * + Peripheral state and errors functions* This driver provides firmware functions to manage the following * functionalities of the inter integrated circuit ( |
YES | YES |
I2C_EX |
I2C extended peripheral: * + Filter mode functions * + WakeUp mode functions * + FastModePlus functions* This driver provides firmware functions to manage the following * functionalities of |
YES | YES |
I2S |
I2S) peripheral: * + Initialization and deinitialization functions * + I/O operation functions * + Peripheral state and errors functions* This file provides firmware functions to manage the following * functionalities of the integrated interchip sound ( |
YES | NO |
I3C |
* This file provides firmware functions to manage the following
* functionalities of the improvement inter integrated circuit (I3C) peripheral:
* + Initialization and deinitialization functions
* + I/O operation functions
* + Peripheral state and errors functions
|
YES | YES |
IWDG |
IWDG) peripheral: * + Initialization and start functions * + I/O operation functions* This file provides firmware functions to manage the following * functionalities of the independent watchdog ( |
YES | YES |
LPTIM |
LPTIM) peripheral: * + Initialization and deinitialization functions. * + Start/Stop operation functions in polling mode. * + Start/Stop operation functions in interrupt mode. * + Reading operation functions. * + Peripheral state functions.* This driver provides firmware functions to manage the following * functionalities of the low power timer ( |
YES | YES |
LTDC |
LTDC peripheral: * + Initialization and deinitialization functions * + I/O operation functions * + Peripheral control functions * + Peripheral state and errors functions* This file provides firmware functions to manage the following * functionalities of the |
YES | NO |
MMC |
MMC) peripheral: * + Initialization and deinitialization functions * + I/O operation functions * + Peripheral control functions * + MMC card control functions* This driver provides firmware functions to manage the following * functionalities of the secure digital ( |
YES | NO |
MMC_EX |
MMC) peripheral: * + Extended features functions* This driver provides firmware functions to manage the following * functionalities of the secure digital ( |
YES | NO |
PKA |
* This driver provides firmware functions to manage the following
* functionalities of public key accelerator (PKA):
* + Initialization and deinitialization functions
* + Start an operation
* + Retrieve the operation result
|
YES | NO |
PSSI |
* This file provides firmware functions to manage the following
* functionalities of the parallel synchronous slave interface (PSSI) peripheral:
* + Initialization and deinitialization functions
* + I/O operation functions
* + Peripheral state and errors functions
|
YES | NO |
PWR |
* This driver provides firmware functions to manage the following
* functionalities of the power controller (PWR) peripheral:
* + Initialization and deinitialization functions
* + Peripheral control functions
* + Peripheral extended features functions
|
YES | NO |
PWR_EX |
* This driver provides firmware functions to manage the following
* functionalities of PWR extension peripheral:
* + Peripheral extended features functions
|
YES | NO |
OSPI |
* This driver provides firmware functions to manage the following
* functionalities of the OSPI interface (OSPI).
* + Initialization and deinitialization functions
* + Indirect functional mode management
* + Memory-mapped functional mode management
* + Auto-polling functional mode management
* + Interrupt and flag management
* + HPDMA channel configuration for indirect functional mode
* + Error management and abort functionality
|
YES | NO |
RAMCFG |
RAM configuration controller peripheral: * + RAMCFG initialization and deinitialization functions. * + RAMCFG ECC operation functions. * + RAMCFG CRC operation functions. * + RAMCFG configure wait state functions. * + RAMCFG write protection functions. * + RAMCFG erase operation functions. * + RAMCFG handle interrupt and callbacks functions. * + RAMCFG state and error functions.* This file provides firmware functions to manage the following * functionalities of the |
YES | NO |
RCC |
RCC) peripheral: * + Initialization and deinitialization functions * + Peripheral control functions * + Extended peripheral control functions* This driver provides firmware functions to manage the following * functionalities of the reset and clock control ( |
YES | NO |
RCC_EX |
RCC extension peripheral: * + Extended peripheral control functions* This driver provides firmware functions to manage the following * functionalities |
YES | NO |
RIF |
RIF: * + RISC initialization and configuration functions * + IAC initialization and configuration functions* This file provides firmware functions to manage the following * functionalities of |
YES | NO |
RNG |
RNG) peripheral: * + Initialization and configuration functions * + Peripheral control functions * + Peripheral state functions* This driver provides firmware functions to manage the following * functionalities of the random number generator ( |
YES | NO |
RNG_EX |
RNG) peripheral: * + Lock configuration functions * + Reset the RNG* This driver provides firmware functions to manage the following * functionalities of the random number generator ( |
YES | NO |
RTC |
RTC) peripheral: * + Initialization/deinitialization functions * + Calendar (time and date) configuration * + Alarms (alarm A and alarm B) configuration * + WakeUp timer configuration * + TimeStamp configuration * + Tampers configuration * + Backup data register configuration * + RTC tamper and timeStamp pins selection * + Interrupts and flags management* This driver provides firmware functions to manage the following * functionalities of the real-time clock ( |
YES | YES |
RTC_EX |
RTC) extended peripheral: * + RTC time stamp functions * + RTC tamper functions * + RTC wakeup functions * + Extended control functions * + Extended RTC features functions* This driver provides firmware functions to manage the following * functionalities of the real time clock ( |
YES | YES |
SAI |
SAI) peripheral: * + Initialization/deinitialization functions * + I/O operation functions * + Peripheral control functions * + Peripheral state functions* This driver provides firmware functions to manage the following * functionalities of the serial audio interface ( |
YES | NO |
SAI_EX |
SAI peripheral controller: * + Modify PDM microphone delays.* This driver provides firmware functions to manage the following * functionality of the |
YES | NO |
SD |
SD) peripheral: * + Initialization and deinitialization functions * + I/O operation functions * + Peripheral control functions * + Peripheral state functions* This driver provides firmware functions to manage the following * functionalities of the secure digital ( |
YES | NO |
SD_EX |
SD) peripheral: * + Extended features functions* This driver provides firmware functions to manage the following * functionalities of the secure digital ( |
YES | NO |
SMARTCARD |
* This driver provides firmware functions to manage the following
* functionalities of the smartcard peripheral:
* + Initialization and deinitialization functions
* + I/O operation functions
* + Peripheral control functions
* + Peripheral state and error functions
* + Extended features functions
|
YES | NO |
SMARTCARD_EX |
* This driver provides extended firmware functions to manage the following
* functionalities of the smartCard.
* + Initialization and deinitialization functions
* + Peripheral control functions
|
YES | NO |
SMBUS |
SMBus) peripheral, * based on I2C principles of operation : * + Initialization and deinitialization functions * + I/O operation functions * + Peripheral state and errors functions* This driver provides firmware functions to manage the following * functionalities of the system management bus ( |
YES | NO |
SPDIFRX |
DMA transfers management * + Interrupts and flags management* This driver provides firmware functions to manage the following * functionalities of the SPDIFRX audio interface: * + Initialization and configuration * + Data transfers functions * + |
YES | NO |
SPI |
SPI) peripheral: * + Initialization and deinitialization functions * + I/O operation functions * + Peripheral control functions * + Peripheral state functions* This driver provides firmware functions to manage the following * functionalities of the serial peripheral interface ( |
YES | YES |
SPI_EX |
SPI peripheral extended functionalities : * + I/O operation functions * + Peripheral control functions* This driver provides firmware functions to manage the following * |
YES | YES |
FMC_SRAM |
* This driver provides a generic firmware to drive SRAM memories
* mounted as external device.
|
YES | NO |
FMC_NAND |
* This driver provides a generic firmware to drive NAND memories
* mounted as external device.
|
YES | NO |
TIMER |
DMA * + TIM output compare/PWM initialization * + TIM output compare/PWM channel configuration * + TIM output compare/PWM start * + TIM output compare/PWM start interruption * + TIM output compare/PWM start DMA * + TIM input capture initialization * + TIM input capture channel configuration * + TIM input capture start * + TIM input capture start interruption * + TIM input capture start DMA * + TIM one pulse initialization * + TIM one pulse channel configuration * + TIM one pulse start * + TIM encoder interface initialization * + TIM encoder interface start * + TIM encoder interface start interruption * + TIM encoder interface start DMA * + Commutation event configuration with interruption and DMA * + TIM OCRef clear configuration * + TIM external clock configuration* This driver provides firmware functions to manage the following * functionalities of the timer (TIM) peripheral: * + TIM time base initialization * + TIM time base start * + TIM time base start interruption * + TIM time base start |
YES | YES |
TIMER_EX |
PWM channel configuration (for channels 5 and 6) * + Timer remapping capabilities configuration* This driver provides firmware functions to manage the following * functionalities of the timer extended peripheral: * + Time hall sensor interface initialization * + Time hall sensor interface start * + Time complementary signal break and dead time configuration * + Time controller and receiver synchronization configuration * + Time output compare/ |
YES | YES |
UART |
UART). * + Initialization and deinitialization functions * + I/O operation functions * + Peripheral control functions* This driver provides firmware functions to manage the following * functionalities of the universal asynchronous receiver transmitter peripheral ( |
YES | YES |
UART_EX |
USART). * + Peripheral control functions* This driver provides firmware functions to manage the following extended * functionalities of the universal synchronous receiver transmitter peripheral ( |
YES | YES |
U(S)ART |
ART). * + Initialization and deinitialization functions * + I/O operation functions * + Peripheral control functions * + Peripheral state and error functions * + Peripheral control functions* This driver provides firmware functions to manage the following * functionalities of the universal (synchronous) asynchronous receiver transmitter * peripheral (U(S) |
YES | NO |
4.1.2. LL drivers[edit | edit source]
STM32CubeMP2 LL Driver items | Description | CM33 | CM0+ |
---|---|---|---|
ADC |
ADC peripheral: * + Initialization/deinitialization functions * + Configuration functions (ADC instance, group regular, group injected, * channels, analog watchdog, oversampling, multimode) * + IT/FLAGS management functions* This driver provides firmware functions to manage the following * functionalities of the |
YES | NO |
DELAYBLOCK |
* This file provides firmware functions to manage the following
* functionalities of the DelayBlock peripheral:
* + input clock frequency
* + up to 12 oversampling phases
|
YES | NO |
DMA |
DMA peripheral: * + Initialization/deinitialization functions * + Configuration functions * + IT/FLAGS management functions* This driver provides firmware functions to manage the following * functionalities of the |
YES | YES |
EXTI |
EXTI peripheral: * + Initialization/deinitialization functions * + IT/FLAGS/Trigger management functions * + Configuration functions* This driver provides firmware functions to manage the following * functionalities of the |
YES | YES |
FMC |
* This driver provides firmware functions to manage the following
* functionalities of the flexible memory controller (FMC) peripheral memories:
* + Initialization/deinitialization functions
* + Peripheral control functions
* + Peripheral state functions
|
YES | NO |
GPIO |
GPIO peripheral: * + Initialization/de-initialization functions * + Data access functions * + Port configuration functions* This driver provides firmware functions to manage the following * functionalities of the |
YES | YES |
I2C |
* This driver provides firmware functions to manage the following
* functionalities of the I2C peripheral:
* + Initialization/deinitialization functions
* + IT/FLAGS management functions
* +Data management functions
* + Configuration functions
|
YES | YES |
LPTIM |
LPTIM peripheral: * + Initialization/deinitialization functions * + IT/FLAGS management functions * + Configuration (Trigger / Clock / Encoder / LPTIM) functions* This driver provides firmware functions to manage the following * functionalities of the |
YES | YES |
DMA |
DMA) peripheral: * + Channel management functions (Instance, block, buffer, endianess etc) * + SRC/DES operation functions * + Hardware trigger control* This driver provides firmware functions to manage the following * functionalities of the Direct Memory Access ( |
YES | YES |
PWR |
* This driver provides firmware functions to manage the following
* functionalities of the PWR peripheral:
* + Deinitialization functions
|
YES | NO |
RCC |
RCC peripheral: * + Clocks management functions (HSE/HSI/CSI/LSE/LSI/MCO/PLL) * + RTC/TIMERS functions * + IT/FLAGS management functions * + Deinitialization functions * + Get system and peripherals clocks frequency functions* This driver provides firmware functions to manage the following * functionalities of the |
YES | NO |
RTC |
RTC peripheral: * + Initialization/deinitialization functions * + TIME/DATE/ALM functions * + Configuration functions* This driver provides firmware functions to manage the following * functionalities of the |
YES | YES |
SDMMC |
DMA management functions * + Configuration functions* This driver provides firmware functions to manage the following * functionalities of the SDMMC peripheral: * + Initialization/de-initialization functions * + IT/FLAGS management functions * + Data / |
YES | NO |
SPI |
SPI peripheral: * + Control and configuration functions* This driver provides firmware functions to manage the following * functionalities of the |
YES | YES |
TIM |
DMA burst mode ) * + Counter clock selection functions * + Timer input remapping functions * + IT/FLAGS management functions * + DMA management functions * + Event management functions* This driver provides firmware functions to manage the following * functionalities of the TIM peripheral: * + Initialization/deinitialization functions * + Configuration functions (Time base, capture compare, output and input channel, * timer synchro, break, |
YES | NO |
USART |
USART peripheral: * + Initialization/deinitialization functions * + Configuration functions (Irda, smartcard, half duplex, * SPI slave, LIN, Driver enable) * + Advanced configurations services functions * + IT/FLAGS management functions * + DMA management functions * + Data management functions * + Execution functions* This driver provides firmware functions to manage the following * functionalities of the |
YES | NO |
4.1.3. BSP drivers[edit | edit source]
The BSP drivers offer a set of APIs relative to the hardware components available in the hardware boards (LEDs, Buttons and COM port). STM32MP257x-EV1 Evaluation board , STM32MP257x-DK Discovery kit
and unknown board type identifier .
BSP/ ├── STM32MP235F-DK │ ├── stm32mp235f_disco_bus.c │ ├── stm32mp235f_disco_bus.h │ ├── stm32mp235f_disco.c │ ├── stm32mp235f_disco_conf_template.h │ ├── stm32mp235f_disco_errno.h │ ├── stm32mp235f_disco.h │ ├── stm32mp235f_disco_pmic.c │ ├── stm32mp235f_disco_pmic.h │ ├── stm32mp235f_disco_usbpd_pwr.c │ └── stm32mp235f_disco_usbpd_pwr.h ├── STM32MP257F-DK │ ├── stm32mp257f_disco_bus.c │ ├── stm32mp257f_disco_bus.h │ ├── stm32mp257f_disco.c │ ├── stm32mp257f_disco_camera.c │ ├── stm32mp257f_disco_camera.h │ ├── stm32mp257f_disco_conf_template.h │ ├── stm32mp257f_disco_errno.h │ ├── stm32mp257f_disco.h │ ├── stm32mp257f_disco_pmic.c │ ├── stm32mp257f_disco_pmic.h │ ├── stm32mp257f_disco_usbpd_pwr.c │ ├── stm32mp257f_disco_usbpd_pwr.h └── STM32MP257F-EV1 ├── stm32mp257f_eval_bus.c ├── stm32mp257f_eval_bus.h ├── stm32mp257f_eval.c ├── stm32mp257f_eval_camera.c ├── stm32mp257f_eval_camera.h ├── stm32mp257f_eval_conf_template.h ├── stm32mp257f_eval_errno.h ├── stm32mp257f_eval.h ├── stm32mp257f_eval_lcd.c ├── stm32mp257f_eval_lcd.h ├── stm32mp257f_eval_pmic.c ├── stm32mp257f_eval_pmic.h ├── stm32mp257f_eval_usbpd_pwr.c └── stm32mp257f_eval_usbpd_pwr.hDrivers/
BSP Components are external components which can be attached toSTM32MP257x-EV1 Evaluation board and STM32MP257x-DK Discovery kit
.
STM32CubeMP2 BSP Component Items | Description |
---|---|
Common |
This directory contains the BSP common components drivers. |
STPMIC2 |
This driver provides a set of functions needed to drive STPMIC2 PMU module. |
TCPP0203 |
This driver provides a set of functions needed to drive TCPP02/03 (TCPP: Type-C port protection is a companion chip to safely comply with USB-type C specification for power delivery). |
4.2. Middlewares[edit | edit source]
The Middlewares folder contains all available STM32Cube Middlewares including:
- FreeRTOS
- OpenAMP
- STM32_USBPD_Library
![]() |
Note:
|
4.3. Projects[edit | edit source]
The "Projects" folder contains all STM32Cube examples that are classified in 3 ways as described below :
- Examples: It uses only the HAL drivers without any middleware component. They are available in directory Projects/<board_name>/Examples.
- Applications: It provides typical use cases of each middleware component. They are available in directory Projects/<board_name>/Applications.
- Demonstrations: This program demonstrates the USBPD stack. Directory Projects/<board_name>/Demonstrations.
The list of projects is available here.Projects/STM32CubeProjectsList.html
4.3.1. Examples, applications, and demonstrations[edit | edit source]
4.3.1.1. Applications, Examples, Demonstrations for STM32MP257F-EV1[edit | edit source]
FreeRTOS │ │ ├── FreeRTOS_MsgQueue │ │ ├── FreeRTOS_Semaphore │ │ └── FreeRTOS_ThreadCreation │ ├── OpenAMP │ │ └── OpenAMP_TTY_echo │ ├── TFM │ │ └── TFM_Protected_Storage │ └── USBPD │ └── USBPD_DRP_UCSI ├── Demonstrations │ ├── CM0PLUS_DEMO │ ├── LowPower_SRAM_Demo │ └── USBPD_DRP_UCSI ├── Examples │ ├── ADC │ │ ├── ADC_DifferentialMode │ │ ├── ADC_InternalChannelConversion │ │ ├── ADC_OverSampler │ │ └── ADC_RegularConversion_Polling │ ├── CORTEX │ │ └── CORTEXM_ModePrivilege │ ├── CRC │ │ ├── CRC_Bytes_Stream_7bit_CRC │ │ └── CRC_UserDefinedPolynomial │ ├── CRYP │ │ ├── CRYP_AES_DMA │ │ └── CRYP_AESGCM │ ├── DMA │ │ ├── DMA_LinkedList │ │ └── DMA_RepeatedBlock │ ├── FDCAN │ │ ├── FDCAN_Classic_Frame_Networking │ │ ├── FDCAN_Com_IT │ │ └── FDCAN_Loopback │ ├── GPIO │ │ └── GPIO_EXTI │ ├── I2C │ │ ├── I2C_TwoBoards_ComDMA │ │ └── I2C_TwoBoards_ComPolling │ ├── I3C │ │ ├── I3C_Controller_I2C_ComDMA │ │ └── I3C_Target_I2C_ComDMA │ ├── LPTIM │ │ └── LPTIM_PulseCounter │ ├── LTDC │ │ └── LTDC_Display_3rdLayer │ ├── SPI │ │ └── SPI_FullDuplex_ComDMA │ └── TIM │ ├── TIM_DMABurst │ ├── TIM_OnePulse │ ├── TIM_PWMOutput │ └── TIM_TimeBase ├── Examples_LL │ ├── EXTI │ │ └── EXTI_ToggleLedOnIT_Init │ ├── TIM │ │ └── TIM_PWMOutput │ └── USART │ └── USART_Communication_Rx_IT ├── Templates │ └── Template_CM33_NonSecure └── Templates_LL └── Template_LL_CM33_NonSecureProjects/STM32MP257F-EV1/ ├── Applications │ ├──
4.3.1.2. Applications, Examples, Demonstrations for STM32MP257F-DK[edit | edit source]
FreeRTOS │ │ ├── FreeRTOS_ThreadCreation │ │ └── FreeRTOS_Timers │ ├── OpenAMP │ │ └── OpenAMP_TTY_echo │ └── USBPD │ └── USBPD_DRP_UCSI ├── Demonstrations │ └── USBPD_DRP_UCSI ├── Examples │ ├── CORTEX │ │ └── CORTEXM_ModePrivilege │ ├── CRC │ │ └── CRC_Bytes_Stream_7bit_CRC │ ├── CRYP │ │ └── CRYP_AESCCM_IT │ ├── DMA │ │ ├── DMA_LinkedList │ │ └── DMA_RepeatedBlock │ ├── GPIO │ │ └── GPIO_EXTI │ ├── I2C │ │ └── I2C_TwoBoards_ComIT │ ├── I3C │ │ ├── I3C_Controller_InBandInterrupt_IT │ │ └── I3C_Target_InBandInterrupt_IT │ ├── LPTIM │ │ └── LPTIM_PulseCounter │ └── TIM │ └── TIM_InputCapture ├── Examples_LL │ └── USART │ └── USART_Communication_Rx_IT └── Templates └── Template_CM33_NonSecureProjects/STM32MP257F-DK/ ├── Applications │ ├──
4.3.1.3. Applications, Examples, Demonstrations for STM32MP235F-DK[edit | edit source]
FreeRTOS │ │ ├── FreeRTOS_ThreadCreation │ │ └── FreeRTOS_Timers │ └── USBPD │ └── USBPD_DRP_UCSI ├── Demonstrations │ └── USBPD_DRP_UCSI ├── Examples │ ├── CORTEX │ │ └── CORTEXM_ModePrivilege │ ├── CRC │ │ └── CRC_Bytes_Stream_7bit_CRC │ ├── CRYP │ │ └── CRYP_AESCCM_IT │ ├── DMA │ │ ├── DMA_LinkedList │ │ └── DMA_RepeatedBlock │ ├── GPIO │ │ └── GPIO_EXTI │ ├── I2C │ │ └── I2C_TwoBoards_ComIT │ ├── I3C │ │ └── I3C_Controller_InBandInterrupt_IT │ ├── LPTIM │ │ └── LPTIM_PulseCounter │ └── TIM │ └── TIM_InputCapture ├── Examples_LL │ └── USART │ └── USART_Communication_Rx_IT └── Templates └── Template_CM33_NonSecureProjects/STM32MP235F-DK/ ├── Applications │ ├──
4.3.1.4. Brief description of all applications/examples part of the package[edit | edit source]
4.3.2. Signing the STM32CubeMP2 firmware[edit | edit source]
All the above projects are signed by default during the build process using a key provided in the Utilities. Only the demonstration projects are not signed. You could however sign any project using your own keys using a method described here, to sign your STM32CubeMP2 firmware binaries.
5. Get started with STM32CubeMP2 Package[edit | edit source]
To know how to get it, read STM32CubeMP2 Package - Getting Started article.