rk3399 Android休眠/唤醒分析(1)
内核版本 | Linux4.4 |
---|---|
平台 | rk3399 |
作者 | nineyole |
Android休眠/唤醒简介
休眠/唤醒在嵌入式Linux中是非常重要的部分,嵌入式设备尽可能的进入休眠状态来延长电池的续航时间。这篇文章就详细介绍一下Linux中休眠/唤醒是如何工作的,还有[Android]中如何把这部分和Linux的机制联系起来的.
在Linux中,休眠主要分三个主要的步骤:
1)冻结用户态进程和内核态任务
2)调用注册的设备的suspend的回调函数,顺序是按照注册顺序
3)休眠核心设备和使CPU进入休眠态冻结进程是内核把进程列表中所有的进程的状态都设置为停止,并且保存所有进程的上下文。当这些进程被解冻的时候,他们是不知道自己被冻结过的,只是简单的继续执行。
如何让Linux进入休眠呢?用户可以通过读写sys文件/sys/power/state是实现控制系统进入休眠.比如
echo standby >/sys/power/state
命令系统进入休眠.也可以使用
cat/sys/power