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

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

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

image

注意幾個關鍵的名詞:3d

Modem 調制解調器芯片日誌

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

APSS 應用處理器子系統,就是日常咱們說的APblog

功耗問題通常分爲低電流太高,或者異常喚醒形成。文檔

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

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

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最小狀態。cli

這一塊主要查看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 查看喚醒鎖,哪一個鎖形成沒法休眠
相關文章
相關標籤/搜索