554
查看Android系统类问题分析方法的源代码
Android系统类问题分析方法
0
←
Android系统类问题分析方法
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
你被禁止执行你刚才请求的操作。
您可以查看并复制此页面的源代码:
[[系统卡]] = MTK平台 = 1、db分析 会在/data/aee_exp下生成db文件,解析出来后可以得到许多文件,这里面有很多价值的信息。 如 hw reboot时的 SYS_LAST_KMSG(有时没有这部分内容,这时可以多试几次,后面可能就会包含这些信息): <pre> CPU 0, nested_panic_time=0 wdt restart. wdt hw reboot mode. Nested panic Log for the previous panic: pc: c0440e14 lr: c00d75a8 psr: 60000113 sp: daf49d08 ip: c0a134c8 fp: daf49d2c r10: 00000000 r9: 00000000 r8: 00000000 r7: 00000002 r6: c038581c r5: 00000000 r4: 00000000 r3: 271ae919 r2: 271ae919 r1: 00000000 r0: 00000033 Log for the current panic: pc: c03eb6b4 lr: c03eb6b0 psr: a00001d3 sp: daf49860 ip: daf49860 fp: daf4988c r10: 00000000 r9: 00000092 r8: 12ebf63b r7: 8421b1a1 r6: 36b4a597 r5: c128d334 r4: c128f308 r3: f900dc00 r2: 00000000 r1: 00000000 r0: 0000001 </pre> 上面这些信息是mtk加的aee驱动模块所产生的,代码在kernel/mediatek/kernel/drivers/aee/common/reboot-reason.c,可以通过 previous panic中的pc进行gdb定位函数及文件行号(不要用addr2line,因为它只能定位行号,没有函数,这样遇到通用的inline函数时不好定位模块!) 2、hw reboot mtk给CPU每个核都加了一个daemon,它是一个实时进程,所做的唯一事情就是喂狗,时间是20s,而看门狗的超时时间是30s。 当看门狗超时时就认为是出现异常,这时就会产生一个firq中断,把当前的一些信息记录下来,并保存到/data/aee_exp中。 在产生firq中断时,还会起另一个看门狗定时器,时间是10s,如果发现firq中断都无法响应则直接进入hw reboot流程,记录可能的信息并硬件重启。 ——这种现象一般为硬件异常,如layerout导致电压不稳,CPU工作不稳定,无法正常运行 而如果firq有响应,但在响应打印现场时又发生异常,则转入hw reboot,把previous panic和current panic中的相关寄存器打印,然后重启。 ——这种现象一般为软件异常,aee最多只记录两次KE,出现多次时则直接进入hw reboot流程
返回
Android系统类问题分析方法
。
导航菜单
个人工具
   
个人维基
注册
登录
名字空间
页面
变换
查看
阅读
查看源代码
统计
查看历史
操作
搜索
导航
首页
Ubuntu
Android
C&CPP
Java
Python
大杂烩
最近更改
工具箱
所有页面
文件列表
特殊页面