mtk手机系统

MTK手机功耗之唤醒源详解

不羁岁月 提交于 2020-01-31 11:59:51
一、手机功耗问题浅析博文 二、Sleep 、suspend 三、SPM (System Power Manager) 四、Deep idle 五、SODI (screen on deep idle) 六、systrace/ftrace 七、wireshark 八、layerdump 九、如何确定阻止进入suspend的原因 十、如何分析wakelock(wakeup source)持锁问题 十一、如何看SPM的状态是否正确 十二、如何查找待机唤醒源 十三、如何找到阻止进入deep idle / SODI的元凶 一、手机功耗问题浅析博文 手机功耗问题直接影响到手机的待机时长,因此,解决功耗问题对于智能机十分必要。 之前有写过一个功耗浅析的文章,可以先参考下: 手机功耗问题浅析博文 二、Sleep 、suspend 这里的suspend确切的说是MCU(ARM )的 suspend,也就是cpu进入Wait for interrupt 状态(WFI);因为对整个系统来说,CPU进WFI是整个系统睡眠的先决条件,我们debug也是从CPU是否进入WFI开始,从Linux的角度来说,CPU进入suspend就是SW完全不跑了,停在suspend workqueue里面。 CPU进入WFI 步骤 : 1 用户空间锁全部释放,2 kernel 空间锁全部释放,3 CPU中所有任务进入挂起队列