手机功耗分析:比对安捷伦电源数据

原创 2012年03月23日 22:23:09
import struct
binf=file("A new-3g-qq.bin","rb")
binf.seek(0x7c)
binf2=file("A OLD-3g-QQ.bin","rb")
fileheader=binf2.read(0x7c)
binf2.seek(0x7c)

checkpos=5
threhold=0.01

avergelen=5


def tocomb():
    binfc=file("comb.bin","wb+")
    binfc.write(fileheader)
    cnt=0
    rec=0
    v=0
    while 1:
            buf=binf.read(20)
            if len(buf)==20:
                dat=struct.unpack("fffii", buf)
                cnt+=1
                v+=dat[0]
                if cnt>=checkpos:
                    v = v/cnt
                    if rec<checkpos:
                        if v> threhold:
                            rec+=1
                        else:
                            rec=0
                        
                    if rec>=checkpos:
                        break
                    v=0
                    cnt=0
            else:
                break
            
    cnt=0
    rec=0
    v=0
    while 1:
            buf=binf2.read(20)
            if len(buf)==20:
                dat=struct.unpack("fffii", buf)
                cnt+=1
                v+=dat[0]
                if cnt>=checkpos:
                    v = v/cnt
                    if rec<checkpos:
                        if v> threhold:
                            rec+=1
                        else:
                            rec=0
                        
                    if rec>=checkpos:
                        break
                    v=0
                    cnt=0
            else:
                break
    val0=0
    val1=0
    delv=0
    totalcnt=0
    while 1:
            buf=binf.read(20)
            buf2=binf2.read(20)
            cnt+=1
            totalcnt=totalcnt+1.0
            if len(buf)==20 and len(buf2)==20:
                val0+=struct.unpack("f", buf[:4])[0]
                val1+=struct.unpack("f", buf2[:4])[0]
                if(cnt>=avergelen):
                    delv+=val0-val1                    
                    val0=val0/cnt
                    val1=val1/cnt
                    dat=struct.pack("fff", val0,val1,delv/totalcnt)
                    dat+='\0'*8
                    binfc.write(dat)
                    val0 = 0
                    val1 = 0
                    cnt = 0
            else:
                break            
    binfc.close()
    
def toaverage():
    cnt=0
    rec=0
    v=0
    while 1:
        buf=binf.read(20)
        if len(buf)==20:
            dat=struct.unpack("fffii", buf)
            cnt+=1
            v+=dat[0]
            if cnt>=10:
                v = v/cnt
                if rec<checkpos:
                    if v > threhold:
                        rec+=1
                    else:
                        rec=0
                    
                if rec>=checkpos:
                    print v
                v=0
                cnt=0
        else:
            break
tocomb()       

电源管理驱动与功耗

功耗耗电主要模块: CPU GPU LCD LCD背光 按键灯 案例1: marvell平台,内存运行频率对功耗影响比较大。视频播放器播放时功耗比较大。 需要在播放时对...
  • bob_fly1984
  • bob_fly1984
  • 2014年06月04日 15:22
  • 867

LCD背光,功耗,电池总结

问题:屏半亮,出现闪屏  解决方案:背光驱动中使用spin_lock_irqsave和spin_unlock_irqrestore防止多cpu竞争。...
  • ldinvicible
  • ldinvicible
  • 2014年11月19日 10:34
  • 982

第4章 ISE开发环境使用指南[FPGA开发实用教程]——4.3.5 功耗分析以及XPower的使用

1.功耗分析简介 在FPGA 设计中,功耗分析是成功设计的重要环节。针对 FPGA 设计中的功耗分析,Xilinx 公司推出了简单的速查表格和专用的功耗分析工具——XPower。对于开发初期的...
  • jbb0523
  • jbb0523
  • 2011年10月26日 16:35
  • 4378

Android手机耗电分析

最近在了解超频和耗电的事情, 先来说说CPU频率到底是怎么回事,它有什么效果,它和处理机是如何配合工作的。 CPU的处理机需要一个外部时钟来让自己工作,外部时钟接在处理机的总门上。当收到一个时...
  • a315823806
  • a315823806
  • 2016年07月23日 17:09
  • 1475

Android 功耗分析之wakelock

ss WakeLock是什么WakeLock是Android框架层提供的一套机制,应用使用该机制可以达到控制Android设备状态的目的。这里的设备状态主要指屏幕的打开关闭,cpu的保持运行。简单的理...
  • azhengye
  • azhengye
  • 2017年07月30日 22:41
  • 869

如何测试 Mediatek 平台各个场景的功耗数据?

[DESCRIPTION]   很多功耗问题都是因为测试手法不对,该FAQ列出一些常用场景功耗测试手法。   [SOLUTION]   测试功耗数据之前,请先确认以下配置: 1、关闭...
  • zqh2007
  • zqh2007
  • 2015年04月03日 15:11
  • 850

Android App功耗浅析

1.   主要原因 (1)http请求(GZIP压缩) (2)json数据解析(json解析效率主要是解析耗时),大量的数据解析 (3)数据库读写操作 (4)SD卡读写操作 (5)程序的执行的time...
  • Happy_Develop_
  • Happy_Develop_
  • 2017年04月13日 09:53
  • 502

Linux电源管理

文章转载自http://blog.csdn.net/yyt8yyt8/article/details/8107469 ACPI共有六种状态,分别是S0到S5,它们代表的含义分别是:   S0-...
  • u013806814
  • u013806814
  • 2015年10月29日 11:34
  • 774

安捷伦网络分析仪使用教程

原文地址::http://wenku.baidu.com/link?url=dMt49r_CSXIeePYh_XOjU-I2vJHu2iClGBRuucKR62xWALSUj7S_1WtfUMQPMI...
  • xqhrs232
  • xqhrs232
  • 2015年08月31日 21:54
  • 866

详解Android功耗分析工具Power Tutor的使用

PowerTutor 是由美国密歇根大学博士研究生马克 Gordon、 立德张和 Birjodh 蒂瓦纳罗伯特 · 迪克和密歇根大学摇莫理毛和雷阳在谷歌的指导下开发的。...
  • huangyabin001
  • huangyabin001
  • 2014年10月11日 10:48
  • 12473
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:手机功耗分析:比对安捷伦电源数据
举报原因:
原因补充:

(最多只允许输入30个字)