高通ramdump
背景
高通平台下提供了一个工具,专门用来抓取内核死机以后的dump信息。如果只是非系统层面的crash(例如底层应用,安卓程序),则不能抓取dump信息。
在阅读一些文档的时候知道有这个功能,但是一直没时间尝试。
介绍
流程为:
1、进入dump模式:系统需要触发crash, 同时机器需要进行warm reset
2、用QPST工具抓取dump:当进入warm reset的时候,QPST可以开始抓取ram dump了,此时电流应该为82.58mA
(固定某个值)
3、使用QCAP进行解析。
注意,不要轻易重新上电,会导致现场丢失而错失调试机会。
触发Crash
这里有三种方法可以触发crash,然后进入warm reset:
手动输入命令
输入以下命令
echo c > /proc/sysrq-trigger
之后按下音量下键,就会主动触发crash 和 warm reset,之后就会抓取到ram dump了
路径:
硬件触发法
任何时候,拉低pmic的PS_HOLD引脚不超过200ms,就会触发crash 和 warm reset
错误的驱动
例如:修改驱动代码以及dts。
这个方法还没有验证
在msm-pm660.dtsi中修改
qcom,pon_2 {
qcom,pon-type = <1>;
qcom,support-reset = <1>;
//qcom,pull-up = <1>; --- 去掉
qcom,s1-timer = <0>; --- Specify if this pon type needs to handle bark irq
qcom,s2-timer = <2000>; ---- 2ms
qcom,s2-type = <1>; --- WARM(1)的type
//linux,code = <114>; --- 去掉
qcom,use-bark;
};
之后再按下音量下键两秒
如果是在vddmin状态下抓取的,可能需要在下面的代码中注释掉按键的触发唤醒,否则抓到的就是唤醒的ram dump,而不是vdd min下的ram dump
kernel/msm-3.18/drivers/platform/msm/qpnp-power-on.c
在qpnp_pon_request_irqs中
/* mark the interrupts wakeable if they support linux-key */
if (cfg->key_code) {
//enable_irq_wake(cfg->state_irq);--------------注释
/* special handling for RESIN due to a hardware bug */
if (cfg->pon_type == PON_RESIN && cfg->support_reset)
//enable_irq_wake(cfg->bark_irq);--------注释
;
}
解析ram dump
参考文档80-NR964-54SC(中文) 80-NR964-54
使用CrasScope分析:打开网站会提示调到java官网下载java,按提示安装,并重启浏览器。
1、软件产品在aboot.html的Product项。
2、子系统分析选择部分或者全部
3、选择meta build的路径,即modem代码路径或者单独将需要的symbol文件放到dump抓取到的
log文件夹中,symbol文件的查找可参考下来提示。
-Summary:
1) You can check your contexts.xml, such as :
<file_ref symbol="modem">
<file_name>M8936FAAAANYZQ*.elf</file_name>
<file_path>modem_proc/build/ms/</file_path>
在modem的contexts.xml文件中,查找sysbol或者elf的字符串对应的文件:
- 如果机器的代码跟编译的代码 不一致或者查找到的代码不一致,会提示红字体的解析失败。
- 成功后会生成一份文档
可以将sysmbol文件放入dump路径下,后续可以解析出更多的信息。
高通ramdump的更多相关文章
- 高通 MSM8K bootloader 之四: ramdump
前面说过高通平台,系统crash发生时,抓取crash ramdump非常重要,否则很难定位crash原因. 平台默认抓取ramdump的方法都有很强的局限性,如下: 1.PC端工具QPST提供的 M ...
- 高通 MSM8K bootloader : SBL1 .
一. MSM8K Boot Flow 图1: 高通MSM8K平台bootloader启动流程基本类似,但具体各平台,比如MSM8974.MSM8916.MSM8994等,会有微小区别. 从上图,可以看 ...
- 高通 MSM8K bootloader之一: SBL1
MSM8K Boot Flow 转自:http://www.cnblogs.com/liang123/p/6325257.html http://blog.csdn.net/F ...
- GJM : Unity3D 高通Vuforia SDK AR 开发
一.AR概念: 增强现实(Augmented Reality,简称AR),是在虚拟现实的基础上发展起来的新技术,也被称之为混合现实.是通过计算机系统提供的信息增加用户对现实世界感知的技术,将虚拟的信息 ...
- 高通vuforia+Unity3D 制作ar app
很简单就可以用Unity3D做出增强现实的一个小例子 新人第一次写博客,若出现错误望指正^_^ 需要下载de东西: unity3d 5.0 http://unity3d.com/get-unity ...
- android 6.0 高通平台sensor 工作机制及流程(原创)
最近工作上有碰到sensor的相关问题,正好分析下其流程作个笔记. 这个笔记分三个部分: sensor硬件和驱动的工作机制 sensor 上层app如何使用 从驱动到上层app这中间的流程是如何 Se ...
- 高通AR和友盟SDK的AndroidManifest.xml合并
高通AR和友盟SDK的AndroidManifest.xml合并 因为高通的AR在android中一开始就要启动,所有主Activity要设置为高通的Activity,即android:name=&q ...
- 高通平台FastMMI(FFBM模式)简介与进入方法
参考: http://blog.csdn.net/tfslovexizi/article/details/51499979 http://www.voidcn.com/blog/jimbo_lee/a ...
- 小米手机(HM1SW)高通开发android程序全过程
小米手机(HM1SW)开发android程序全过程 修改历史: 2016年5月9日 -------- 整理文档 a.增加了手机基本信息. b.增加360手机助手连接说明 2016年2月26日 - ...
- 针对高通BMS的研究 高通电量计
点击打开链接 高通8064 8974 8926等pm芯片都集成了电量计,估计后续芯片都会一直存在,现在许多项目UI状态栏电池都有百分比显示,所以需要深入分析BMS有助于解决电量方面的BUG. 一: S ...
随机推荐
- 图灵课堂netty 仿微信开发
通信的图文示例 以下是需要实现的前端界面, 准备工作:开始实现前需要技术关健字解释 第一步,这儿直接建一个maven 项目 就好,只要是可能用maven 管理包的环境就行,课程使用的版本是 java ...
- fragment的查找和移除
FragmentManager fragmentmanger = getSupportFragmentManager(); FragmentTransaction fragmenttransactio ...
- python解决urllib发送请求报错:urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:xxxx)>
在使用urllib.request.Request(url)前,添加代码放到最前面 import ssl ssl._create_default_https_context = ssl._create ...
- RHCA cl210 013 制作镜像 轮转key rabbitmq追踪 写时复制 keystone多域登录图形界面
undercloud 部署 overcloud overcloud控制节点上的组建rabbitmq 排错需要rabbitmq,开启追踪则会更详细,会消耗性能 环境问题 登录一下classroom os ...
- 02 IO口的操作
目录 前言 一.IO的概念 1.IO接口 2.IO端口 二.CPU和外设进行数据传输的方法 1.程序控制方式 1.1 无条件 1.2 查询方式 2.中断方式 3.DMA方式 一.方法介绍和代码编写 1 ...
- 区块链DApp学习开发入门 视频
学习视频: https://www.bilibili.com/video/BV13E411P7km?p=1 https://www.bilibili.com/video/BV14z4y1Z7Jd?p= ...
- 【转载】 在Ubuntu环境下,搜狗输入法乱码问题的解决
原文作者:高坦的博客 | Tan's Blog 原文链接:https://www.cnblogs.com/gtscool/p/12234104.html本文采用 BY-NC-SA 许可协议.转载请注明 ...
- 朋友吐槽我为什么这么傻不在源生成器中用string.GetHashCode, 而要用一个不够优化的hash方法
明明有更好的hash方法 有位朋友对我吐槽前几天我列举的在源生成器的生成db映射实体的优化点 提前生成部分 hashcode 进行比较 所示代码 public static void Generate ...
- MySQL数据库基本操作以及使用
MySQL数据库 操纵数据库 查看数据库 show databases; 创建数据库 create database <database_name>; 删除数据库 drop databas ...
- dataX是阿里开源的离线数据库同步工具
dataX是阿里开源的离线数据库同步工具的使用 DataX介绍: DataX 是阿里开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL.Oracle等).HDFS.Hive.OD ...