高通平台抓ram dump
高通平台抓ram dump
原文(有删改):https://blog.csdn.net/m0_37166404/article/details/80821600
背景
高通平台下提供了一个工具,专门用来抓取内核死机以后的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
解析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的字符串对应的文件:
- 如果机器的代码跟编译的代码 不一致或者查找到的代码不一致,会提示红字体的解析失败。
- 成功后会生成一份文档
输入命令,查验死机后是否直接开机而没有进入dump
指令:at+qcfg="dumpenable"
[2021-01-25_14:20:39:547]at+qcfg="dumpenable"
[2021-01-25_14:20:39:578]DumpEnable: 0
[2021-01-25_14:20:39:578]OK
at+qcfg="dumpenable",0:表示死机后直接开机at+qcfg="dumpenable",1:表示死机后进入dump
全部擦除再刷机,值应是为0
高通平台抓ram dump的更多相关文章
- 【转】高通平台android 环境配置编译及开发经验总结
原文网址:http://blog.csdn.net/dongwuming/article/details/12784535 1.高通平台android开发总结 1.1 搭建高通平台环境开发环境 在高通 ...
- 高通平台 lcd driver 调试小结
一.概述 1.1 简介 本文档主要包括LCD模块的驱动流程分析.Framebuffer相关知识.Gralloc等相关内容,以及LCD调试的一些经验和相关bug的分析和讲解. 1.2 开发环境 And ...
- 高通平台的bootloader过程【转】
====================基本知识=======================LK是(L)ittle (K)ernel的缩写.高通平台android普遍采用LK作为其bootloade ...
- 高通平台Bootloader启动流程【转】
本文转载自:http://blog.csdn.net/fang_first/article/details/49615631 ====================基本知识============= ...
- 高通平台msm8909 LK 实现LCD 兼容
前段时间小米出现红米note2 换屏门,现在我们公司也要上演了:有两个供应商提供不同IC 的LCD panel. 软件区分的办法是读取LCD IC 的ID 寄存器,下面解析高通平台LK中LCD兼容的过 ...
- [修改高通平台WIFI MAC 地址] & [adb over wifi]
[修改高通平台WIFI MAC 地址]fccmd --helpfccmd startfccmd getwifimacfccmd setwifimac 74:AC:5F:F5:D7:40 [adb ov ...
- 高通qxdm抓取sensor的log【学习笔记】
高通qxdm抓取sensor的log 打开qxdm,打开设置界面,去掉其他无关的log,打开Log packets .Message packets的SNS的log 之后需要把端口打开,把端口打开之后 ...
- Android : 高通平台Camera调试之SetpropKey/camxoverridesettings.txt
高通相关网址:Createpoint: https://createpoint.qti.qualcomm.com(可下载文档,Release Note等)Chipcode: https://chipc ...
- android 6.0 高通平台sensor 工作机制及流程(原创)
最近工作上有碰到sensor的相关问题,正好分析下其流程作个笔记. 这个笔记分三个部分: sensor硬件和驱动的工作机制 sensor 上层app如何使用 从驱动到上层app这中间的流程是如何 Se ...
- 高通平台MSM8916LCM模块移植(一)-bootloader部分
此次移植打算分成两个模块来说,bootloader部分和kernel部分.在实际的移植调试过程中也是这么分成了两个部分分别调试. 高通平台中的bootloader叫做LK(Little Kernel, ...
随机推荐
- van-tab吸顶后头部透明色渐变响应
方法一:监听滚动事件 $('.scrollContent').bind('touchmove', function(e){ var winHeight = $(window) ...
- Oracle、达梦:_ 英文下划线 让LIKE查询失效的解决方案:ESCAPE关键字
oracle/dm:_ 英文下划线让like查询失效的解决方案:ESCAPE关键字 -- 可以查询出带(\)的值 SELECT "f1","f2" FROM & ...
- 【python爬虫案例】用python爬豆瓣电影TOP250排行榜!
目录 一.爬虫对象-豆瓣电影TOP250 二.python爬虫代码讲解 三.同步视频 四.获取完整源码 一.爬虫对象-豆瓣电影TOP250 前几天,我分享了一个python爬虫案例,爬取豆瓣读书TOP ...
- BIN文件格式
BIN文件里面包含的只有代码生成的机器码,不像ELF文件或者obj文件一样还包含其他东西.MS-DOS.设备驱动文件以及操作系统的bootloader文件都是BIN文件. 在NASM中,BIN文件默认 ...
- WEB服务与NGINX(23)- nginx的四层负载均衡功能
目录 1. nginx实现四层的负载均衡 1.1 nginx四层负载配置参数 1.2 负载均衡示例-mariadb 1. nginx实现四层的负载均衡 nginx从1.9.0版本开始支持TCP模式的负 ...
- WEB服务与NGINX(11)-NGINX状态页
nginx状态页 nginx的状态页功能用于输出nginx的基本状态信息,基于ngx_http_stub_status_module模块实现. 默认情况下不生成此模块,应使用--with-http_s ...
- HJ212-2017协议数据采集和接收
1.客户端TCP和UDP的数据发送工具 工具和软件下载页面如下:http://www.zlmcu.com/document/tcp_debug_tools.html 2.服务端数据接收监控软件 IPA ...
- 各大插件市场智能助手评分榜出炉!百度Comate稳居第一
近日,在VSCode.Jetbrains等各大插件市场智能助手评分榜中,百度Comate分别以4.5和4.4位列第一,通义灵码位居第二.第三,CodeGeeX.iFlyCode.aiXcoder.Gi ...
- SpringCloud解决feign调用token丢失问题
背景讨论 feign请求 在微服务环境中,完成一个http请求,经常需要调用其他好几个服务才可以完成其功能,这种情况非常普遍,无法避免.那么就需要服务之间的通过feignClient发起请求,获取需要 ...
- mongodb的replication与shard分片结合使用详解
部署脚本 #!/bin/bash #复制集配置 IP='10.0.0.12' #主机ip NA='rs3' #复制集名称 if [ "$1" = "reset" ...