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

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

MT6577 9 EINT_STA=0x400

MT6589 3 EINT_STA=3

MT6572 16EINT_STA=0x10000

MT658225EINT_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的。

待机电流问题,如何查找EINT唤醒源相关推荐

  1. Android 功耗(12)---如何查找待机唤醒源

    如何查找待机唤醒源 系统场景的唤醒源:EINT/CONN/CLDMA EINT: PMIC的唤醒. a.Powerkey 唤醒后面的log会有pwrkey_int_handler b. rtc ala ...

  2. 如何确定EINT中断唤醒源

    如何确定EINT中断唤醒源 [DESCRIPTION] kernel log中有wake up by EINT,但是不知道是哪个外部中断造成的唤醒 [SOLUTION] (1)打开Mt_eint.c中 ...

  3. 飞行模式待机电流分析详解

    和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一.飞行模式测试步骤 二.飞行模式Debug 要点 三.如何确认休眠唤醒源 四.如何根据 RTC ala ...

  4. 手机功耗之唤醒源详解

    和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一.手机功耗问题浅析博文 二.Sleep .suspend 三.SPM (System Power Ma ...

  5. android平板待机电流,插卡待机电流分析

    和你一起终身学习,这里是程序员 Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 一.确保飞行模式待机电流正常 二.确保不插卡待机电流正常 三 ...

  6. android平板待机电流,Android 功耗(4)---MTK平台待机功耗分析流程

    MTK平台待机功耗分析流程 1.目的 2.MTK平台各个场景功耗数据测试方法 很多功耗问题都是因为测试手法不对,列出一些常用场景功耗测试手法. 测试功耗数据之前,请先确认以下配置: 1.关闭 WIFI ...

  7. linux内核唤醒源,从挂起到实现,你知道内核是如何实现的?

    导读 Linux 内核提供了多种睡眠状态目前总共有四种睡眠状态,分别是:挂起到空闲加电待机.挂起到内存和挂起到磁盘.这些状态分别对应 ACPI 的 4 种状态:S0,S1,S3 和 S4.挂起到空闲是 ...

  8. STM32实现低功耗待机(电流低至5.7uA)

    刚开始进入STOPMode后,整机功耗有 300uA的,此时外围其他硬件电路电流已经可以肯定漏电流在nA级,因此调试方向在主芯片,经过实际测试,都是GPIO配置的问题,比如某个GPIO为中断输入,闲置 ...

  9. S32K3xx低功耗获取唤醒源

    S32K3xx低功耗获取唤醒源 目录 S32K3xx低功耗获取唤醒源 一.获取复位原因 二.获取唤醒源 1.思路分析 2.程序分析 在上一篇学习总结中知道S32K3xx只有两种运行模式:RUN和Sta ...

最新文章

  1. Express4.x api 翻译(draft)
  2. tableview 展开
  3. P4887 第十四分块(前体) 莫队
  4. Unity BZip2压缩和解压,基于C#
  5. hashmap remove 没释放内存_面试题:来,问你几个关于HashMap的问题?
  6. 美国将对所有墨西哥输美商品加征关税,为何日本股市反而大跌?
  7. [Java网络编程基础]端口,协议
  8. 洛谷 P1219 ---- 八皇后
  9. NumPy 基础用法
  10. 向量距离汇总(连续值与离散值),Latex与Python实现
  11. 求关于运动的英语(收集)
  12. Python3自动生成MySQL数据字典的markdown文本的实现
  13. 堡垒之夜显示连接不上服务器,堡垒之夜匹配提示未能连接到服务器 | 手游网游页游攻略大全...
  14. android硬盘加密方法,Android硬盘加密工具
  15. 解决 Kotlin 换页符提示错误 Illegal escape f 无法使用问题
  16. ### LinuxCBT VBOX Edition ###
  17. 【学习资料】VMware安装到Linux系统安装全过程2021版 【手把手教,包教包会】
  18. ccs中c语言定义布尔常量,ccs库里面有变量的定义,我在添加了头文件后编译显示没有定义变量呢...
  19. 计算机ps特效教程,计算机一级photoshop给照片制作半素描效果教程
  20. DataCamp课程 <Tidyverse> Chapter.3 分组和概括

热门文章

  1. 爆肝一周,用Python在物联网设备上写了个智能语音助手
  2. 争议中的云算力市场 |链捕手
  3. YOLOV5测试及训练自己的数据集
  4. IPv6解决方案ND防攻击技术白皮书
  5. 12代酷睿游戏本电脑哪个牌子好?游匣G15不容错过
  6. 初学者指南:如何毫不费力地优化Jupyter笔记本?
  7. 毫无剧透!电影《我不是药神》,“活该”你零差评,口碑炸裂!
  8. 聚焦云上安全,2021首届-西部云安全峰会将在西安召开
  9. 极狐GitLab 和 ArgoCD 的集成实践
  10. 深度学习模型中的参数数量(备忘)