<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://www.mywiki.cn/Hovercool/index.php?action=history&amp;feed=atom&amp;title=Android%E7%B3%BB%E7%BB%9F%E7%B1%BB%E9%97%AE%E9%A2%98%E5%88%86%E6%9E%90%E6%96%B9%E6%B3%95</id>
	<title>Android系统类问题分析方法 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://www.mywiki.cn/Hovercool/index.php?action=history&amp;feed=atom&amp;title=Android%E7%B3%BB%E7%BB%9F%E7%B1%BB%E9%97%AE%E9%A2%98%E5%88%86%E6%9E%90%E6%96%B9%E6%B3%95"/>
	<link rel="alternate" type="text/html" href="https://www.mywiki.cn/Hovercool/index.php?title=Android%E7%B3%BB%E7%BB%9F%E7%B1%BB%E9%97%AE%E9%A2%98%E5%88%86%E6%9E%90%E6%96%B9%E6%B3%95&amp;action=history"/>
	<updated>2026-09-01T05:44:35Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://www.mywiki.cn/Hovercool/index.php?title=Android%E7%B3%BB%E7%BB%9F%E7%B1%BB%E9%97%AE%E9%A2%98%E5%88%86%E6%9E%90%E6%96%B9%E6%B3%95&amp;diff=852&amp;oldid=prev</id>
		<title>2015年5月6日 (三) 12:09 Hovercool</title>
		<link rel="alternate" type="text/html" href="https://www.mywiki.cn/Hovercool/index.php?title=Android%E7%B3%BB%E7%BB%9F%E7%B1%BB%E9%97%AE%E9%A2%98%E5%88%86%E6%9E%90%E6%96%B9%E6%B3%95&amp;diff=852&amp;oldid=prev"/>
		<updated>2015-05-06T12:09:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[系统卡]]&lt;br /&gt;
&lt;br /&gt;
= MTK平台 =&lt;br /&gt;
&lt;br /&gt;
1、db分析&lt;br /&gt;
&lt;br /&gt;
会在/data/aee_exp下生成db文件，解析出来后可以得到许多文件，这里面有很多价值的信息。&lt;br /&gt;
&lt;br /&gt;
如 hw reboot时的 SYS_LAST_KMSG(有时没有这部分内容，这时可以多试几次，后面可能就会包含这些信息)：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 CPU 0, nested_panic_time=0&lt;br /&gt;
wdt restart.&lt;br /&gt;
wdt hw reboot mode.&lt;br /&gt;
Nested panic&lt;br /&gt;
Log for the previous panic:&lt;br /&gt;
pc: c0440e14 lr: c00d75a8 psr: 60000113&lt;br /&gt;
sp: daf49d08 ip: c0a134c8 fp: daf49d2c&lt;br /&gt;
r10: 00000000 r9: 00000000 r8: 00000000&lt;br /&gt;
r7: 00000002 r6: c038581c r5: 00000000 r4: 00000000&lt;br /&gt;
r3: 271ae919 r2: 271ae919 r1: 00000000 r0: 00000033&lt;br /&gt;
Log for the current panic:&lt;br /&gt;
pc: c03eb6b4 lr: c03eb6b0 psr: a00001d3&lt;br /&gt;
sp: daf49860 ip: daf49860 fp: daf4988c&lt;br /&gt;
r10: 00000000 r9: 00000092 r8: 12ebf63b&lt;br /&gt;
r7: 8421b1a1 r6: 36b4a597 r5: c128d334 r4: c128f308&lt;br /&gt;
r3: f900dc00 r2: 00000000 r1: 00000000 r0: 0000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
上面这些信息是mtk加的aee驱动模块所产生的，代码在kernel/mediatek/kernel/drivers/aee/common/reboot-reason.c，可以通过 previous panic中的pc进行gdb定位函数及文件行号(不要用addr2line，因为它只能定位行号，没有函数，这样遇到通用的inline函数时不好定位模块！)&lt;br /&gt;
&lt;br /&gt;
2、hw reboot&lt;br /&gt;
&lt;br /&gt;
mtk给CPU每个核都加了一个daemon，它是一个实时进程，所做的唯一事情就是喂狗，时间是20s，而看门狗的超时时间是30s。&lt;br /&gt;
&lt;br /&gt;
当看门狗超时时就认为是出现异常，这时就会产生一个firq中断，把当前的一些信息记录下来，并保存到/data/aee_exp中。&lt;br /&gt;
&lt;br /&gt;
在产生firq中断时，还会起另一个看门狗定时器，时间是10s，如果发现firq中断都无法响应则直接进入hw reboot流程，记录可能的信息并硬件重启。&lt;br /&gt;
&lt;br /&gt;
——这种现象一般为硬件异常，如layerout导致电压不稳，CPU工作不稳定，无法正常运行&lt;br /&gt;
&lt;br /&gt;
而如果firq有响应，但在响应打印现场时又发生异常，则转入hw reboot，把previous panic和current panic中的相关寄存器打印，然后重启。&lt;br /&gt;
&lt;br /&gt;
——这种现象一般为软件异常，aee最多只记录两次KE，出现多次时则直接进入hw reboot流程&lt;/div&gt;</summary>
		<author><name>Hovercool</name></author>
	</entry>
</feed>