Last edited 2 weeks ago

Cortex-M coprocessor power management: Difference between revisions


Latest revision as of 17:25, 30 June 2025


1. Article purpose[edit | edit source]

The purpose of this article is to give an overview of the software APIs available on the Arm® Cortex®-M (also named MCU) side to handle the low power modes, acting as coprocessor .

2. Low power modes available on the chip[edit | edit source]

The low power modes are handled by RCC and PWR peripherals.

See Platform power overview for mode description or refer to the STM32 MPU reference manuals the full description of the modes.

2.1. Wakeup sources[edit | edit source]

The low power modes are left due to a wakeup event. It can be configured by setting the wakeup control feature of the IP and activating the corresponding EXTI on MCU side.

The wake sources are listed in the Platform power overview page.

3. Software overview[edit | edit source]

  • STM32MP15x lines More info.png
The power HAL is used to select the Cortex-M4 low power mode.
Further information on HAL can be found here: STM32CubeMP15 Package architecture
  • STM32MP2 series
The power HAL is used to select the Cortex-M33 low power mode when it is running in internal RETRAM. This mode can be enable by adding the keep-power-in-suspend property to the remoteproc node in the Linux device tree. For detail, refer to the remotreproc power node .
The Cortex-M33 low power modes are not supported when the MCU firmware is running in DDR. In such case the firmware needs to be stopped and the associated resources must be released before requesting low power mode on the MPU side with Linux (see Power overview for detail).
Further information on HAL can be found here: STM32CubeMP2 Package architecture

3.1. APIs description[edit | edit source]

The STM32MP15x lines More info.png power HAL supports the following APIs related to power management:

  • HAL_PWR_EnterSLEEPMode: CSleep mode is entered
  • HAL_PWR_EnterStopMode: CStop mode is entered allowing Stop as the deepest platform low power mode
  • HAL_PWR_EnterStandbyMode: CStop mode is entered allowing Standby as the deepest platform low power mode

4. Code source location[edit | edit source]

4.1. For STM32MP15x lines More info.png[edit | edit source]

The STM32CubeMP15 Package provides:

4.2. For STM32MP2 series[edit | edit source]

The STM32CubeMP2 Package provides: