最近在调试展讯android平台一个手机项目,发现手机不能进入待机状态,功耗偏高,
1. 在待机的时候抓取系统的待机状态下的kernel log 也就是/proc/kmsg文件
最好使用T卡抓log或者将kmsg文件重定向到手机内置U盘空间中,等待机时间够了之后将该log从手机中取出进行分析
2. 系统没有进入低功耗的睡眠状态,大部分都是因为存在wakeup irq 频繁起来导致
在kernel中pm_debug.c中 void inc_irq(int irq)会打印出唤醒系统的irq, log 关键字为 “wakeup irq =”
3. 通过对kernel log 即kmsg中进行有关键字“wakeup irq =”搜索
发现irq=142频繁出现,如何能够知道该irq对应的应用属于,可以通过手机中/proc/interrupts文件找到对应的irq对应的处理函数
“142: 1528 irq-d-gpio taos_irq“
后来发现taos的驱动有问题,更改之后待机功耗正常
阅读(3056) | 评论(0) | 转发(0) |