Zephyr API Documentation 4.0.0
A Scalable Open Source RTOS
|
Typedefs | |
typedef int(* | pm_s2ram_system_off_fn_t) (void) |
System off function. | |
Functions | |
int | arch_pm_s2ram_suspend (pm_s2ram_system_off_fn_t system_off) |
Save CPU context on suspend. | |
void | pm_s2ram_mark_set (void) |
Mark that core is entering suspend-to-RAM state. | |
bool | pm_s2ram_mark_check_and_clear (void) |
Check suspend-to-RAM marking and clear its state. | |
typedef int(* pm_s2ram_system_off_fn_t) (void) |
#include <zephyr/arch/common/pm_s2ram.h>
System off function.
This function is passed as argument and called by arch_pm_s2ram_suspend to power the system off after the CPU context has been saved.
This function never returns if the system is powered off. If the operation cannot be performed a proper value is returned and the code must take care of restoring the system in a fully operational state before returning.
none | The system is powered off. |
-EBUSY | The system is busy and cannot be powered off at this time. |
-errno | Other error codes. |
int arch_pm_s2ram_suspend | ( | pm_s2ram_system_off_fn_t | system_off | ) |
#include <zephyr/arch/common/pm_s2ram.h>
Save CPU context on suspend.
This function is used on suspend-to-RAM (S2RAM) to save the CPU context in (retained) RAM before powering the system off using the provided function. This function is usually called from the PM subsystem / hooks.
The CPU context is usually the minimum set of CPU registers which content must be restored on resume to let the platform resume its execution from the point it left at the time of suspension.
system_off | Function to power off the system. |
0 | The CPU context was successfully saved and restored. |
-EBUSY | The system is busy and cannot be suspended at this time. |
-errno | Negative errno code in case of failure. |
bool pm_s2ram_mark_check_and_clear | ( | void | ) |
#include <zephyr/arch/common/pm_s2ram.h>
Check suspend-to-RAM marking and clear its state.
Function is used to determine if resuming after suspend-to-RAM shall be performed or standard boot code shall be executed.
Default implementation is checking a magic word in RAM. CONFIG_PM_S2RAM_CUSTOM_MARKING allows custom implementation. The following requirements must be fulfilled:
bx lr
instructiontrue | if marking is found which indicates resuming after suspend-to-RAM. |
false | if marking is not found which indicates standard boot. |
void pm_s2ram_mark_set | ( | void | ) |
#include <zephyr/arch/common/pm_s2ram.h>
Mark that core is entering suspend-to-RAM state.
Function is called when system state is stored to RAM, just before going to system off.
Default implementation is setting a magic word in RAM. CONFIG_PM_S2RAM_CUSTOM_MARKING allows custom implementation. The following requirements must be fulfilled:
bx lr
instruction