Android 功耗(3)---高通功耗問題分析方法


本文結合該文檔簡單的總結了AP端功耗問題分析手段。

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

image

注意幾個關鍵的名詞:

Modem 調制解調器芯片

RPM Resource Power Manager是高通MSM平台另外加的一塊芯片,控制整個電源相關的shared resources

APSS 應用處理器子系統,就是平常我們說的AP

功耗問題一般分為低電流過高,或者異常喚醒造成。

本文只站在AP的角度分析功耗問題,也就是Android系統的角度。

低電流過高首先要驗證系統是否進入了最低功耗狀態。VDD最小狀態。

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

查看AP端的異常喚醒源,查看modem那塊的略過。

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

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

image

通過查看喚醒鎖的狀態主要查看active_since字段可以查看,哪個鎖造成系統無法休眠。

image

image

總結:對於AP端判斷功耗問題,一般從低電流狀態判斷。

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

cat /sys/kernel/debug/rpm_stats 獲取系統是否休眠。驗證XO關閉和VDD最小化

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

查看log獲取異常喚醒源

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

adb shell cat/sys/kernel/debug/wakeup_sources > j:\777.txt 查看喚醒鎖,哪個鎖造成無法休眠


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM