1、查找唤醒源

<7>[  129.680310] -(0)[913:system_server][name:mt_sleep&][SLP] @@@Chip_pm_enter@@@

<4>[  129.680310] -(0)[913:system_server][name:mt_spm_internal&][SPM] wake up .........................

<7>[  129.690364] .(0)[913:system_server][name:mt_sleep&][SLP] @@@Chip_pm_finish@@@

产生EINT的channel会记录在EINT_STA状态寄存器里面,这一点所有平台都一样;只要知道这个状态寄存器的值就可以知道哪个channel发生了中断;但是不同平台的log细节会有些不同。

--->89/72/82在wakeup时,如果唤醒源是EINT,会主动打印出EINT_STA的值

--->77默认不会打印这个寄存器,需要先开启EINT_DEBUG这个宏,才能看到EINT_STA的值

kernel log分析:

---------------------------------------------------------------------------------------------------------------------------

【step1 - 从kernel log中找到EINT channel id】

MT6577

[Power/Sleep] wake up by EINT (0x20)(0x4)(180689)  (* 这里0x20是EINT wakesrc id,0x4是sleep ISR寄存器状态,都不是channel id!)

EINT Module - EINT_STA = 0x400,--->bit[n] =1, channel id 就等于n

MT6589/MT6582

[SPM] wake up by EINT (0x20)(0x20)(370340)

EINT_STA:

3 --->这个值就是EINT channel id,不需要转换

MT6572

[PCM WAKEUP NORMAL]CPU WAKE UP BY: EINT :0x10000 --->bit[n] =1, channel id 就等于n

【step2 - 过滤PMIC触发的EINT唤醒】

pwrkey/charger/usb/这些事件发生时会有EINT产生,走的都是PMIC的EINT channel;并且89/72平台上,rtc(比如第三方APK造成的唤醒)和其他一些中断也会走PMIC的EINT;因此要先把PMIC EINT过滤掉,不需要去关注这个channel上的唤醒(当然rtc唤醒的话还是要分析的,只不过并不是去分析EINT唤醒源了)。所幸PMIC的EINT channel id是固定的,不能修改,所以可以直接看channel id来过滤,各平台的PMIC EINT channel如下:

MT6577    9  (EINT_STA=0x400)

MT6589    3  (EINT_STA=3)

MT6572    16(EINT_STA=0x10000)

MT6582    25(EINT_STA=25)

【step3 -从cust_eint.h中找到触发EINT的模块】

CUST_EINT_XXX_NUM   对应的值就是XXX模块的EINT channel id。

如果在这个文件中没有找到造成唤醒的channel id的定义,说明可能没有用DCT Tool去配置EINT,而是直接写死在代码里,那就尝试搜索所有调用mt65xx_eint_registration的代码,看有没有注册这个channel id的。

Android功耗(9)---MTK功耗问题分析1相关推荐

  1. Android Linux Alarm 对功耗的影响

    Android Linux Alarm 对功耗的影响 技术标签: alarm  rtc  android  linux 文章目录 1. Alarm介绍 1.1 alarm的几种类型及区别 1.2 al ...

  2. android功耗测试方法,手机功耗测试指南

    和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分 功耗 知识点,通过阅读本篇文章,您将收获以下内容:1.测试功耗手机配置 2.飞行模式待机功耗 3.单SIM ...

  3. Android 8.0系统源码分析--Camera processCaptureResult结果回传源码分析

    相机,从上到下概览一下,真是太大了,上面的APP->Framework->CameraServer->CameraHAL,HAL进程中Pipeline.接各种算法的Node.再往下的 ...

  4. MTK LIGHT 代码分析

    MTK LIGHT 代码分析 项目上需要做些客制化的东西,需要用到light 一块的东西,好久以前看过,但是没有记录下来,这次重新看看,然后记录下来. lightservice start priva ...

  5. android P MediaCodec编解码流程分析

    1.MediaCodec初始化流程分析 通过上面流程分析可知,MediaCodecList初始化是通过调用它的getLocalInstance函数,然后在里面new的MediaCodecList对象. ...

  6. android8.1上musicfx,Android自带音频均衡器MusicFx分析

    Android自带音频均衡器MusicFx分析 种种原因,我要简单分析一个Android中built-in的音频均衡器MusicFx.重点是它的默认值的来历.网上很少有文章讲了这个的除了这篇<c ...

  7. Android Studio - HPROF文件查看和分析工具

    Android Studio - HPROF文件查看和分析工具 Android Studio 翻译的官方文章 原文链接 当你在Android Studio中使用Android Monitor里的Mem ...

  8. Android中启动Activity(startActivity)流程图分析

    在上篇博文< Android中ActivityManagerService与应用程序(客户端)通信模型分析>中,我们从宏观架构上掌握 ActivityManagerService与应用程序 ...

  9. Android Camera 系统架构源码分析

    Android Camera 系统架构源码分析(1)---->Camera的初始化 Android Camera 系统架构源码分析(2)---->Camera的startPreview和s ...

  10. Android 6.0.1 Location Service 分析

    定位服务是手机上最常用的功能之一,据说也是相对比较简单的服务,所以从这里入手.其他系统服务的架构都是类似的.明白其中一个之后,再去理解其他的会容易得多.下面以 Android 源码为基础,大致分析了 ...

最新文章

  1. html中内联元素和块元素的区别、用法以及联系
  2. 怎样解决样本不平衡问题
  3. 实现 对象在内存中的引用一致性 之第一步
  4. selection at the technology management
  5. Spring Boot中使用Ribbon软负载
  6. UI素材|让设计有愉悦的体验,app交互动效的重要性!
  7. php文章管理系统_PHP-小程序:(1)开发环境搭建
  8. python3+Neo4j+flask,汽车行业知识图谱项目实战
  9. Mac下安装Fiddler抓包工具(别试了,会报错,没办法使用)
  10. ASP.NET中用healthMonitor属性用法
  11. Unity3D开发工具介绍
  12. 雅型钢五金大全(五金计算器)绿色便携版V20220512 | 实用五金计算软件下载
  13. 蓝宝石rx470d原版bios_狼神矿卡烤机89°C!强刷蓝宝石RX570超白金显卡BIOS降温75°教程...
  14. 汽车电子技术——传感器感知技术
  15. android隐藏root环境,Android安全检查之Root环境检测
  16. python拟合直线的斜率_Python:直线,斜率k是已知的,一点P1是已知的,长度P1P2是已知的,如何得到P2?...
  17. 路飞学城Python-Day49
  18. 删除脚注或尾注的横线
  19. T三说茶丨教你分辨头采茶、头春茶、明前茶、雨前茶!
  20. 网站商务BD(Bussiness Development--商务拓展)

热门文章

  1. Px_ipc_name()函数
  2. ROS 教程之 navigation : 用 move_base 控制自己的机器人(1)
  3. html是执行语言吗,HTML的基本语言
  4. 菜鸟学习笔记:Java提升篇10(网络2——UDP编程、TCPSocket通信、聊天室案例)
  5. html怎么更改手势手型,弹钢琴时纠正手型手势的正确方法
  6. mysql syntaxerror_解析bitronix连接MySQL出现MySQLSyntaxErrorException错误的解决方法
  7. mysql 事务 隔离级别_MySQL的四种事务隔离级别
  8. 【Hadoop 分布式部署 十 一: NameNode HA 自动故障转移】
  9. 程序猿的骄傲,以及骄傲背后真实的原因
  10. 计蒜客蓝桥杯模拟赛5 引爆炸弹【并查集】