XWOS API  4.0
XWOS C/C++ API参考手册
载入中...
搜索中...
未找到
xwos::Pm< TCpu > 模板类 参考abstract

电源管理类 更多...

#include <Pm.hxx>

Public 类型

enum  PmStage : xwsq_t {
  PmStageSuspended = XWOS_PM_STAGE_SUSPENDED , PmStageSuspending = XWOS_PM_STAGE_SUSPENDING , PmStageResuming = XWOS_PM_STAGE_RESUMING , PmStageFreezing = XWOS_PM_STAGE_FREEZING ,
  PmStageThawing = XWOS_PM_STAGE_THAWING , PmStageRunning = XWOS_PM_STAGE_RUNNING
}
 

Public 成员函数

void resume ()
 从低功耗模式恢复
 
enum PmStage stage ()
 

Protected 成员函数

 Pm ()
 
virtual ~Pm ()
 
virtual void resumePeriph ()=0
 
virtual void suspendPeriph ()=0
 
virtual void wakeupCpu ()=0
 
virtual void sleepCpu ()=0
 
void suspend ()
 进入低功耗模式
 

静态 Private 成员函数

static void sResumePeriph (void *obj)
 
static void sSuspendPeriph (void *obj)
 
static void sWakeupCpu (void *obj)
 
static void sSleepCpu (void *obj)
 

详细描述

template<xwid_t TCpu = 0UL>
class xwos::Pm< TCpu >

电源管理类

参数
[in]TCpu目标CPU

在文件 Pm.hxx46 行定义.

成员枚举类型说明

◆ PmStage

template<xwid_t TCpu = 0UL>
enum xwos::Pm::PmStage : xwsq_t
枚举值
PmStageSuspended 

已经暂停

PmStageSuspending 

正在暂停

PmStageResuming 

正在恢复

PmStageFreezing 

正在冻结线程

PmStageThawing 

正在解冻线程

PmStageRunning 

正常运行

在文件 Pm.hxx49 行定义.

49 : xwsq_t {
56 };
@ PmStageThawing
Definition Pm.hxx:54
@ PmStageSuspended
Definition Pm.hxx:50
@ PmStageRunning
Definition Pm.hxx:55
@ PmStageResuming
Definition Pm.hxx:52
@ PmStageFreezing
Definition Pm.hxx:53
@ PmStageSuspending
Definition Pm.hxx:51
unsigned long xwsq_t
Definition type.h:445
#define XWOS_PM_STAGE_RESUMING
Definition pm.h:55
#define XWOS_PM_STAGE_SUSPENDING
Definition pm.h:54
#define XWOS_PM_STAGE_SUSPENDED
Definition pm.h:53
#define XWOS_PM_STAGE_THAWING
Definition pm.h:58
#define XWOS_PM_STAGE_RUNNING
Definition pm.h:59
#define XWOS_PM_STAGE_FREEZING
Definition pm.h:57

构造及析构函数说明

◆ Pm()

template<xwid_t TCpu = 0UL>
xwos::Pm< TCpu >::Pm ( )
inlineprotected

在文件 Pm.hxx59 行定义.

static void sSuspendPeriph(void *obj)
Definition Pm.hxx:86
static void sSleepCpu(void *obj)
Definition Pm.hxx:96
static void sResumePeriph(void *obj)
Definition Pm.hxx:81
static void sWakeupCpu(void *obj)
Definition Pm.hxx:91
static void xwos_pm_set_op(xwid_t cpuid, xwos_pm_op_f resume_periph, xwos_pm_op_f suspend_periph, xwos_pm_op_f wakeup_cpu, xwos_pm_op_f sleep_cpu, void *arg)
XWOS API:设置电源管理的操作函数
Definition pm.h:76
函数调用图:

◆ ~Pm()

template<xwid_t TCpu = 0UL>
virtual xwos::Pm< TCpu >::~Pm ( )
inlineprotectedvirtual

在文件 Pm.hxx60 行定义.

60{}

成员函数说明

◆ resumePeriph()

template<xwid_t TCpu = 0UL>
virtual void xwos::Pm< TCpu >::resumePeriph ( )
protectedpure virtual
这是这个函数的调用关系图:

◆ suspendPeriph()

template<xwid_t TCpu = 0UL>
virtual void xwos::Pm< TCpu >::suspendPeriph ( )
protectedpure virtual
这是这个函数的调用关系图:

◆ wakeupCpu()

template<xwid_t TCpu = 0UL>
virtual void xwos::Pm< TCpu >::wakeupCpu ( )
protectedpure virtual
这是这个函数的调用关系图:

◆ sleepCpu()

template<xwid_t TCpu = 0UL>
virtual void xwos::Pm< TCpu >::sleepCpu ( )
protectedpure virtual
这是这个函数的调用关系图:

◆ suspend()

template<xwid_t TCpu = 0UL>
void xwos::Pm< TCpu >::suspend ( )
inlineprotected

进入低功耗模式

注解
此C++API只能由 class Pm 的实现类调用,只会使得运行代码的CPU进入低功耗模式,不影响其他CPU。

在文件 Pm.hxx70 行定义.

70{ xwos_pm_suspend(); }
static void xwos_pm_suspend(void)
XWOS API:将系统切换为低功耗状态
Definition pm.h:99
函数调用图:

◆ resume()

template<xwid_t TCpu = 0UL>
void xwos::Pm< TCpu >::resume ( )
inline

从低功耗模式恢复

注解
此C++API只能由唤醒中断调用,只会使得运行代码的CPU从低功耗模式恢复,不影响其他CPU。

在文件 Pm.hxx77 行定义.

77{ xwos_pm_resume(); }
static void xwos_pm_resume(void)
XWOS API:唤醒系统
Definition pm.h:112
函数调用图:

◆ stage()

template<xwid_t TCpu = 0UL>
enum PmStage xwos::Pm< TCpu >::stage ( )
inline

在文件 Pm.hxx78 行定义.

78{ return (enum PmStage)xwos_pm_get_stage(); }
PmStage
Definition Pm.hxx:49
static xwsq_t xwos_pm_get_stage(void)
XWOS API:获取当前电源管理阶段
Definition pm.h:128
函数调用图:

◆ sResumePeriph()

template<xwid_t TCpu = 0UL>
static void xwos::Pm< TCpu >::sResumePeriph ( void *  obj)
inlinestaticprivate

在文件 Pm.hxx81 行定义.

82 {
83 Pm * mgr = reinterpret_cast<Pm *>(obj);
84 mgr->resumePeriph();
85 }
Pm()
Definition Pm.hxx:59
函数调用图:
这是这个函数的调用关系图:

◆ sSuspendPeriph()

template<xwid_t TCpu = 0UL>
static void xwos::Pm< TCpu >::sSuspendPeriph ( void *  obj)
inlinestaticprivate

在文件 Pm.hxx86 行定义.

87 {
88 Pm * mgr = reinterpret_cast<Pm *>(obj);
89 mgr->suspendPeriph();
90 }
函数调用图:
这是这个函数的调用关系图:

◆ sWakeupCpu()

template<xwid_t TCpu = 0UL>
static void xwos::Pm< TCpu >::sWakeupCpu ( void *  obj)
inlinestaticprivate

在文件 Pm.hxx91 行定义.

92 {
93 Pm * mgr = reinterpret_cast<Pm *>(obj);
94 mgr->wakeupCpu();
95 }
函数调用图:
这是这个函数的调用关系图:

◆ sSleepCpu()

template<xwid_t TCpu = 0UL>
static void xwos::Pm< TCpu >::sSleepCpu ( void *  obj)
inlinestaticprivate

在文件 Pm.hxx96 行定义.

97 {
98 Pm * mgr = reinterpret_cast<Pm *>(obj);
99 mgr->sleepCpu();
100 }
函数调用图:
这是这个函数的调用关系图:

该类的文档由以下文件生成: