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

2021-09-26 20:26:54 字數 3821 閱讀 2149

高通功耗問題分析

高通官方提供了一篇文件extensive_power_debug_guide_(simplified_chinese功耗除錯).pdf  用來分析中斷功耗問題。

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

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

注意幾個關鍵的名詞:

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的外部日誌。分析,略。

下面分析異常喚醒造成的功耗問題

檢視ap端的異常喚醒源,檢視modem那塊的略過。

通過檢視喚醒鎖的狀態主要檢視active_since欄位可以檢視,哪個鎖造成系統無法休眠。

總結:對於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 檢視喚醒鎖,哪個鎖造成無法休眠。

高通功耗問題分析

高通官方提供了一篇文件extensive_power_debug_guide_(simplified_chinese功耗除錯).pdf  用來分析中斷功耗問題。

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

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

注意幾個關鍵的名詞:

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的外部日誌。分析,略。

下面分析異常喚醒造成的功耗問題

檢視ap端的異常喚醒源,檢視modem那塊的略過。

通過檢視喚醒鎖的狀態主要檢視active_since欄位可以檢視,哪個鎖造成系統無法休眠。

總結:對於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 檢視喚醒鎖,哪個鎖造成無法休眠。

高通功耗除錯5之Camera功耗除錯

1.刪除掉所有不必要的log,camera應用場景的時候因為log過多會導致系統功耗上公升很多。要減少不必要log 輸出,或者直接disable logd。2.綜合考量功耗和效能,比如對於fps,可以低於30fps以取得更低功耗。需要找camera vendor提供更低幀率 的設定。對於sensor...

高通功耗除錯4之靜態顯示功耗除錯

1.建議使用android原生的ui,這樣可以排除由於產品本身的ui引起的功耗增加。原生ui功耗正常以後再切換 到產品定製ui上來。很多時候我們可以根據波形來進行對比。比如看看定製化ui的功耗波形是否有週期性 的peak之類。2.需要考慮觸控螢幕的功耗,當觸控螢幕產生了更多中斷的時候,可能會對功耗有...

Android 功耗(5) 功耗除錯

本文就開始討 耗的除錯步驟和方法。一 明確除錯的目標 二 明確除錯的內容 三 參照電路框圖找出我們需要檢測的輸出 四 找出或引出需測試的輸出 五 功耗測試的步驟流程圖 一 明確除錯的目標 明確除錯的目標,即在滿足當前的需求情況下,盡最大的可能去降低各種狀態下 各路模組的功耗值。一般情況下,功耗越低要...