技术参考手册: 电源管理
电源管理回调
用户可以通过 xwos_pm_set_cb()
设置电源管理回调函数。
resume_cb
:从暂停模式恢复的回调函数
suspend_cb
:进入暂停模式的回调函数
wakeup_cb
:唤醒时回调函数
sleep_cb
:休眠时的回调函数
系统休眠与唤醒
用户可以通过调用 xwos_pm_suspend()
使得操作系统进入休眠模式。 休眠后可以在唤醒中断中调用 xwos_pm_resume()
唤醒操作系统。
休眠与唤醒是一个比较复杂的过程,可以通过 xwos_pm_get_stage()
获取电源管理 目前所处的 电源管理阶段 。
C++
C++头文件: xwos/osal/pm.hxx
◆ xwos_pm_cb_f
电源管理回调函数指针类型
C
void (* xwos_pmdm_cb_f)(void * arg);
电源管理要求用户定义四个回调函数,通过API 指定:
resume_cb
:从暂停模式恢复的回调函数
suspend_cb
:进入暂停模式的回调函数
wakeup_cb
:唤醒时回调函数
sleep_cb
:休眠时的回调函数
在文件 pm.h 第 62 行定义.
◆ xwos_pm_get_stage()
static xwsq_t xwos_pm_get_stage |
( |
void |
| ) |
|
|
inlinestatic |
XWOS API:获取当前电源管理阶段
- 返回
- 电源管理阶段 电源管理阶段
- 注解
-
电源管理是复杂的异步操作,当系统正在进入低功耗、 或从低功耗唤醒时可通过此函数获取进展的阶段。 返回值取值 电源管理阶段
在文件 pm.h 第 143 行定义.
144{
145 return xwosdl_pm_get_stage();
146}
◆ xwos_pm_resume()
static xwer_t xwos_pm_resume |
( |
void |
| ) |
|
|
inlinestatic |
XWOS API:唤醒系统
- 返回
- 错误码
- 返回值
-
- 注解
-
只可在唤醒中断中调用。
在文件 pm.h 第 127 行定义.
128{
129 return xwosdl_pm_resume();
130}
◆ xwos_pm_set_cb()
XWOS API:设置电源管理的回调函数
end of xwos_pm_stage
- 参数
-
[in] | resume_cb | 从暂停模式恢复的回调函数 |
[in] | suspend_cb | 进入暂停模式的回调函数 |
[in] | wakeup_cb | 唤醒时回调函数 |
[in] | sleep_cb | 休眠时的回调函数 |
[in] | arg | 电源管理系统调用回调函数时传递的参数 |
- 注解
-
在文件 pm.h 第 91 行定义.
96{
97 return xwosdl_pm_set_cb(resume_cb, suspend_cb, wakeup_cb, sleep_cb, arg);
98}
◆ xwos_pm_suspend()
static xwer_t xwos_pm_suspend |
( |
void |
| ) |
|
|
inlinestatic |
XWOS API:将系统切换为低功耗状态
- 返回
- 错误码
- 返回值
-
- 注解
-
调用此方法后,所有线程都将开始冻结。冻结完成后,系统开始进入低功耗状态。
在文件 pm.h 第 111 行定义.
112{
113 return xwosdl_pm_suspend();
114}