STM32CubeMP2 Package

Revision as of 11:24, 30 January 2024 by Registered User
Applicable for STM32MP25x lines


=link

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 AzureRTOS)
  • 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.
Info white.png Information
Note:

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.

STM32MP25 Package Structure.png


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.

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 (Board Specific Package) drivers are parts of the STM32CubeMPU package based on the HAL drivers and provide a set of high level APIs relative to the hardware components and features in the STM32MP257x-EV1 Evaluation board More info green.png. It provides API for LED, button and COM ports.

STM32CubeMP2 BSP Driver items
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_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 More info green.png.

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:

  • AzureRTOS
  • OpenAMP
  • USBPD
Info white.png Information
Note:

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 for STM32MP257F-EV1 Evaluation board More info green.png[edit source]

4.3.1.1. List of all applications[edit source]
 ├── Application
 │   ├── FileX
 │   │   ├── Fx_NoR_Write_Read_File
 │   │   └── Fx_SRAM_File_Standalone
 │   ├── NetXDuo
 │   │   ├── Nx_Iperf
 │   │   ├── Nx_MQTT_Client
 │   │   ├── Nx_TCP_Echo_Client
 │   │   ├── Nx_TCP_Echo_Server
 │   │   ├── Nx_UDP_Echo_Client
 │   │   └── Nx_UDP_Echo_Server
 │   ├── OpenAMP
 │   │   └── OpenAMP_TTY_echo
 │   ├── TFM
 │   │   └── TFM_Protected_Storage
 │   ├── ThreadX
 │   │   ├── Tx_Thread_Creation
 │   │   ├── Tx_Thread_MsgQueue
 │   │   └── Tx_Thread_Sync
 │   └── USBPD
 │       └── USBPD_DRP_UCSI
 ├── Demonstrations
 │   └── USBPD_DRP_UCSI
 │       └── util
 └── Examples
     ├── CORTEX
     │   └── CORTEXM_ModePrivilege
     ├── CRC
     │   ├── CRC_Bytes_Stream_7bit_CRC
     │   └── CRC_UserDefinedPolynomial
     ├── CRYP
     │   ├── CRYP_AES_DMA
     │   └── CRYP_AESGCM
     ├── DMA
     │   ├── DMA_LinkedList
     │   └── DMA_RepeatedBlock
     ├── GPIO
     │   └── GPIO_EXTI
     ├── I2C
     │   ├── I2C_TwoBoards_ComDMA
     │   └── I2C_TwoBoards_ComPolling
     ├── I3C
     │   └── I3C_Controller_I2C_ComDMA
     ├── LPTIM
     │   └── LPTIM_PulseCounter
     ├── SPI
     │   └── SPI_FullDuplex_ComDMA
     └── TIM
         ├── TIM_DMABurst
         ├── TIM_OnePulse
         ├── TIM_PWMOutput
         └── TIM_TimeBase
4.3.1.2. Brief Description of all Applications/Examples part of the package[edit source]
Module(s) Application/Example Name Short description
NetXDuo Nx_Iperf This application provides an example of Azure RTOS NetXDuo stack usage. It shows performance when using different modes : TCP_server, UDP_server, TCP_client and UDP_client.
NetXDuo Nx_MQTT_Client This application provides an example of Azure RTOS NetX/NetXDuo stack usage. It shows how to exchange data between client and server using MQTT protocol in an encrypted mode supporting TLS v1.2.
NetXDuo Nx_TCP_Echo_Client This application provides an example of Azure RTOS NetX/NetXDuo stack usage. It shows how to develop a NetX TCP client to communicate with a remote sever using the NetX TCP socket API.
NetXDuo Nx_TCP_Echo_Server This application provides an example of Azure RTOS NetX/NetXDuo stack usage. It shows how to develop a NetX TCP server to communicate with a remote client using the NetX TCP socket API.
NetXDuo Nx_UDP_Echo_Client This application provides an example of Azure RTOS NetX/NetXDuo stack usage . It shows how to develop a NetX udp client to communicate with a remote sever using the NetX UDP socket API.
NetXDuo Nx_UDP_Echo_Server This application provides an example of Azure RTOS NetX/NetXDuo stack usage . It shows how to develop a NetX UDP server to communicate with a remote client using the NetX UDP socket API.
ThreadX Tx_Thread_Creation It demonstrates how to create and destroy multiple threads using Azure RTOS ThreadX APIs.
ThreadX Tx_Thread_Sync An application to demonstrate usage of the ThreadX synchronization APIs.
ThreadX Tx_Thread_MsgQueue It demonstrates how to send and receive messages between threads using ThreadX message queue APIs. In addition, it shows how to use the event chaining feature/
OpenAMP OpenAMP_TTY_echo It demonstrates How to use OpenAMP MW + Virtual UART to create an Inter-Processor Communication channel seen as TTY device in Linux OS.
TFM TFM_Protected_Storage It demonstrates an example of Protected Storage API (PSA) usage provided by the trusted firmware (TFM) middleware.
USBPD USBPD_DRP_UCSI Demonstrate usage of STM32MP25xx Cortex-M33 as a UCSI (USB Type-CTM Connector System Software Interface) Platform Policy Manager(PPM). The PPM is a combination of hardware and firmware that manages the USB Type-C connectors on the platform. The Cortex-A35 has a role of UCSI OS Policy Manager to interface with the PPM, via OpenAMP-rpmsg Virtual I2C with the UCSI interface.
CORTEX CORTEXM_ModePrivilege How to modify the Thread mode privilege access and stack. Thread mode is entered on reset or when returning from an exception.
CRC CRC_Bytes_Stream_7bit_CRC How to configure the CRC using the HAL API. The CRC (cyclic redundancy check) calculation unit computes 7-bit CRC codes derived from buffers of 8-bit data (bytes). The user-defined generating polynomial is manually set to 0x65, that is, X^7 + X^6 + X^5 + X^2 + 1, as used in the Train Communication Network, IEC 60870-5[17].
CRC CRC_UserDefinedPolynomial How to configure the CRC using the HAL API. The CRC (cyclic redundancy check) calculation unit computes the 8-bit CRC code for a given buffer of 32-bit data words, based on a user-defined generating polynomial.
CRYP CRYP_AESGCM How to use the CRYPTO peripheral to encrypt/decrypt data(Plaintext/Ciphertext) using AES Galois/counter mode (GCM)and generate the authentication TAG .
CRYP CRYP_AES_DMA This example provides a short description of how to use the CRYPTO peripheral to encrypt and decrypt data using AES-128 Algorithm with ECB chaining mode.
DMA DMA_LinkedList How to use the DMA to perform a list of transfers. The transfer list is organized as linked-list, each time the current transfer ends the DMA automatically reload the next transfer parameters, and starts it (without CPU intervention).
DMA DMA_RepeatedBlock This example describes how to configure and use the DMA HAL API to perform repeated block transactions.
GPIO GPIO_EXTI How to configure external interrupt lines.
I2C I2C_TwoBoards_ComDMA How to handle I2C data buffer transmission/reception between two boards, via DMA.
I2C I2C_TwoBoards_ComPolling How to handle I2C data buffer transmission/reception between two boards, via Polling.
I3C I3C_Controller_I2C_ComDMA How to handle I2C communication as I3C Controller data buffer transmission/reception between two boards, using DMA.
LPTIM LPTIM_PulseCounter This example describes how to configure and use LPTIM to count pulses through the LPTIM HAL API.
RTC RTC_Alarm How to configure and generate an RTC alarm using the RTC HAL API.
SPI SPI_FullDuplex_ComDMA This example shows how to perform SPI data buffer transmission/reception between two boards via DMA.
TIM TIM_DMABurst This example shows how to update the TIMER TIM8_CH4 period and the duty cycle using the TIMER DMA burst feature.
TIM TIM_OnePulse This example shows how to use the TIMER peripheral to generate a single pulse when a rising edge of an external signal is received on the TIMER Input pin.
TIM TIM_PWMOutput This example shows how to configure the TIM peripheral in PWM (Pulse Width Modulation) mode.
TIM TIM_TimeBase This example shows how to configure the TIM peripheral to generate a time base of one second with the corresponding Interrupt request.
FileX, LevelX Fx_NoR_Write_Read_File Demonstrates how to create a Fat File system on the NOR flash using FileX alongside LevelX. The application is designed to execute file operations on the MX25L51245G NOR flash device, the code provides all required software code for properly managing it.
FileX Fx_SRAM_File_Edit_Standalone This application provides an example of FileX stack usage in Standalone mode (without ThreadX). It demonstrates how to create a FAT File system in internal SRAM using FileX API.


5. Get started with STM32CubeMP2 Package[edit source]

To know how to get it, read STM32CubeMP2 Package - Getting Started article.