MTK

目录linux

1:简介android

     

2:怎么抓取和分析logshell

 

3:怎么肯定问题点ide

 

简介 系统稳定性目前主要是解决系统死机重启。 分为两部分:Android /kernel Kernel 分析须要的文件和工具: Mtklog, vmlinux ,gat工具,解析vmlinux的脚本。函数

Vmlinux路径:alps\out\target\product\k55v1_64_op01_pre\obj\KERNEL_OBJ工具

解析vmlinux的脚本ui

ARM 32位版本:prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/bin/idea

ARM 64位版本:prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/设计

 

 

Log抓取3d

1:若是能正常开机,经过*#*#3646633#*#*抓取mtklog,出现异常的时候会生成文件夹aee**,如

2:若是不能正常开机,须要抓取串口log. 另外默认把串口一直打开的话,能够修改代码:

alps\kernel-3.10\drivers\misc\mediatek\mtprof\mt_printk_ctrl.c

nt mt_need_uart_console = 0;->1

3:若是ADB能正常起来,但开不了机,能够经过ADB命令来抓取相关的log. Usr 版本只能抓取logcat

 

确认问题点

Case 1: 能开机,卡死在一些界面上。

----这种状况,有几个步骤:先按power键看是否能够正常休眠唤醒。若是power键有反应,再插USB,看是否能够正常检测到ADB,若是能够正常检测到ADB,那能够经过ADB shell getevent 来看是不是TP驱动没有报点。

Case 2 开机卡死,按power键没反应。

----须要抓取mtklog,看是否有生成aee的log文件夹,有的话须要经过gat工具来解析。步骤以下: 1:电脑端打开应用程序 gat-linux-x86_64-3.1501.1.c\gat-linux-x86_64-3\modules\MediatekLogView\MediatekLogView

 

2:打开aee目录里面的文件,如” db.fatal.06.KE.dbg“,能够直接拖进来。

Case 3 不能开机,须要抓取串口log分析。

简单分析步骤: 1:抓取串口log[MTK 的波特率须要设置为921600]

2:确认PC指针指到具体函数和具体函数

在alps/prebuilts/gcc/linux-x86/aarch64-linux-anroid-4.9/bin$./aarch64-linux-android-addr2line -e vmlinux -f -C 0xffffffc0009f62a4

肯定具体文件和行号

alps/prebuilts/gcc/linux-x86/aarch64-linux-anroid-4.9/bin$./aarch64-linux-android-objdump -d vmlinux

3:有时候kernel看到了异常,但不必定就是kernel的问题,有多是上层主动发了重启之类的命令,能够在log中看相似的打印:

Case 4: WatchDog超时

 

Case 5 HW reboot

Hardware reboot的成因:MT6592平台芯片有一个External watch dog,软件每隔30秒要去踢一次,若没有踢到,就会触发软件Watch Dog Timeout重启;

若软件有在规定的时间内(30秒)去踢这个External Watch Dog,可是因为硬件缘由,致使External Watch Dog没有及时被踢到,那么这个External Watch Dog最多会等待60秒的时间,60秒以后会直接触发硬件重启,这就是所谓的Hardware reboot 

至因而什么样的硬件缘由致使没法及时提到External Watch Dog,最多见的一种是bus hang住, 好比不合理的读写寄存器就会致使bus hang住;也有一些是硬件设计不合理,或者硬件出现故障致使机器乱死,或者硬件某些器件不稳定,致使Hardware reboot 若是是由于读写寄存器致使bus hang住,进而触发Hardware reboot,通常在last pc 和last kmsg中会有体现,每次最后的PC或者最后打印出来的几句log都是同样或者类似的 如果硬件不合理或者硬件出现故障或者硬件不稳,这种在last pc 和last kmsg中就没有规律性了, 这种case,通常都是对照以前的项目,看以前项目是否有出现? 若以前项目稳定,而如今项目有Hardware reboot,则对照以前项目跟如今项目在硬件上的差别,而后经过硬件实验来理清问题

相关文章
相关标签/搜索