
AI-摘要
Tianli GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
[Android稳定性] 第001篇 [方法篇] 高通Android平台稳定性分析介绍
iliuqi0. 前言
鉴于研发人员当遇到底层稳定性问题时(主要为Linux kernel crash),不知道如何分析或者不知道使用哪些工具进行分析,所以本文主要介绍这方面的基础知识点。
1. 复位类型
首先我们需要了解高通pmic的几种复位类型:
复位类型 | 解释 | 备注 |
---|---|---|
warm reset | Many power rails are not reset, for example DDR | 这种等级的reset将保留DDR memory以及一部分的PMIC寄存器 |
hard reset | It will not reset digital/analogic power domain inside PMIC,but will reset power rails that are exported externally | 将清空DDR memory,以及保留和warm reset一样的部分PMIC寄存器 |
Dvdd hard reset | It will reset digital power supplied domain inside PMIC | 将清空DDR memory,以及保留更多的PMIC寄存器,类似拔电池并保留VCOIN的状态 |
Xvdd hard reset | It will reset digital and analog power supplied domain in side PMIC | 将清空DDR memory和PMIC寄存器 |
简单来说:
- 如果想达到拔电池的reset效果,可以通过配置DVDD hard reset来实现
- 如果要达到拔掉纽扣电池的效果,配置XVDD hard reset。
- 如果要想触发reset后可以抓dump,需要warm reset。
所以当我们出现 Linux kernel crash
时,需要抓的dump能够被抓到,实际上也就是因为进入了 warm reset
模式,当 warm reset
重启后进入了抓log的模式,然后配合高通的QPST工具就可以将异常现场的 ramdump
抓取出来。
2. 解析dump的工具
输入 | 符号表 | 解析器 | 路径 | 输出 |
---|---|---|---|---|
Fulldump | Vmlinux*.ko | Linux-Ramdump-Parser | vendor\qcom\opensource\tools\linux-ramdump-parser-v2(通用部分) vendor\qcom\proprietary\ramdump-parser(芯片相关部分) |
dmesg_TZ.txt tasks tasks_sched_stats ftrace logcat msm_rtb qsee_log hyp_log ipc_log memory status |
FulldumpMinidump | AOP_AAAAANAZO_aop.elf | hansei.py | AOP.HO.4.0\aop_proc\core\bsp\aop\scripts\hansei\hansei.py | aop-summary.txt aop-log.txt |
OCIMEM.BINmd_TZ_IMEM.BIN | print_tz_log.py | TZ.XF.5.16\trustzone_images\ssg\bsp\tz\build\tz\A53_64\WAPIONAA\print_tz_log.py | tzlog-parsed.txt | |
tzlog-parsed.txt | NoC_error_decode_log.py | TZ.XF.5.16\trustzone_images\core\systemdrivers\icb\scripts\nocerrorh\NoC_error_decode_log.py | noc.txt | |
devicetree.dtb | dtc | devicetree.txt | ||
DCC_SRAM.BIN | dcc_parser.py | vendor\qcom\opensource\tools\dcc_parser | dcc_captured_data.xml |
3. Linux ramdump parser
4. TRACE32的使用
5. 系统异常分类及原因
评论
匿名评论隐私政策