高通平台功耗優化分析

2021-09-29 10:31:40 字數 1806 閱讀 8661

本文結合該文件簡單的總結了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 檢視喚醒鎖,哪個鎖造成無法休眠。

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

高通功耗問題分析 高通官方提供了一篇文件extensive power debug guide simplified chinese功耗除錯 pdf 用來分析中斷功耗問題。本文結合該文件簡單的總結了ap端功耗問題分析手段。首先是官方功耗分析流程圖 注意幾個關鍵的名詞 modem 數據機晶元 rpm ...

高通平台LCD驅動分析

目前手機晶元廠家提供的原始碼裡包含整個lcd驅動框架,一般廠家會定義乙個 fb.c的原始檔,註冊乙個平台裝置和平台驅動,在驅動的probe函式中來呼叫register framebuffer 從而生成 dev fbx的裝置節點。這裡最重要的資料結構是fb ops,它包括fb開啟 引數設定 畫圖 配置...

高通 android平台LCD驅動分析

目前手機晶元廠家提供的原始碼裡包含整個lcd驅動框架,一般廠家會定義乙個 fb.c的原始檔,註冊乙個平台裝置和平台驅動,在驅動的probe函式中來呼叫register framebuffer 從而生成 dev fbx的裝置節點。這裡最重要的資料結構是fb ops,它包括fb開啟 引數設定 畫圖 配置...