目录

1:简介

2:怎么抓取和分析log

3:怎么确定问题点

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

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

解析vmlinux的脚本

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

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

Log抓取

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,则对照之前项目跟现在项目在硬件上的差异,然后通过硬件实验来理清问题

MTK平台系统稳定性分析的更多相关文章

  1. Android8.1 MTK平台 SystemUI源码分析之 网络信号栏显示刷新

    SystemUI系列文章 Android8.1 MTK平台 SystemUI源码分析之 Notification流程 Android8.1 MTK平台 SystemUI源码分析之 电池时钟刷新 And ...

  2. Java生鲜电商平台-系统异常状态的设计与架构(APP应用或者生鲜小程序)

    Java生鲜电商平台-系统异常状态的设计与架构 说明:在实际开发Java生鲜电商平台的时候,异常状态的设计关系着整体系统的性能问题,架构设计,以及稳定性方面,对此,我根据实际的业务场景,进行了系统设计 ...

  3. Atitit.提升稳定性-----分析内存泄漏PermGen OOM跟解决之道...java

    Atitit.提升稳定性-----分析内存泄漏PermGen OOM跟解决之道...java 1. 内存区域的划分 1 2. PermGen内存溢出深入分析 1 3. PermGen OOM原因总结 ...

  4. 深入浅出 - Android系统移植与平台开发(十)- Android编译系统与定制Android平台系统(瘋耔修改篇二)

    第四章.Android编译系统与定制Android平台系统 4.1Android编译系统 Android的源码由几十万个文件构成,这些文件之间有的相互依赖,有的又相互独立,它们按功能或类型又被放到不同 ...

  5. 关于MTK平台SIM-ME Lock的配置方案

    针对一些运营商的锁网需求,MTK平台已经对其有很好的支持.绝大多数的海外需求可以通过直接配置相关文件来完成.这里简单描述一下配置方法,不做原理分析. 相关数据结构分析: Modem中与SML锁网配置相 ...

  6. 关于MTK平台CC相关的Log查询

    关于MTK平台CC相关的Log查询 在外场问题中,经常会出现通话相关的故障.这里简单总结一下通话相关log的分析点: 主叫方:主叫方,是指主动发起通话的一方. 初步定位问题, 用户发起通话时,AP端的 ...

  7. MTK平台Android项目APK预置方案

    项目开发中,通常需要向系统中预置一些APK,这里简单介绍一下MTK平台预置APK的方法. 需要预置的apk可以放置在目录:vendor/mediate/${Project}/artifacts/out ...

  8. andorid之摄像头驱动流程--MTK平台

    原文地址:andorid之摄像头驱动流程--MTK平台 作者:守候心田 camera成像原理: 景物通过镜头生产光学图像投射到sensor表面上,然后转为模拟电信号,经过数模变成数字图像信号,在经过D ...

  9. 第二次作业-关于Steam游戏平台的简单分析

    1.1 Steam平台的简单介绍 你选择的产品是? 如题,这次的作业我选择了Steam作为分析的对象. 为什么选择该产品作为分析? 我选择数字游戏贩售平台STEAM作为分析对象的原因有以下几点: 1. ...

随机推荐

  1. (快速幂)51NOD 1046 A^B Mod C

    给出3个正整数A B C,求A^B Mod C.   例如,3 5 8,3^5 Mod 8 = 3. Input 3个正整数A B C,中间用空格分隔.(1 <= A,B,C <= 10^ ...

  2. 整理 Xamarin.Forms - Plugins

    Open Source Components for Xamarin Xamarin官方整理的一些开源组件,有需要可以先到这里找 GitHub: xamarin/XamarinComponents: ...

  3. hdu6198 number number number(递推公式黑科技)

    number number number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  4. E - A^B mod C (大数乘方取模)

    Description Given A,B,C, You should quickly calculate the result of A^B mod C. (1<=A,B,C<2^63) ...

  5. windows 定时任务 设置 安全事项

    windows 定时任务 设置 安全事项 1.如果是oaadmin/administrator 创建oracle 数据库. 安全选项如下: 1.只是在用户登录时候运行. sample: data ho ...

  6. JOptionPane.showMessageDialog出现在浏览器下面的解决方法

    将JOptionPane.showMessageDialog(null, result, "发布公告:", JOptionPane.INFORMATION_MESSAGE);中的参 ...

  7. vscode使用教程(web开发)

    1.安装 进入官网下载https://code.visualstudio.com/ 一直下一步就好了,中间可以选择把软件安装在哪个目录. 2.常用插件安装 a. 进入扩展视图界面安装/卸载 a1.快捷 ...

  8. javascirpt中的数字在计算机内存储为多少Byte

    JavaScript内部,所有数字都是以64位浮点数形式储存,即使整数也是如此 8 Byte = 64bit Javascript中,由于其变量内容不同,变量被分为基本数据类型变量和引用数据类型变量. ...

  9. Python安装笔记

    1.教程

  10. codeforces_459D_(线段树,离散化,求逆序数)

    链接:http://codeforces.com/problemset/problem/459/D D. Pashmak and Parmida's problem time limit per te ...