MS-RTOS 电源管理

更新时间:
2023-08-09
下载文档

MS-RTOS 电源管理

本章将介绍 MS-RTOS 电源管理 PM 的使用。

PM 相关数据类型

类型描述
ms_pm_sleep_mode_tCPU 休眠模式
ms_pm_run_mode_tCPU 运行模式
ms_pm_boot_mode_tCPU 启动模式
ms_pm_event_t电源管理事件

ms_pm_sleep_mode_t

CPU 休眠模式类型,可取的值为以下的宏:

含义
MS_PM_SLEEP_MODE_NONECPU 不休眠,系统空闲时执行 NOP 指令,不使用 Tick-less
MS_PM_SLEEP_MODE_IDLE系统空闲时执行 CPU idle 指令,使用 Tick-less,任一中断唤醒
MS_PM_SLEEP_MODE_LIGHTCPU 浅休眠,目前与 MS_PM_SLEEP_MODE_IDLE 相同
MS_PM_SLEEP_MODE_DEEPCPU 深度休眠,挂起设备,使用低功耗定时器,任一中断唤醒
MS_PM_SLEEP_MODE_STANDBYCPU 待机模式,挂起设备,只能被某些中断唤醒,唤醒后重新执行程序,可通过启动模式与关机模式进行区分
MS_PM_SLEEP_MODE_SHUTDOWNCPU 关机模式,挂起设备,彻底关机

ms_pm_run_mode_t

CPU 运行模式类型,可取的值为以下的宏:

含义
MS_PM_RUN_MODE_HIGH_SPEEDCPU 高速运行
MS_PM_RUN_MODE_NORMAL_SPEEDCPU 正常速度运行
MS_PM_RUN_MODE_MEDIUM_SPEEDCPU 中等速度运行
MS_PM_RUN_MODE_LOW_SPEEDCPU 低速运行

ms_pm_boot_mode_t

CPU 启动模式类型,可取的值为以下的宏:

含义
MS_PM_BOOT_MODE_COLD冷机启动(关机模式后启动)
MS_PM_BOOT_MODE_REBOOT重启(热启动)
MS_PM_BOOT_MODE_STANDBYCPU 从待机模式唤醒(热启动)

ms_pm_event_t

电源管理事件类型,可取的值为以下的宏:

含义
MS_PM_EVENT_SLEEP_ENTERCPU 进入休眠
MS_PM_EVENT_SLEEP_EXITCPU 退出休眠

PM 相关 API

下表展示了电源管理相关的 API 在两个权限空间下是否可用:

API用户空间内核空间
ms_pm_request_sleep_mode
ms_pm_release_sleep_mode
ms_pm_set_default_sleep_mode
ms_pm_set_run_mode
ms_pm_get_run_mode
ms_pm_set_boot_mode
ms_pm_get_boot_mode

用户空间不能使用电源管理相关的 API,只能通过对 /dev/pm 设备操作达到电源管理的目的。如果 APP 没有对 /dev/pm 设备的访问权限,则 APP 不能进行电源管理相关的操作。

ms_pm_request_sleep_mode()

  • 描述 请求进入指定的 CPU 休眠模式

  • 函数原型

ms_err_t ms_pm_request_sleep_mode(ms_pm_sleep_mode_t sleep_mode);
  • 参数
输入/输出参数描述
[in]sleep_modeCPU 休眠模式
  • 返回值 MS-RTOS 内核错误码

  • 注意事项

  • 示例

ms_pm_release_sleep_mode()

  • 描述 取消请求指定的 CPU 休眠模式

  • 函数原型

ms_err_t ms_pm_release_sleep_mode(ms_pm_sleep_mode_t sleep_mode);
  • 参数
输入/输出参数描述
[in]sleep_modeCPU 休眠模式
  • 返回值 MS-RTOS 内核错误码

  • 注意事项

  • 示例

ms_pm_set_default_sleep_mode()

  • 描述 设置默认的 CPU 休眠模式

  • 函数原型

ms_err_t ms_pm_set_default_sleep_mode(ms_pm_sleep_mode_t sleep_mode);
  • 参数
输入/输出参数描述
[in]sleep_modeCPU 休眠模式
  • 返回值 MS-RTOS 内核错误码

  • 注意事项

  • 示例

ms_pm_set_run_mode()

  • 描述 设置 CPU 运行模式

  • 函数原型

ms_err_t ms_pm_set_run_mode(ms_pm_run_mode_t run_mode);
  • 参数
输入/输出参数描述
[in]run_modeCPU 运行模式
  • 返回值 MS-RTOS 内核错误码

  • 注意事项

  • 示例

ms_pm_get_run_mode()

  • 描述 获得当前的 CPU 运行模式

  • 函数原型

ms_pm_run_mode_t ms_pm_get_run_mode(void);
  • 参数

  • 返回值 当前的 CPU 运行模式

  • 注意事项

  • 示例

ms_pm_set_boot_mode()

  • 描述 设置 CPU 启动模式

  • 函数原型

ms_err_t ms_pm_set_boot_mode(ms_pm_boot_mode_t boot_mode);
  • 参数
输入/输出参数描述
[in]boot_modeCPU 启动模式
  • 返回值 MS-RTOS 内核错误码

  • 注意事项

  • 示例

ms_pm_get_boot_mode()

  • 描述 获得 CPU 启动模式

  • 函数原型

ms_pm_boot_mode_t ms_pm_get_boot_mode(void);
  • 参数

  • 返回值 CPU 的启动模式

  • 注意事项

  • 示例

/dev/pm 设备 ioctl 命令

ioctl 命令及相关说明如下表所示:

命令描述参数
MS_PM_CMD_REQUEST_SLEEP_MODE请求进入指定的 CPU 休眠模式ms_pm_sleep_mode_t 指针
MS_PM_CMD_RELEASE_SLEEP_MODE取消请求进入指定的 CPU 休眠模式ms_pm_sleep_mode_t 指针
MS_PM_CMD_SET_DEFAULT_SLEEP_MODE设置默认的 CPU 休眠模式ms_pm_sleep_mode_t 指针
MS_PM_CMD_SET_RUN_MODE设置 CPU 运行模式ms_pm_run_mode_t 指针
MS_PM_CMD_GET_RUN_MODE获得当前的 CPU 运行模式ms_pm_run_mode_t 指针
MS_PM_CMD_GET_BOOT_MODE获得 CPU 的启动模式ms_pm_boot_mode_t 指针
文档内容是否对您有所帮助?
有帮助
没帮助