RT-Thread API参考手册  3.1.1
嵌入式实时操作系统
电源管理

电源管理接口 更多...

结构体

struct  rt_pm_ops
 电源管理设备的操作方法 更多...
 
struct  rt_device_pm_ops
 对电源管理模式敏感的设备的操作方法 更多...
 
struct  rt_device_pm
 电源管理设备 更多...
 
struct  rt_pm
 电源管理控制块 更多...
 

函数

void rt_pm_enter (void)
 进入PM 模式 更多...
 
void rt_pm_exit (void)
 退出PM 模式 更多...
 
void rt_pm_request (rt_ubase_t mode)
 请求 PM 模式 更多...
 
void rt_pm_release (rt_ubase_t mode)
 释放 PM 模式 更多...
 
void rt_pm_register_device (struct rt_device *device, const struct rt_device_pm_ops *ops)
 注册 PM 模式变化敏感的设备 更多...
 
void rt_pm_unregister_device (struct rt_device *device)
 取消注册PM模式变化敏感的设备 更多...
 
void rt_system_pm_init (const struct rt_pm_ops *ops, rt_uint8_t timer_mask, void *user_data)
 PM组件初始化 更多...
 

详细描述

电源管理接口

PM组件从层次上划分,可以分成用户层、PM 组件层和PM 驱动层。用户层包括了应用代码和驱动代码,它们 通过 API 来决定芯片运行在什么模式。PM 驱动层主要是实现了 PM 驱动的支持以及与 PM 相关的外设功耗 控制。PM 组件层里完成驱动的管理和对用户层提供支持。

函数说明

void rt_pm_enter ( void  )

进入PM 模式

该函数尝试进入更低的模式,如果没有请求任何运行模式,就进入休眠模式。这个函数已经在 PM 组件 初始化函数里注册到 IDLE HOOK 里,所以不需要另外的调用。

void rt_pm_exit ( void  )

退出PM 模式

该函数在从休眠模式唤醒的时候被在rt_pm_enter()调用。在从休眠唤醒时,有可能先进入唤醒中断的中断 处理函数里由。用户也可以在这里主动调用用户主动调用rt_pm_exit()。从休眠唤醒之后可能多次调用 rt_pm_exit()

void rt_pm_request ( rt_ubase_t  mode)

请求 PM 模式

请求 PM 模式函数,是在应用或者驱动里调用的函数,调用之后 PM 组件确保当前模式不低于请求的模式。

参数
mode请求的模式
void rt_pm_release ( rt_ubase_t  mode)

释放 PM 模式

释放PM模式函数,是在应用或者驱动里调用的函数,调用之后 PM 组件并不会立即进行实际的模式切换, 而是在rt_pm_enter()里面才开始切换。

参数
mode释放的模式
void rt_pm_register_device ( struct rt_device device,
const struct rt_device_pm_ops ops 
)

注册 PM 模式变化敏感的设备

该函数注册 PM 模式变化敏感的设备,每当 PM 的模式发生变化的时候,会调用设备的相应 API。

  • 如果是切换到新的运行模式,会调用设备里的frequency_change()函数。
  • 如果是切换到新的休眠模式,将会在进入休眠时调用设备的suspend()函数,在进入休眠被唤醒之后 调用设备的resume()。
参数
device具体对模式变化敏感的设备句柄
ops设备的函数集
void rt_pm_unregister_device ( struct rt_device device)

取消注册PM模式变化敏感的设备

该函数取消已经注册的 PM 模式变化敏感设备。

参数
device具体对模式变化敏感的设备句柄
void rt_system_pm_init ( const struct rt_pm_ops ops,
rt_uint8_t  timer_mask,
void *  user_data 
)

PM组件初始化

PM 组件初始化函数,是由相应的 PM 驱动来调用,完成 PM 组件的初始化。

该函数完成的工作,包括底层 PM 驱动的注册、相应的 PM 组件的资源初始化、默认模式的请求, 并对上层提供一个名字是 “pm” 的设备,还默认请求了三个模式,包括一个默认运行模式PM_RUN_MODE_DEFAULT、 一个默认休眠模式PM_SLEEP_MODE_DEFAULT和最低的模式PM_MODE_MAX。默认运行模式和休眠模式的值, 我们可以根据需要来定义,默认值是第一个模式。

参数
ops底层 PM 驱动的函数集
timer_mask指定哪些模式包含了低功耗定时器
user_data可以被底层 PM 驱动使用的一个指针