This article introduces the structure and the content of the STM32CubeMP2 Package, the embedded software part of STM32Cube™, running on the Arm® Cortex®-M33 coprocessor. It references also other interesting wiki articles to better understand and use the STM32CubeMP2 Package.
1. What is the STM32CubeMP2 Package[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
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.
2. Software architecture overview[edit source]
Software architecture overview is described in STM32CubeMP2 Package architecture.
3. STM32CubeMP2 Package structure[edit source]
This chapter describes the structure of the STM32CubeMP2 Package (drivers, middleware components...).
STM32CubeMP2 Package offers a highly portable Hardware Abstraction Layer (HAL), built around a generic and modular architecture.
This HAL allows the upper layers, middleware and application, to implement functions whenever STM32MP25 device is used. This improves the library code re-usability 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 source]
This chapter describes the content of the STM32CubeMP2 Package (drivers, middleware components...).
4.1. Drivers[edit source]
The Drivers folder contains all the STM32Cube Drivers, including BSP and HAL drivers.
The STM32CubeMP25 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
Chapters, here after, give the list of available BSP, HAL and LL drivers.
4.1.1. HAL drivers[edit source]
STM32CubeMP2 HAL Driver items | Description |
---|---|
ADC |
* This driver provides firmware functions to manage the following * functionalities of the Analog to Digital Convertor (ADC) * peripheral: * + Initialization and de-initialization 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 |
ADC_EX |
* This driver provides firmware functions to manage the following * extended functionalities of the Analog to Digital Convertor (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 |
BSEC |
* This driver provides firmware functions to manage the following * functionalities of the Boot and security and OTP control(BSEC) peripheral: * + Initialization and de-initialization functions * + Peripheral Control functions * + Peripheral State functions |
CRC |
* This driver provides firmware functions to manage the following
* functionalities of the Cyclic Redundancy Check (CRC) peripheral:
* + Initialization and de-initialization functions
* + Peripheral Control functions
* + Peripheral State functions
* + Extended features functions
|
CRYP |
* This driver provides firmware functions to manage the following * functionalities of the Cryptography (CRYP) peripheral: * + Initialization and de-initialization functions * + AES processing functions * + DES processing functions * + TDES processing functions * + DMA callback functions * + CRYP IRQ handler management * + Peripheral State functions |
CRYP_EX |
* This driver provides firmware functions to manage the following * functionalities of CRYP extension peripheral: * + Extended AES processing functions |
CSI |
* This file provides firmware functions to manage the following * functionalities of the Digital Camera Interface (CSI) peripheral: * + Initialization and de-initialization functions * + IO operation functions * + Peripheral Control functions * + Peripheral State and Error functions |
DCACHE |
* This file provides firmware functions to manage the following * functionalities of the DCACHE. * + Initialization and Configuration * + Cache coherency command * + Monitoring management |
DCMI |
* This file provides firmware functions to manage the following * functionalities of the Digital Camera Interface (DCMI) peripheral: * + Initialization and de-initialization functions * + IO operation functions * + Peripheral Control functions * + Peripheral State and Error functions |
DCMIPP |
* This driver provides firmware functions to manage the following * functionalities of the DCMIPP (Digital Camera Interface Pixel Pipeline) peripheral: * + Initialization and de-initialization functions * + IO operation functions * + Peripheral Control functions * + Peripheral State and Error functions |
DDR |
* This driver provides firmware functions to manage the following
* functionalities of the Double Data Rate Synchronous Dynamic Random
* Access Memory (DDR-SDRAM) Peripheral, through its controller
* (DDRCTRL) and its physical interface controller (DDRPHYC).
|
DMA |
* This driver provides firmware functions to manage the following * functionalities of the Direct Memory Access (DMA) peripheral: * + Initialization and de-initialization functions * + IO operation functions * + Peripheral State and errors functions |
DMA_EX |
* This driver provides firmware functions to manage the following
* functionalities of the DMA Extension peripheral:
* + Extended features functions
|
DSI |
* This file provides firmware functions to manage the following * functionalities of the DSI peripheral: * + Initialization and de-initialization functions * + IO operation functions * + Peripheral Control functions * + Peripheral State and Errors functions |
ETH |
* This driver provides firmware functions to manage the following * functionalities of the Ethernet (ETH) peripheral: * + Initialization and deinitialization functions * + IO operation functions * + Peripheral Control functions * + Peripheral State and Errors functions |
EXTI |
* This driver provides firmware functions to manage the following * functionalities of the General Purpose Input/Output (EXTI) peripheral: * + Initialization and de-initialization functions * + IO operation functions |
FDCAN |
* This driver provides firmware functions to manage the following
* functionalities of the Flexible DataRate Controller Area Network
* (FDCAN) peripheral:
* + Initialization and de-initialization functions
* + IO operation functions
* + Peripheral Configuration and Control functions
* + Peripheral State and Error functions
|
GPIO |
* This driver provides firmware functions to manage the following * functionalities of the General Purpose Input/Output (GPIO) peripheral: * + Initialization and de-initialization functions * + IO operation functions * + Extended Peripheral Control functions |
HAL |
* This driver provides firmware functions to manage the following * functionalities of HAL, Tick, SYSCFG, DBGMCU: * + Initialization and de-initialization functions * + HAL Initialization and de-initialization 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 |
HASH |
* This driver provides firmware functions to manage the following * functionalities of the HASH peripheral: * + Initialization and de-initialization methods * + HASH or 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 |
HASH_EX |
* This driver provides firmware functions to manage the following * functionalities of the HASH peripheral for 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 * multi-buffer DMA-based processing for MD-5, SHA-1, SHA-224 * and SHA-256. |
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 |
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 |
IPCC |
* This file provides firmware functions to manage the following
* functionalities of the Inter-Processor communication controller
* peripherals (IPCC).
* + Initialization and de-initialization functions
* + Configuration, notification and interrupts handling
* + Peripheral State and Error functions
|
I2C |
* This driver provides firmware functions to manage the following * functionalities of the Inter Integrated Circuit (I2C) peripheral: * + Initialization and de-initialization functions * + IO operation functions * + Peripheral State and Errors functions |
I2C_EX |
* This driver provides firmware functions to manage the following
* functionalities of I2C Extended peripheral:
* + Filter Mode Functions
* + WakeUp Mode Functions
* + FastModePlus Functions
|
I2S |
* This file provides firmware functions to manage the following * functionalities of the Integrated Interchip Sound (I2S) peripheral: * + Initialization and de-initialization functions * + IO operation functions * + Peripheral State and Errors functions |
I3C |
* This file provides firmware functions to manage the following
* functionalities of the Improvement Inter Integrated Circuit (I3C) peripheral:
* + Initialization and de-initialization functions
* + IO operation functions
* + Peripheral State and Errors functions
|
IWDG |
* This file provides firmware functions to manage the following * functionalities of the Independent Watchdog (IWDG) peripheral: * + Initialization and Start functions * + IO operation functions |
LPTIM |
* This driver provides firmware functions to manage the following
* functionalities of the Low Power Timer (LPTIM) peripheral:
* + Initialization and de-initialization functions.
* + Start/Stop operation functions in polling mode.
* + Start/Stop operation functions in interrupt mode.
* + Reading operation functions.
* + Peripheral State functions.
|
LTDC |
* This file provides firmware functions to manage the following * functionalities of the LTDC peripheral: * + Initialization and de-initialization functions * + IO operation functions * + Peripheral Control functions * + Peripheral State and Errors functions |
MMC |
* This driver provides firmware functions to manage the following * functionalities of the Secure Digital (MMC) peripheral: * + Initialization and de-initialization functions * + IO operation functions * + Peripheral Control functions * + MMC card Control functions |
MMC_EX |
* This driver provides firmware functions to manage the following
* functionalities of the Secure Digital (MMC) peripheral:
* + Extended features functions
|
PKA |
* This driver provides firmware functions to manage the following * functionalities of public key accelerator(PKA): * + Initialization and de-initialization functions * + Start an operation * + Retrieve the operation result |
PSSI |
* This file provides firmware functions to manage the following
* functionalities of the Parallel Synchronous Slave Interface (PSSI) peripheral:
* + Initialization and de-initialization functions
* + IO operation functions
* + Peripheral State and Errors functions
|
PWR |
* This driver provides firmware functions to manage the following * functionalities of the Power Controller (PWR) peripheral: * + Initialization and de-initialization functions * + Peripheral Control functions * + Peripheral Extended features functions |
PWR_EX |
* This driver provides firmware functions to manage the following * functionalities of PWR extension peripheral: * + Peripheral Extended features functions |
OSPI |
* This driver provides firmware functions to manage the following * functionalities of the OSPI interface (OSPI). * + Initialization and de-initialization functions * + Indirect functional mode management * + Memory-mapped functional mode management * + Auto-polling functional mode management * + Interrupts and flags management * + HPDMA channel configuration for indirect functional mode * + Errors management and abort functionality |
RAMCFG |
* This file provides firmware functions to manage the following * functionalities of the RAMs configuration controller peripheral: * + RAMCFG Initialization and De-initialization 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. |
RCC |
* This driver provides firmware functions to manage the following
* functionalities of the Reset and Clock Control (RCC) peripheral:
* + Initialization and de-initialization functions
* + Peripheral Control functions
* + Extended Peripheral Control functions
|
RCC_EX |
* This driver provides firmware functions to manage the following
* functionalities RCC extension peripheral:
* + Extended Peripheral Control functions
|
RIF |
* This file provides firmware functions to manage the following * functionalities of RIF: * + RISC Initialization and Configuration functions * + IAC Initialization and Configuration functions |
RNG |
* This driver provides firmware functions to manage the following
* functionalities of the Random Number Generator (RNG) peripheral:
* + Initialization and configuration functions
* + Peripheral Control functions
* + Peripheral State functions
|
RNG_EX |
* This driver provides firmware functions to manage the following * functionalities of the Random Number Generator (RNG) peripheral: * + Lock configuration functions * + Reset the RNG |
RTC |
* This driver provides firmware functions to manage the following * functionalities of the Real-Time Clock (RTC) peripheral: * + Initialization/de-initialization functions * + Calendar (Time and Date) configuration * + Alarms (Alarm A and Alarm B) configuration * + WakeUp Timer configuration * + TimeStamp configuration * + Tampers configuration * + Backup Data Registers configuration * + RTC Tamper and TimeStamp Pins Selection * + Interrupts and flags management |
RTC_EX |
* This driver provides firmware functions to manage the following * functionalities of the Real Time Clock (RTC) Extended peripheral: * + RTC Time Stamp functions * + RTC Tamper functions * + RTC Wake-up functions * + Extended Control functions * + Extended RTC features functions |
SAI |
* This driver provides firmware functions to manage the following
* functionalities of the Serial Audio Interface (SAI) peripheral:
* + Initialization/de-initialization functions
* + I/O operation functions
* + Peripheral Control functions
* + Peripheral State functions
|
SAI_EX |
* This driver provides firmware functions to manage the following
* functionality of the SAI Peripheral Controller:
* + Modify PDM microphone delays.
|
SD |
* This driver provides firmware functions to manage the following * functionalities of the Secure Digital (SD) peripheral: * + Initialization and de-initialization functions * + IO operation functions * + Peripheral Control functions * + Peripheral State functions |
SD_EX |
* This driver provides firmware functions to manage the following
* functionalities of the Secure Digital (SD) peripheral:
* + Extended features functions
|
SMARTCARD |
* This driver provides firmware functions to manage the following
* functionalities of the Smartcard peripheral:
* + Initialization and de-initialization functions
* + IO operation functions
* + Peripheral Control functions
* + Peripheral State and Error functions
* + Extended features functions
|
SMARTCARD_EX |
* This driver provides extended firmware functions to manage the following * functionalities of the SmartCard. * + Initialization and de-initialization functions * + Peripheral Control functions |
SMBUS |
* This driver provides firmware functions to manage the following * functionalities of the System Management Bus (SMBus) peripheral, * based on I2C principles of operation : * + Initialization and de-initialization functions * + IO operation functions * + Peripheral State and Errors functions |
SPDIFRX |
* This driver provides firmware functions to manage the following
* functionalities of the SPDIFRX audio interface:
* + Initialization and Configuration
* + Data transfers functions
* + DMA transfers management
* + Interrupts and flags management
|
SPI |
* This driver provides firmware functions to manage the following * functionalities of the Serial Peripheral Interface (SPI) peripheral: * + Initialization and de-initialization functions * + IO operation functions * + Peripheral Control functions * + Peripheral State functions |
SPI_EX |
* This driver provides firmware functions to manage the following * SPI peripheral extended functionalities : * + IO operation functions * + Peripheral Control functions |
FMC_SRAM |
* This driver provides a generic firmware to drive SRAM memories * mounted as external device. |
FMC_NAND |
* This driver provides a generic firmware to drive NAND memories * mounted as external device. |
TIMER |
* 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 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 |
TIMER_EX |
* 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 Master and Slave synchronization configuration
* + Time Output Compare/PWM Channel Configuration (for channels 5 and 6)
* + Timer remapping capabilities configuration
|
UART |
* This driver provides firmware functions to manage the following * functionalities of the Universal Asynchronous Receiver Transmitter Peripheral (UART). * + Initialization and de-initialization functions * + IO operation functions * + Peripheral Control functions |
UART_EX |
* This driver provides firmware functions to manage the following extended
* functionalities of the Universal Synchronous Receiver Transmitter Peripheral (USART).
* + Peripheral Control functions
|
U(S)ART |
* This driver provides firmware functions to manage the following * functionalities of the Universal (Synchronous) Asynchronous Receiver Transmitter * Peripheral (U(S)ART). * + Initialization and de-initialization functions * + IO operation functions * + Peripheral Control functions * + Peripheral State and Error functions * + Peripheral Control functions |
4.1.2. LL drivers[edit source]
STM32CubeMP2 LL Driver items | Description |
---|---|
ADC |
* This driver provides firmware functions to manage the following * functionalities of the ADC peripheral: * + Initialization/de-initialization functions * + Configuration functions (ADC instance, group regular, group injected, * channels, analog watchdog, oversampling, multimode) * + IT/FLAGS management functions |
DELAYBLOCK |
* This file provides firmware functions to manage the following * functionalities of the DelayBlock peripheral: * + input clock frequency * + up to 12 oversampling phases |
DMA |
* This driver provides firmware functions to manage the following
* functionalities of the DMA peripheral:
* + Initialization/de-initialization functions
* + Configuration functions
* + IT/FLAGS management functions
|
EXTI |
* This driver provides firmware functions to manage the following
* functionalities of the EXTI peripheral:
* + Initialization/de-initialization functions
* + IT/FLAGS/Trigger management functions
* + Configuration functions
|
FMC |
* This driver provides firmware functions to manage the following * functionalities of the Flexible Memory Controller (FMC) peripheral memories: * + Initialization/de-initialization functions * + Peripheral Control functions * + Peripheral State functions |
GPIO |
* This driver provides firmware functions to manage the following
* functionalities of the GPIO peripheral:
* + Initialization/de-initialization functions
* + Data access functions
* + Port configuration functions
|
I2C |
* This driver provides firmware functions to manage the following * functionalities of the I2C peripheral: * + Initialization/de-initialization functions * + IT/FLAGS management functions * +Data management functions * + Configuration functions |
LPTIM |
* This driver provides firmware functions to manage the following * functionalities of the LPTIM peripheral: * + Initialization/de-initialization functions * + IT/FLAGS management functions * + Configuration (Trigger / Clock / Encoder / LPTIM) functions |
DMA |
* This driver provides firmware functions to manage the following * functionalities of the Direct Memory Access (DMA) peripheral: * + Channel Mangenment functions (Instance, Block, Buffer, Endianess etc) * + SRC/DES operation functions * + HW Trigger control |
PWR |
* This driver provides firmware functions to manage the following * functionalities of the PWR peripheral: * + De-initialization functions |
RCC |
* This driver provides firmware functions to manage the following * functionalities of the RCC peripheral: * + Clocks management functions (HSE/HSI/CSI/LSE/LSI/MCO/PLL) * + RTC/TIMERS functions * + IT/FLAGS management functions * + De-initialization functions * + Get system and peripherals clocks frequency functions |
RTC |
* This driver provides firmware functions to manage the following
* functionalities of the RTC peripheral:
* + Initialization/de-initialization functions
* + TIME/DATE/ALM functions
* + Configuration functions
|
SDMMC |
* This driver provides firmware functions to manage the following
* functionalities of the SDMMC peripheral:
* + Initialization/de-initialization functions
* + IT/FLAGS management functions
* + Data / DMA management functions
* + Configuration functions
|
SPI |
* This driver provides firmware functions to manage the following
* functionalities of the SPI peripheral:
* + Control and configuration functions
|
TIM |
* This driver provides firmware functions to manage the following * functionalities of the TIM peripheral: * + Initialization/de-initialization functions * + Configuration functions (Time base, Capture Compare, Output and Input Channel, * Timer Synchro, Break, DMA Burst Mode ) * + Counter clock selection functions * + Timer input remapping functions * + IT/FLAGS management functions * + DMA management functions * + Event management functions |
USART |
* This driver provides firmware functions to manage the following * functionalities of the USART peripheral: * + Initialization/de-initialization 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 |
4.1.3. BSP drivers[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 and STM32MP257x-DK Discovery kit .
├── 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.h
BSP Components are external components which can be attached to STM32MP257x-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 source]
The Middlewares folder contains all available STM32Cube Middlewares including:
- FreeRTOS
- OpenAMP
- STM32_USBPD_Library
4.3. Projects[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.
List of Projects is available here. Projects/STM32CubeProjectsList.html
4.3.1. Examples, applications and demonstrations[edit source]
4.3.1.1. List of all applications[edit source]
├── STM32MP257F-DK │ ├── Applications │ │ ├── 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_NonSecure └── STM32MP257F-EV1 ├── Applications │ ├── FreeRTOS │ │ ├── FreeRTOS_MsgQueue │ │ ├── FreeRTOS_Semaphore │ │ └── FreeRTOS_ThreadCreation │ ├── OpenAMP │ │ └── OpenAMP_TTY_echo │ ├── TFM │ │ └── TFM_Protected_Storage │ └── USBPD │ └── USBPD_DRP_UCSI ├── Demonstrations │ └── 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_NonSecure
4.3.1.2. Brief description of all applications/examples part of the package[edit source]
4.3.2. Signing the STM32CubeMP2 firmware[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 as described here, to sign your STM32CubeMP2 firmware binaries.
5. Get started with STM32CubeMP2 Package[edit source]
To know how to get it, read STM32CubeMP2 Package - Getting Started article.