前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android 功耗(3)---高通功耗问题分析方法

Android 功耗(3)---高通功耗问题分析方法

作者头像
233333
发布2020-09-08 14:58:55
1.9K0
发布2020-09-08 14:58:55
举报
文章被收录于专栏:linux驱动个人学习

本文结合该文档简单的总结了AP端功耗问题分析手段。

首先是官方功耗分析流程图:

image
image

注意几个关键的名词:

Modem 调制解调器芯片

RPM Resource Power Manager是高通MSM平台另外加的一块芯片,控制整个电源相关的shared resources

APSS 应用处理器子系统,就是平常我们说的AP

功耗问题一般分为低电流过高,或者异常唤醒造成。

本文只站在AP的角度分析功耗问题,也就是Android系统的角度。

低电流过高首先要验证系统是否进入了最低功耗状态。VDD最小状态。

代码语言:javascript
复制
mount -t debugfs none /sys/kernel/debug/

cat /sys/kernel/debug/rpm_stats 获取系统是否休眠。验证XO关闭和VDD最小化
RPM Mode:xosd

        count:0

time in last mode(msec):0

time since last mode(sec):1275

actual last sleep(msec):0

client votes: 0x03030303

 

RPM Mode:vmin

        count:0 //有计数则说明系统进入最低功耗状态

time in last mode(msec):0

time since last mode(sec):1275

actual last sleep(msec):0

client votes: 0x00000000

如果系统没有进入VDD最小状态,则要检查那一项阻止了终端进入VDD最小状态。

这一块主要查看RPM的外部日志。分析,略。

下面分析异常唤醒造成的功耗问题

image
image

查看AP端的异常唤醒源,查看modem那块的略过。

代码语言:javascript
复制
echo 1 >/sys/module/msm_show_resume_irq/parameters/debug_mask

echo "8 8 8 8">/proc/sys/kernel/printk
image
image

通过查看唤醒锁的状态主要查看active_since字段可以查看,哪个锁造成系统无法休眠。

image
image
image
image

总结:对于AP端判断功耗问题,一般从低电流状态判断。

排除方法:移除一些外部驱动程序,如sensor,tp,camera,LCD等。

代码语言:javascript
复制
cat /sys/kernel/debug/rpm_stats 获取系统是否休眠。验证XO关闭和VDD最小化

echo 1 >/sys/module/msm_show_resume_irq/parameters/debug_mask

查看log获取异常唤醒源

代码语言:javascript
复制
echo "8 8 8 8">/proc/sys/kernel/printk

adb shell cat/sys/kernel/debug/wakeup_sources > j:\777.txt 查看唤醒锁,哪个锁造成无法休眠
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档