MTK 驱动开发(34)---待机功耗调试
1.概要
待机平均电流非常容易出问题,也很难分析理清楚,应为涉及APK/Modem/Wifi这些不确定的因素,这类问题一定要遵循一个处理原则,到底在出现啥样的环境下复现,做几个实验,给出清晰的问题描述,问题复制条件、电流波形。
2、背景知识
2.1 最干净的待机电流波形
最干净的待机电流波形应该只有Paging,不过要注意两点
1)每个Paging 的间隔,不同的网络不一样,有可能是256ms,512ms,1.24S,2.48S.
2)每个Paging 起来的burst可能不止一个,单独一个的是PICH,起来两个的是PICH+PCH,但是良好的网络中出现PCH 的次数不能太多。
2.2 唤醒源
系统进入到suspend 后会由SPM 控制,系统由suspend状态转到resume 状态必须先唤醒CPU,所谓的唤醒源其实是一些系统IRQ 资源,通过设定SPM的寄存器,可以选择哪些irq可以被SPM处理并作为系统唤醒源,而哪些不行。MTK 平台为suspend/deep idle/sodi状态设定了不同的唤醒源,suspend的唤醒源可以在mt_spm_sleep.c中找到,
#if defined(CONFIG_MICROTRUST_TEE_SUPPORT)
#define WAKE_SRC_FOR_SUSPEND \(WAKE_SRC_R12_PCM_TIMER | \WAKE_SRC_R12_PMCU_WDT_EVENT_B | \WAKE_SRC_R12_KP_IRQ_B | \WAKE_SRC_R12_CONN2AP_SPM_WAKEUP_B | \WAKE_SRC_R12_EINT_EVENT_B | \WAKE_SRC_R12_CONN_WDT_IRQ_B | \WAKE_SRC_R12_CCIF0_EVENT_B | \WAKE_SRC_R12_CCIF1_EVENT_B | \WAKE_SRC_R12_PMCU_SPM_IRQ_B | \WAKE_SRC_R12_USBX_CDSC_B | \WAKE_SRC_R12_USBX_POWERDWN_B | \WAKE_SRC_R12_EINT_EVENT_SECURE_B | \WAKE_SRC_R12_MD1_WDT_B | \WAKE_SRC_R12_CLDMA_EVENT_B | \WAKE_SRC_R12_SCP_SPM_IRQ_B | \WAKE_SRC_R12_SCP_WDT_EVENT_B | \WAKE_SRC_R12_C2K_WDT_IRQ_B | \WAKE_SRC_R12_CSYSPWREQ_B | \WAKE_SRC_R12_ALL_MD32_WAKEUP_B)
#else
#define WAKE_SRC_FOR_SUSPEND \(WAKE_SRC_R12_PCM_TIMER | \WAKE_SRC_R12_PMCU_WDT_EVENT_B | \WAKE_SRC_R12_KP_IRQ_B | \WAKE_SRC_R12_CONN2AP_SPM_WAKEUP_B | \WAKE_SRC_R12_EINT_EVENT_B | \WAKE_SRC_R12_CONN_WDT_IRQ_B | \WAKE_SRC_R12_CCIF0_EVENT_B | \WAKE_SRC_R12_CCIF1_EVENT_B | \WAKE_SRC_R12_PMCU_SPM_IRQ_B | \WAKE_SRC_R12_USBX_CDSC_B | \WAKE_SRC_R12_USBX_POWERDWN_B | \WAKE_SRC_R12_EINT_EVENT_SECURE_B | \WAKE_SRC_R12_MD1_WDT_B | \WAKE_SRC_R12_CLDMA_EVENT_B | \WAKE_SRC_R12_SCP_SPM_IRQ_B | \WAKE_SRC_R12_SCP_WDT_EVENT_B | \WAKE_SRC_R12_C2K_WDT_IRQ_B | \WAKE_SRC_R12_CSYSPWREQ_B | \WAKE_SRC_R12_SEJ_EVENT_B | \WAKE_SRC_R12_ALL_MD32_WAKEUP_B)
#endif /* #if defined(CONFIG_MICROTRUST_TEE_SUPPORT) */
全部唤醒源定义在mt_spm.h 中,重要关注的是以下几个唤醒源:
1)KP 键盘 如果需要侧键唤醒,需要打开这个唤醒源
2)EINT外部中断,其中最重要的是PMIC 中断(RTC alarm 也是这个中断)
3)CONN2AP connectivity子系统
4)CCIF0_MD 和CCIF1_MD 旧架构中使用的modem 唤醒源
5)CLDMA_MD 新架构中使用的唤醒源
6)SEJ 目前只有指纹模块用到
对于modem和connectivity ,不同的架构有不同的唤醒源,在分析问题之前需要确认清楚架构。
pmic/modem/connectivity 用到的EINT channel 的每个平台也不一样,可以在各自的驱动中找到注册的EINT channel,也可以在DWS中看定义。
唤醒源是我们定位问题的关键,需要了解清楚哥哥MTK 硬件平台的差异。
3 、Debug 流程
3.1 要测试的机器确保传导测试都pass
如果传导测试失败,请RF 相关的人处理,检查下面的因子:
1)RF 参数
2)白卡和仪器是否适配
3)仪器设定是否正确
3.2 确认测试机和卡是可以用于功耗测试的
确认手机进行过校正
确认手机是装过天线的
确认手机又IMEI 号
确认modem基本功能正常
确认SIM 不欠费和不是特殊SIM卡
3.3搞清楚问题复现的环境、复现方法
复现问题时插的卡以及modem类型:
1)单卡还是双卡
2)卡类型(移动、电信、联通、2G、3G、4G )
3)每个卡对应的modem
A)问题描述:
B)log
C) 电流波形
MTK 驱动开发(34)---待机功耗调试相关推荐
- 详解关于MTK驱动开发学习教程
MTK驱动开发学习教程是本文要介绍的内容,主要是来了解MTK的驱动开发的过程,文章中很详细的讲解了这个问题,具体内容来看本文详解. 一.Charge Parameters. 1.相关文件chr_par ...
- MTK 驱动开发(35)---待机功耗分析流程
1.目的 2.MTK平台各个场景功耗数据测试方法 很多功耗问题都是因为测试手法不对,列出一些常用场景功耗测试手法. 测试功耗数据之前,请先确认以下配置: 1.关闭 WIFI/BT/GPS,关闭数据 ...
- MTK 驱动开发(16)---LCM 移植
对于LCM驱动移植,一般分为三部曲: 1.硬件IO口配置: 2.确保LCM背光能够正常点亮: 3.LCM驱动移植: 硬件电路: 1.GPIO配置 打开 mediatek\dct\DrvGen.exe ...
- 【驱动开发】WinDbg 双机调试 Windows XP
起序:最近学习驱动开发,环境搭建,记录一下. 一.软件环境 宿主机:Windows 10 虚拟机:VMware Workstation 16.1.1 Pro 系统:windows_xp_profess ...
- 驱动开发环境以及双机调试环境搭建
工作将近三个月了,做了几个项目,想在这里总结一下,方便以后自己或者大家借鉴.最近一个项目里需要做一个文件过滤驱动,我打算把整个过程中遇到的坑和解决方法,总结一下.这篇博客主要帮助大家实现驱动程序的开发 ...
- MTK 驱动开发(39)--低功耗分析工具
1.功耗问题抓日志 功耗问题抓log请遵循几条原则: ------------------------------------------------------------------------- ...
- MTK 驱动开发(33)---Vibrator
Vibrator 驱动开发相对比较简单 1.配置功能及参数 vibrator0:vibrator@0 {compatible = "mediatek,vibrator";vib_t ...
- MTK 驱动开发(32)---Sensor 移植及调试2
接续上一节,本文主要介绍驱动部分的客制化 3. Sensor Driver 的客制化 主要涉及三个方面: 1)配置 codegen.dws ---I2C 地址.eint.gpio 2)配置驱动参数 3 ...
- MTK 驱动开发(39 )---待机流程
MTK kernel待机流程 echomem > /sys/power/state [android层调用节点] state_store() ...
最新文章
- PTA数据结构与算法题目集(中文)7-38
- 手把手教你画酷炫环形图(图文详解)
- (三)ajax请求不同源之websocket跨域
- Functional Options
- javafx FlowPane布局
- 机器学习之异常点检测
- mysql的事物隔离级别
- 【转】zookeeper 的监控工具
- 为什么突然变乱码_9102年了,还不知道Android为什么卡?
- MapReduce:出租车数据案例
- 权益证明,私钥攻击与无法伪造的奢侈
- MacBook安装Golang Oracle数据库驱动程序
- 面试问题:2018年全国大学生数学建模竞赛项目(RGV动态调度模型、贪婪算法)
- fanuc机器人IO分配报警信号分配无效
- U880纯GPS定位综合解决方案,支持谷歌地图老虎地图百度地图
- 在 Mac 上重命名 Apple Magic Mouse的方法!
- LCD字体前端实现(最详细)
- 马赛克效果的滤镜实现
- Java在PDF中添加水印(文本/图片水印)效果import com.spire.pdf.*; import com.spire.pdf.graphics.*; import java.awt.*;
- gitlab企业微信webhook机器人