高通功耗問題分析
高通官方提供了一篇文件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) 功耗除錯
本文就開始討 耗的除錯步驟和方法。一 明確除錯的目標 二 明確除錯的內容 三 參照電路框圖找出我們需要檢測的輸出 四 找出或引出需測試的輸出 五 功耗測試的步驟流程圖 一 明確除錯的目標 明確除錯的目標,即在滿足當前的需求情況下,盡最大的可能去降低各種狀態下 各路模組的功耗值。一般情況下,功耗越低要...