linux电源管理

编程入门 行业动态 更新时间:2024-10-15 10:12:43

linux<a href=https://www.elefans.com/category/jswz/34/1768759.html style=电源管理"/>

linux电源管理

目录

1、模块主要功能介绍

2、主要涉及的数据类型

2.1 suspend_state_t

2.2 struct suspend_stats 

2.3 struct platform_suspend_ops

3、软件处理流程

3.1 suspend流程

3.2 唤醒流程

4、PM Core主要函数实现

4.1 pm_suspend

4.2 enter_state

4.3 suspend_devices_and_enter

4.4 suspend_enter

5、补充说明


1、模块主要功能介绍

       PM Core,SR(suspend/resume)主流程,顾名思义就是把Linux Kernel中各个低功耗模块组合在一起,成为睡眠和唤醒流程的主干道,我们称之为SR主流程。其在内核中特性的开关主要受以下宏控制:

CONFIG_PM、CONFIG_SUSPEND、CONFIG_PM_AUTOSLEEP、CONFIG_FREEZER、CONFIG_PM_SLEEP

相关代码主要在kernel/power/目录下

kernel/power/main.c     ----提供用户态接口,以及pm notifier相关接口
kernel/power/suspend.c  ----Suspend功能的主流程
kernel/power/console.c  ----Suspend过程中对控制台的处理逻辑
kernel/power/process.c  ----Suspend过程中对进程的处理逻辑

2、主要涉及的数据类型

2.1 suspend_state_t

       数据类型定义在include/linux/suspend.h中,表示低功耗要进入的状态,在kernel中主要有4种状态,如下

typedef int __bitwise suspend_state_t;#define PM_SUSPEND_ON		((__force suspend_state_t) 0)
#define PM_SUSPEND_TO_IDLE	((__force suspend_state_t) 1)
#define PM_SUSPEND_STANDBY	((__force suspend_state_t) 2)
#define PM_SUSPEND_MEM		((__force suspend_state_t) 3)
#define PM_SUSPEND_MIN		PM_SUSPEND_TO_IDLE
#define PM_SUSPEND_MAX		((__force suspend_state_t) 4)

1)PM_SUSPEND_ON: 设备处于全电源状态,也就是正常工作状态。

2)PM_SUSPEND_TO_IDLE:外设做完susspend回调后,进入到idle回调&#x

更多推荐

linux电源管理

本文发布于:2024-03-13 19:31:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1734658.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:电源   linux

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!