高通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 ...
随机推荐
- 人工智能时代,前端全栈成就独立开发工程师 next.js 开发实战
next 可以服务端渲染,可以客户端渲染,让前端同事更有性价比,让我们做得可以更多 由于next.js 是基础于react 所以在正式学习next.js 之前我们了解一下react 什么叫模块 ,就 ...
- app专项测试:app弱网测试(测试工具)
app专项测试:app弱网测试(测试工具) 除了常用的 fiddler,charles 可以模拟弱网,还有硬件工具弱网仪 HoloWAN也可以模拟弱网 使用弱网仪有以下优点:1.即插即用,无需调试和复 ...
- web3 产品介绍 Dune Analytics 区块链的数据探索和可视化 链上热点和趋势一手掌握
Dune Analytics 是一个强大的数据分析平台,旨在帮助用户在区块链上进行数据探索和可视化. Dune Analytics的特点: 数据查询与可视化:Dune Analytics允许用户从多个 ...
- 图书《数据资产管理核心技术与应用》核心章节节选-3.1.2. 从Spark 执行计划中获取数据血缘
本文节选自清华大学出版社出版的图书<数据资产管理核心技术与应用>,作者为张永清等著. 从Spark 执行计划中获取数据血缘 因为数据处理任务会涉及到数据的转换和处理,所以从数据任务中解析血 ...
- ECMO(体外膜氧合)的使用费用为什么会这么高?
给一个大致的费用: 相关: https://www.bilibili.com/video/BV1rc411H7uT/ https://haokan.baidu.com/v?pd=wisenatural ...
- Audio2Gesture:NVIDIA 黄仁勋的3D虚拟人技术 —— 元宇宙
相关: https://www.nvidia.com/en-us/on-demand/session/omniverse2020-om1573/ https://www.nvidia.com/zh-t ...
- tensorflow 数据集对象(tf.data)的使用( tf.data.Dataset 、tf.data.TextLineDataset 、 tf.data.TFRecordDataset ) 示例
tensorflow 使用数据集(tf.data)的方法对数据集进行操纵. 1. 对 数组(内存向量) 进行操纵 : import tensorflow as tf input_dat ...
- 国产显卡如何正确打开 —— Windows平台下使用驱动精灵为国产显卡更新驱动(兆芯平台)
买了一个国产的电脑,全国产,CPU慢些也就忍了,软件兼容性差.稳定性差也忍了,大不了就用来上网看电影嘛,关键问题是这个国产显卡放电影居然有些卡,播放电影的时候存在明显的卡顿感,这简直是把国产电脑在我脑 ...
- 【转载】 linux中umask命令介绍
版权声明:本文为CSDN博主「立二拆四i」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/weixin_4408 ...
- dubbo服务治理(一)降级
在线网站一般都会有服务器压力剧增的时候,比如说网上商城的促销,这个时候常用的手段就是服务降级,根据当前业务情况及流量对一些服务和页面有策略的降级,以此缓解了服务器资源压力,以保证核心任务的正常运行,同 ...