电源管理驱动与功耗

来源:互联网 发布:网络语言73是什么意思 编辑:程序博客网 时间:2024/05/17 01:07
功耗耗电主要模块:
CPU
GPU
LCD
LCD背光

按键灯


设备节点调试

sys/devices/system/cpu/cpu1/online

sys/devices/system/cpu/cpu1/cpufreq/stats/time_in_state

 /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

CPU频率切换表

/sys/devices/system/cpu/cpu0/cpufreq/stats/trans_table

案例1:
marvell平台,内存运行频率对功耗影响比较大。视频播放器播放时功耗比较大。
需要在播放时对内存进行降频处理,暂停或关闭后恢复内存频率。(JAVA层可直接读写设备节点)
案例2:音乐播放器灭屏功耗高
CPU的频率有几个档位,在音乐播放过程中统计下CPU运行频率百分比情况,查看下CPU是否总是或绝大多数都在CPU的
最高频率运行。可以和功耗低的其它APK做对比测试,对比CPU频率的占用情况。
可以查看电流情况是否出现周期性变化,背后有可能就是某个程序周期性的占用CPU资源。
最后定位是:灭屏播放时widget界面的播放器挂件也在刷新进度条导致。

例如:灭屏播放时应该停止歌词滚动、进度条刷新、图标闪烁等操作。

案例3:划屏操作时平均电流过大

正常情况是划屏操作时电流会马上跃起后立刻回落。出现电流过大的原因是:电流马上跃起后电流不会立刻回落,会有一段时间的迟滞。

案例4:传感器待机功耗高问题

在手机待机时候通过kernel日志查看:各个sensor模块是否都调用了early_suspend,进入sensor低功耗模式。

需要检查sensor的硬件原理图。虽然芯片进入到低功耗模式,但是所连的总线或中断管脚并没有释放,

申请和释放GPIO管脚的函数:gpio_request()和gpio_free()。

案例5:TW待机功耗大

当TW待机和唤醒流程都正确的情况下。需要查看TW在待机和唤醒的时候中断脚和复位脚的状态。

管脚状态可以和vendor联系确认

案例6:灭屏通话功耗

通过串口查看AP侧是否待机,通话过程中AP侧不参与必须待机以减少功耗。

那影响功耗的模块主要就是modem侧。


总结1:应用程序在灭屏的时候可以停止一些不必要的操作,减小CPU利用率,降低功耗。

总结2:通过观察电流测试曲线来看有没有一些周期性的电流变化。

总结3:芯片耗电除了芯片内部本身耗电外,还有就是芯片管脚漏电情况。所以当chip配置成低功耗模式后,还需要把其所连的管脚

配置正确状态,因为管脚配置不正确会导致漏电。

总结4:当I2C数据线和时钟线产生压差时候,则总线上会产生功耗。

总结5:一般功耗分析方法是:先从kernel日志分析,关键字Suspending console(s) (use no_console_suspend to debug)

是linux标准待机标志,两次待机之间的时间就是CPU唤醒运行的时间。通过kernel时间点再去定位system日志的时间点,然后确定是哪一个进程

导致CPU不能进入休眠,也就是不能进入标准的linux待机流程。(通常需要查看的是客户端进程)


0 0
原创粉丝点击