手持设备进入低功耗模式,降低工作电流,提供待机时间。如果某些设备打开了没有关闭,导致浪费能源。影响功耗的因素有时钟,GPIO,电源。
时钟引起的可以通过检查系统的时钟树,看看低功耗模式那些时钟打开了,顺藤摸瓜找出没有关闭的设备,通过suspend函数接口关闭模块,在resume接口将系统被唤醒的时候重新打开模块。
GPIO引起的可以打印出GPIO的配置,检查逻辑是否对。比如某个GPIO连接到VCC,如果GPIO配置了下拉那么就有VCC通过下拉电阻的漏电流,要配置GPIO,使下拉电阻关闭。
电源引起的可以打印电源树,看看那些电源没有关闭,能够关闭的就关闭。
对于设备,有些设备要通过发低功耗命令,有些设备要关闭电源。具体哪个方法看实际系统。