XWOS API  4.0
XWOS C/C++ API参考手册
载入中...
搜索中...
未找到
电源管理
电源管理 的协作图:

模块

 电源管理阶段
 

类型定义

typedef xwosdl_pm_cb_f xwos_pm_cb_f
 电源管理回调函数指针类型
 

函数

static void xwos_pm_set_cb (xwos_pm_cb_f resume_cb, xwos_pm_cb_f suspend_cb, xwos_pm_cb_f wakeup_cb, xwos_pm_cb_f sleep_cb, void *arg)
 XWOS API:设置电源管理的回调函数
 
static xwer_t xwos_pm_suspend (void)
 XWOS API:将系统切换为低功耗状态
 
static xwer_t xwos_pm_resume (void)
 XWOS API:唤醒系统
 
static xwsq_t xwos_pm_get_stage (void)
 XWOS API:获取当前电源管理阶段
 

详细描述

技术参考手册: 电源管理

电源管理回调

用户可以通过 xwos_pm_set_cb() 设置电源管理回调函数。

系统休眠与唤醒

用户可以通过调用 xwos_pm_suspend() 使得操作系统进入休眠模式。 休眠后可以在唤醒中断中调用 xwos_pm_resume() 唤醒操作系统。

休眠与唤醒是一个比较复杂的过程,可以通过 xwos_pm_get_stage() 获取电源管理 目前所处的 电源管理阶段

C++

C++头文件: xwos/osal/pm.hxx

类型定义说明

◆ xwos_pm_cb_f

typedef xwosdl_pm_cb_f xwos_pm_cb_f

电源管理回调函数指针类型

C
void (* xwos_pmdm_cb_f)(void * arg);

电源管理要求用户定义四个回调函数,通过API 指定:

  • resume_cb :从暂停模式恢复的回调函数
  • suspend_cb :进入暂停模式的回调函数
  • wakeup_cb :唤醒时回调函数
  • sleep_cb :休眠时的回调函数

在文件 pm.h62 行定义.

函数说明

◆ xwos_pm_get_stage()

static xwsq_t xwos_pm_get_stage ( void  )
inlinestatic

XWOS API:获取当前电源管理阶段

返回
电源管理阶段 电源管理阶段
注解
  • 上下文:任意

电源管理是复杂的异步操作,当系统正在进入低功耗、 或从低功耗唤醒时可通过此函数获取进展的阶段。 返回值取值 电源管理阶段

在文件 pm.h143 行定义.

144{
145 return xwosdl_pm_get_stage();
146}

◆ xwos_pm_resume()

static xwer_t xwos_pm_resume ( void  )
inlinestatic

XWOS API:唤醒系统

返回
错误码
返回值
XWOK成功
-EALREADY系统正在运行
注解
  • 上下文:中断

只可在唤醒中断中调用。

在文件 pm.h127 行定义.

128{
129 return xwosdl_pm_resume();
130}

◆ xwos_pm_set_cb()

static void xwos_pm_set_cb ( xwos_pm_cb_f  resume_cb,
xwos_pm_cb_f  suspend_cb,
xwos_pm_cb_f  wakeup_cb,
xwos_pm_cb_f  sleep_cb,
void *  arg 
)
inlinestatic

XWOS API:设置电源管理的回调函数

end of xwos_pm_stage

参数
[in]resume_cb从暂停模式恢复的回调函数
[in]suspend_cb进入暂停模式的回调函数
[in]wakeup_cb唤醒时回调函数
[in]sleep_cb休眠时的回调函数
[in]arg电源管理系统调用回调函数时传递的参数
注解
  • 上下文:任意

在文件 pm.h91 行定义.

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:将系统切换为低功耗状态

返回
错误码
返回值
XWOK成功
-EACCES系统不是运行状态
注解
  • 上下文:任意

调用此方法后,所有线程都将开始冻结。冻结完成后,系统开始进入低功耗状态。

在文件 pm.h111 行定义.

112{
113 return xwosdl_pm_suspend();
114}