待机电流问题,如何查找EINT唤醒源
产生 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)
MT658225(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的。
待机电流问题,如何查找EINT唤醒源相关推荐
- Android 功耗(12)---如何查找待机唤醒源
如何查找待机唤醒源 系统场景的唤醒源:EINT/CONN/CLDMA EINT: PMIC的唤醒. a.Powerkey 唤醒后面的log会有pwrkey_int_handler b. rtc ala ...
- 如何确定EINT中断唤醒源
如何确定EINT中断唤醒源 [DESCRIPTION] kernel log中有wake up by EINT,但是不知道是哪个外部中断造成的唤醒 [SOLUTION] (1)打开Mt_eint.c中 ...
- 飞行模式待机电流分析详解
和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一.飞行模式测试步骤 二.飞行模式Debug 要点 三.如何确认休眠唤醒源 四.如何根据 RTC ala ...
- 手机功耗之唤醒源详解
和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一.手机功耗问题浅析博文 二.Sleep .suspend 三.SPM (System Power Ma ...
- android平板待机电流,插卡待机电流分析
和你一起终身学习,这里是程序员 Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 一.确保飞行模式待机电流正常 二.确保不插卡待机电流正常 三 ...
- android平板待机电流,Android 功耗(4)---MTK平台待机功耗分析流程
MTK平台待机功耗分析流程 1.目的 2.MTK平台各个场景功耗数据测试方法 很多功耗问题都是因为测试手法不对,列出一些常用场景功耗测试手法. 测试功耗数据之前,请先确认以下配置: 1.关闭 WIFI ...
- linux内核唤醒源,从挂起到实现,你知道内核是如何实现的?
导读 Linux 内核提供了多种睡眠状态目前总共有四种睡眠状态,分别是:挂起到空闲加电待机.挂起到内存和挂起到磁盘.这些状态分别对应 ACPI 的 4 种状态:S0,S1,S3 和 S4.挂起到空闲是 ...
- STM32实现低功耗待机(电流低至5.7uA)
刚开始进入STOPMode后,整机功耗有 300uA的,此时外围其他硬件电路电流已经可以肯定漏电流在nA级,因此调试方向在主芯片,经过实际测试,都是GPIO配置的问题,比如某个GPIO为中断输入,闲置 ...
- S32K3xx低功耗获取唤醒源
S32K3xx低功耗获取唤醒源 目录 S32K3xx低功耗获取唤醒源 一.获取复位原因 二.获取唤醒源 1.思路分析 2.程序分析 在上一篇学习总结中知道S32K3xx只有两种运行模式:RUN和Sta ...
最新文章
- Express4.x api 翻译(draft)
- tableview 展开
- P4887 第十四分块(前体) 莫队
- Unity BZip2压缩和解压,基于C#
- hashmap remove 没释放内存_面试题:来,问你几个关于HashMap的问题?
- 美国将对所有墨西哥输美商品加征关税,为何日本股市反而大跌?
- [Java网络编程基础]端口,协议
- 洛谷 P1219 ---- 八皇后
- NumPy 基础用法
- 向量距离汇总(连续值与离散值),Latex与Python实现
- 求关于运动的英语(收集)
- Python3自动生成MySQL数据字典的markdown文本的实现
- 堡垒之夜显示连接不上服务器,堡垒之夜匹配提示未能连接到服务器 | 手游网游页游攻略大全...
- android硬盘加密方法,Android硬盘加密工具
- 解决 Kotlin 换页符提示错误 Illegal escape f 无法使用问题
- ### LinuxCBT VBOX Edition ###
- 【学习资料】VMware安装到Linux系统安装全过程2021版 【手把手教,包教包会】
- ccs中c语言定义布尔常量,ccs库里面有变量的定义,我在添加了头文件后编译显示没有定义变量呢...
- 计算机ps特效教程,计算机一级photoshop给照片制作半素描效果教程
- DataCamp课程 <Tidyverse> Chapter.3 分组和概括