This article aims to describe the content of the software release included in the STM32CubeMP1 Package, version v1.6.0.
1. Delivery purpose and scope[edit source]
The STM32CubeMP1 Package is a software package running on Arm® Cortex®-M4 processors and is a fundamental part of the STM32MPU Embedded Software distribution.
This release includes:
- The STM32Cube HAL: STM32 abstraction layer embedded software ensuring maximized portability across the STM32 portfolio. HAL APIs are available for all peripherals.
- Low-layer APIs (LL APIs) offering a fast lightweight expert-oriented layer that is closer to the hardware than the HAL.
LL APIs are only available for a limited set of peripherals. - A consistent set of middleware components such as FreeRTOSTM and OpenAMP.
- All embedded software utilities delivered with a full set of examples.
It also includes:
- BSP for the STM32MP157x-EV1 Evaluation board and the STM32MP157x-DK2 Discovery kit (button and LEDs only)
- Multi-core components
- OpenAMP
- ResourceManager
- CoproSync
- Projects: several projects ( examples, applications and demonstration firmware) are implemented in different IDEs.
- STM32CubeIDE IDE delivered by ST
- EWARM (version 8.32.3 and laters)
- MDK-ARM (Pack Keil®.STM32MP1xx_DFP.1.1.0.pack + MDK-ARM 5.27 and laters)
- System Workbench for STM32 toolchain (SW4STM32): now deprecated
- This IDE is no longer supported by STMicroelectronics, the reference is now STM32CubeIDE.
- All the SW4STM32 projects are removed from this release but these projects were already ported on STM32CubeIDE.
2. Supported devices[edit source]
The drivers provided within this package support all STM32MP15x lines .
More details are provided in the article STM32 MPU ecosystem release note#Supported hardware.
3. Supported hardware[edit source]
The software examples delivered in this package are applicable for the following boards:
- STM32MP157C-EV1 Evaluation board .
For information about this board, read the article STM32MP157x-EV1 - hardware description. - STM32MP157C-DK2 Discovery kit .
For information about this board, read the article STM32MP157x-DKx - hardware description.
4. Main restrictions[edit source]
- OpenAMP compilation issue with MDK-ARM when the code is generated through the STM32CubeMx:
- To avoid compilation errors in OpenAMP when compiling in MDK-ARM IDE, disable the « Use MicroLIB » in « Target » tab.
- To avoid compilation errors in OpenAMP when compiling in MDK-ARM IDE, disable the « Use MicroLIB » in « Target » tab.
5. Release content[edit source]
5.1. Main changes[edit source]
- HAL and LL drivers
- HAL Generic
- Implement HAL_GetUIDw{0,1,2} (New API)
- Add ALIGN_32BYTES definitions
- ADC (No API change)
- Fix loop index computation at low frequency
- Fix HAL_GetTick() timeout vulnerability
- Fix HAL_ADC_MspDeInit: disable clock should not reset all ADCs
- Update function parameters pointers with prefix “p”
- SPI
- Alignment with other STM32 families (No API Change)
- TIM
- LL : ONEPULSEMODE defines description are inverted
- LL : COUNTERMODE defines are inverted for TIM_CR1_CMS
- CRC, DMA and USART
- Alignment with other STM32 families (No API Change)
- EXTI (No API change)
- Fix some MISRA warnings
- Optimize Get Config API
- SMBUS
- Alignment with other STM32 families
- SMBUS Extended files support (API Change)
- QSPI (No API change)
- Fix typo comments
- Fix error for HAL_QSPI_Abort function in memory-mapped mode
- RCC (No API change)
- (HAL) : Fix pllxvco calculation
- (LL) : Fix compilation issue ( some missing register alignement with CMSIS Device)
- HAL Generic
- CMSIS
- Update bit definition in header files:
- BSEC : Add missing registers
- ETH : Update bitfield names
- Update License declaration for startup and linker files
- Change include in system file ( alignment with other STM32 families)
- Update bit definition in header files:
- OPENAMP
- New version V2021.10
- PROJECTS
- Examples
- Implement new examples for STM32MP15 EVAL Board :
- Implement ADC_MultiChannelSingleConversion example,
- Implement ADC AnalogWatchdog example,
- Implement ADC Oversampler example,
- Implement LPTIM_PWM_LSE example,
- Implement TIM_OnePulse example,
- Implement TIM_PWMOutput example,
- Implement TIM_Synchronization example,
- Implement TIM_TimeBase example,
- Update LPTIM_PulseCounter example (add low power mode)
- Implement new examples for STM32MP15 EVAL Board :
- Applications
- Update project relying on OpenAMP 2021.10
- OpenAMP_TTY_echo_wakeup example:
- Implement the firmware shutdown to force the stop of ADC and DMA
- Fix include declaration with gcc++ in openamp
- Implement OpenAMP_for_signed_fw project
- Examples
5.2. Released projects[edit source]
The STM32CubeMP1 Package comes with a rich set of examples running on STMicroelectronics boards, organized by board and provided with preconfigured projects. The main supported toolchain is STM32CubeIDE.
- Most of the STM32MP157C-DK2 projects are available with 3 IDEs ( STM32CubeIDE, IARTM, KEIL®)
- All STM32MP157C-EV1 projects are available with STM32CubeIDE.
The exhaustive list of projects is provided in the table List of Projects.
IDE ready projects:
STM32MP157C-DK2 | STM32MP157C-EV1 | |
---|---|---|
Number of projects | 29 | 38 |
5.3. Released components[edit source]
- Drivers
Component | Version | Notes |
---|---|---|
Cortex-M CMSIS | V5.6.0 | - |
STM32MP1xx CMSIS | V1.6.0 | - |
STM32MP1xx HAL | V1.6.0 | - |
BSP STM32MP15xx_EVAL | V1.6.0 | - |
BSP STM32MP15xx_DISCO | V1.6.0 | - |
- Middleware
Component | Version | Notes |
---|---|---|
FreeRTOSTM | V10.0.1 ST modified 20190719 | - |
OpenAMP | v2021.10 ST modified 20220118 and ST interface 20220118 | - |
- Utilities
Component | Version | Notes |
---|---|---|
Resourcemanager | V1.11.0 | - |
5.4. Available drivers[edit source]
Find below the list of available HAL and LL drivers :
5.4.1. HAL drivers[edit source]
STM32CubeMP1 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 * + 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 |
CEC |
* This driver provides firmware functions to manage the following * functionalities of the High Definition Multimedia Interface * Consumer Electronics Control Peripheral (CEC). * + Initialization and de-initialization function * + IO operation function * + Peripheral Control function |
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
|
CORTEX |
* This driver provides firmware functions to manage the following
* functionalities of the CORTEX (MPU, Cache, …):
* + Initialization and de-initialization functions
* + Peripheral Control 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 * + Extended AES processing functions |
DAC |
* This driver provides firmware functions to manage the following * functionalities of the Digital to Analog Converter (DAC) peripheral: * + Initialization and de-initialization functions * + IO operation functions * + Peripheral Control functions * + Peripheral State and Errors functions * + Extended features functions |
DCMI |
* This driver 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 |
DFSDM |
* This driver provides firmware functions to manage the following * functionalities of the Digital Filter for Sigma-Delta Modulators * (DFSDM) peripherals: * + Initialization and configuration of channels and filters * + Regular channels configuration * + Injected channels configuration * + Regular/Injected Channels DMA Configuration * + Interrupts and flags management * + Analog watchdog feature * + Short-circuit detector feature * + Extremes detector feature * + Clock absence detector feature * + Break generation on analog watchdog or short-circuit event * + Set and get pulses skipping on channel. |
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 * + Extended features 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
|
FMC |
* This driver provides a generic firmware to drive SRAM memories * mounted as external device. |
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 * Additionally, this driver provides functions to manage HMAC * multi-buffer DMA-based processing for MD-5, SHA-1, SHA-224 * and SHA-256. |
HSEM |
* This driver 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 callnack functions * + IRQ handler management |
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
* + Extended features functions
|
IPCC |
* This driver 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
|
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.
|
MDIOS |
* This driver provides firmware functions to manage the following
* functionalities of the MDIOS Peripheral.
* + Initialization and de-initialization functions
* + IO operation functions
* + Peripheral Control functions
|
MDMA |
* This driver provides firmware functions to manage the following * functionalities of the Master Direct Memory Access (MDMA) peripheral: * + Initialization/de-initialization functions * + I/O 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 |
QUADSPI |
* This driver provides firmware functions to manage the following * functionalities of the QuadSPI interface (QSPI). * + Initialization and de-initialization functions * + Indirect functional mode management * + Memory-mapped functional mode management * + Auto-polling functional mode management * + Interrupts and flags management * + MDMA channel configuration for indirect functional mode * + Errors management and abort functionality |
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
|
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
|
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 |
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
* + 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 * + 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
|
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 * + IO operation functions * + Peripheral Control functions |
TIMER |
* This driver provides firmware functions to manage the following * functionalities of the Timer (TIM) peripheral: * + Time Base Initialization * + Time Base Start * + Time Base Start Interruption * + Time Base Start DMA * + Time Output Compare/PWM Initialization * + Time Output Compare/PWM Channel Configuration * + Time Output Compare/PWM Start * + Time Output Compare/PWM Start Interruption * + Time Output Compare/PWM Start DMA * + Time Input Capture Initialization * + Time Input Capture Channel Configuration * + Time Input Capture Start * + Time Input Capture Start Interruption * + Time Input Capture Start DMA * + Time One Pulse Initialization * + Time One Pulse Channel Configuration * + Time One Pulse Start * + Time Encoder Interface Initialization * + Time Encoder Interface Start * + Time Encoder Interface Start Interruption * + Time Encoder Interface Start DMA * + Commutation Event configuration with Interruption and DMA * + Time OCRef clear configuration * + Time External Clock configuration * + Time Hall Sensor Interface Initialization * + Time Hall Sensor Interface Start * + Time Complementary signal bread and dead time configuration * + Time Master and Slave synchronization configuration * + Time Output Compare/PWM Channel Configuration (for channels 5 and 6) * + Time OCRef clear configuration * + Timer remapping capabilities configuration |
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 |
WWDG |
* This driver provides firmware functions to manage the following
* functionalities of the Window Watchdog (WWDG) peripheral:
* + Initialization and Configuration functions
* + IO operation functions
|
5.4.2. LL drivers[edit source]
STM32CubeMP1 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 |
BUS |
* This driver provides firmware functions to manage the following * functionalities of the BUS peripheral: * + Enable/disable/reset clocks for all system BUS (AHB2, AHB3, AHB4, AHB5, AHB6, * AXI, MLAHB, APB1, APB2, APB3, APB4, APB5) |
CORTEX |
* This driver contains a set of generic APIs that can be used by user: * + SYSTICK configuration used by @ref LL_mDelay and @ref LL_Init1msTick functions * + Low power mode configuration (SCB register of Cortex®-MCU) * + API to access to MCU info (CPUID register) |
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
|
DMAMUX |
* This driver provides firmware functions to manage the following * functionalities of the DMAMUX peripheral: * + Initialization/de-initialization 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 PSRAM peripheral: * + Initialization/de-initialization functions * + Timing management functions * + Configuration 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
|
HSEM |
* This driver provides firmware functions to manage the following
* functionalities of the HSEM peripheral:
* + IT/FLAGS management functions
* +Data management 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 |
IPCC |
* This driver provides firmware functions to manage the following
* functionalities of the IPCC peripheral:
* + IT/FLAGS management functions
* + Enable/disable transmit and receive channels 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 |
PWR |
* This driver provides firmware functions to manage the following * functionalities of the PWR peripheral: * + Initialization/de-initialization functions * + FLAGS management functions * + Configuration 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
|
SPI |
* This driver provides firmware functions to manage the following * functionalities of the SPI peripheral: * + Initialization/de-initialization functions * + IT/FLAGS management functions * + Data / DMA management functions * + Configuration functions |
SYSTEM |
* This driver provides firmware functions to manage the following
* functionalities of the SYSTEM peripheral:
* + SYSCFG and DBGMCU 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 |
UTILS |
* This driver provides firmware functions to manage the following * functionalities of the UTILS peripheral: * + Device Electronic Signature functions * + DELAY functions * + SYSTEM functions |
WWDG |
* This driver provides firmware functions to manage the following * functionalities of the WWDG peripheral: * + Enable / Disable functions * + Configuration functions * + IT/FLAGS management functions |
5.5. Available projects[edit source]
Find below, the list of available projects for STM32MP157C-EV1 Evaluation board and STM32MP157C-DK2 Discovery kit :
The preferred supported toolchain for STM32MP15 is now STM32CubeIDE (All-in-one multi-OS development tool).
Moreover, other toolchains are compliant with STM32CubeMP1 Package:
- IARTM Embedded Workbench for ARM® (EWARM) toolchain
- RealView Microcontroller Development Kit (MDK-ARM) toolchain
By default, all the examples are available with STM32CubeIDE support.
The migration on other toolchain is not yet finished, but some of them are available.
Legend:
- New project implemented on STM32CubeMP1 FW v1.6.0.
- (*) : List of STM32MP157C-DK2 and STM32MP157C-EV1 examples available with 3 IDEs ( STM32CubeIDE, IARTM, KEIL®), the others are only available with STM32CubeIDE.
6. Minor release updates[edit source]
STMicroelectronics regularly delivers corrections through github® components. The corrections can be incorporated them into your developer package or distribution package.
Refer to STM32MP1 Developer Package or How to switch to github® mode in Distribution Package.
7. How to get started with STM32CubeMP1 Package[edit source]
Refer to How to get software and start with this release.
8. Associated tools[edit source]
Refer to Referenced tools release notes to obtain more information on all available tools.
9. References[edit source]