Registered User mNo edit summary |
Registered User mNo edit summary Tag: 2017 source edit |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<noinclude>{{ApplicableFor | <noinclude>{{ApplicableFor | ||
|MPUs list=STM32MP15x | |MPUs list=STM32MP15x, STM32MP25x | ||
|MPUs checklist=STM32MP13x, STM32MP15x | |MPUs checklist=STM32MP13x, STM32MP15x, STM32MP25x | ||
}}</noinclude> | }}</noinclude> | ||
==Article purpose== | ==Article purpose== | ||
The purpose of this article is to give an overview of the software APIs available on the Arm<sup>®</sup> Cortex<sup>®</sup>- | The purpose of this article is to give an overview of the software APIs available on the Arm<sup>®</sup> Cortex<sup>®</sup>-M (also named MCU) side to handle the low power modes, acting as coprocessor . | ||
==Low power modes available on the chip== | ==Low power modes available on the chip== | ||
Line 11: | Line 12: | ||
The low power modes are handled by [[RCC internal peripheral|RCC]] and [[PWR internal peripheral|PWR]] peripherals. | The low power modes are handled by [[RCC internal peripheral|RCC]] and [[PWR internal peripheral|PWR]] peripherals. | ||
See [[Power_overview | See [[Power_overview|Power overview]] for mode description or refer to the reference manuals the full description of the modes ([[STM32MP15 resources#Reference manuals|STM32MP15]], [[STM32MP25 resources#Reference manuals|STM32MP25]]). | ||
===Wakeup sources=== | ===Wakeup sources=== | ||
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 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_internal_peripheral|'''EXTI''']] on MCU side. | ||
The wake sources are listed in the [[Power_overview | The wake sources are listed in the [[Power_overview|Power overview]] page. | ||
==Software overview== | ==Software overview== | ||
The power HAL is used to select the Cortex-M4 low power mode. | * '''{{MicroprocessorDevice | device=15}}''' | ||
: The power HAL is used to select the Cortex-M4 low power mode. | |||
Further information on HAL can be found here: [[ | : Further information on HAL can be found here: [[STM32CubeMP15 Package architecture]] | ||
* '''{{MicroprocessorDevice | device=25}}''' | |||
: The Cortex-M33 low power is not yet supported. As the MCU firmware is running in DDR, the firmware need to be [[Linux_remoteproc_framework_overview#Remote_processor_stop|stopped]] and the associated resources need to be released before requesting low power mode on MPU side with Linux. | |||
: Further information on HAL can be found here: [[STM32CubeMP2 Package architecture]] | |||
===APIs description=== | ===APIs description=== | ||
The power HAL supports the following APIs related to power management: | The {{MicroprocessorDevice | device=15}} power HAL supports the following APIs related to power management: | ||
* <code>HAL_PWR_EnterSLEEPMode</code>: CSleep mode is entered | * <code>HAL_PWR_EnterSLEEPMode</code>: CSleep mode is entered | ||
* <code>HAL_PWR_EnterStopMode</code>: CStop mode is entered allowing Stop as the deepest platform low power mode | * <code>HAL_PWR_EnterStopMode</code>: CStop mode is entered allowing Stop as the deepest platform low power mode | ||
Line 33: | Line 37: | ||
==Code source location== | ==Code source location== | ||
[[STM32CubeMP15 Package]] provides power HAL driver: | [[STM32CubeMP15 Package]] provides | ||
* {{CodeSource | STM32CubeMP1 | Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_pwr.c}} | * power HAL driver: | ||
* {{CodeSource | STM32CubeMP1 | Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_pwr.h}} | ** {{CodeSource | STM32CubeMP1 | Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_pwr.c}} | ||
** {{CodeSource | STM32CubeMP1 | Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_pwr.h}} | |||
* EXTI driver: {{CodeSource | STM32CubeMP1 | Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_exti.h}} | |||
[[STM32CubeMP2 Package]] provides: | |||
* power HAL driver: | |||
** {{CodeSource | STM32CubeMP2 | Drivers/STM32MP2xx_HAL_Driver/Src/stm32mp2xx_hal_pwr.c}} | |||
** {{CodeSource | STM32CubeMP2 | Drivers/STM32MP2xx_HAL_Driver/Inc/stm32mp2xx_hal_pwr.h}} | |||
* EXTI driver: {{CodeSource | STM32CubeMP2 | Drivers/STM32MP2xx_HAL_Driver/Inc/stm32mp2xx_hal_exti.h}} | |||
<noinclude> | <noinclude> | ||
[[Category:Coprocessor management STM32Cube]] | [[Category:Coprocessor management STM32Cube]] | ||
[[Category:Platform_power]] | |||
{{PublicationRequestId | 10389 | 2019-01-21 | AlainF}} | {{PublicationRequestId | 10389 | 2019-01-21 | AlainF}} | ||
{{ArticleBasedOnModel|Framework overview article model}} | {{ArticleBasedOnModel|Framework overview article model}} | ||
</noinclude> | </noinclude> |
Latest revision as of 15:24, 18 July 2024
1. Article purpose
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
The low power modes are handled by RCC and PWR peripherals.
See Power overview for mode description or refer to the reference manuals the full description of the modes (STM32MP15, STM32MP25).
2.1. Wakeup sources
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 Power overview page.
3. Software overview
- The power HAL is used to select the Cortex-M4 low power mode.
- Further information on HAL can be found here: STM32CubeMP15 Package architecture
- The Cortex-M33 low power is not yet supported. As the MCU firmware is running in DDR, the firmware need to be stopped and the associated resources need to be released before requesting low power mode on MPU side with Linux.
- Further information on HAL can be found here: STM32CubeMP2 Package architecture
3.1. APIs description
The STM32MP15x lines power HAL supports the following APIs related to power management:
HAL_PWR_EnterSLEEPMode
: CSleep mode is enteredHAL_PWR_EnterStopMode
: CStop mode is entered allowing Stop as the deepest platform low power modeHAL_PWR_EnterStandbyMode
: CStop mode is entered allowing Standby as the deepest platform low power mode
4. Code source location
STM32CubeMP15 Package provides
- power HAL driver:
- EXTI driver: Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_exti.h
STM32CubeMP2 Package provides:
- power HAL driver:
- EXTI driver: Drivers/STM32MP2xx_HAL_Driver/Inc/stm32mp2xx_hal_exti.h