- 博客(11)
- 收藏
- 关注
原创 基于ARM平台分析Linux系统调用过程
基于ARM平台分析Linux系统调用过程Linux 3.10.44 + ARM V7 + Android:4.4.2一 open以open系统调用为例在bionic中的入口代码位于bionic/libc/bionic/open.c中,源代码如下:int open(const char *pathname, int flags, ...){ mode_t mo
2014-08-13 21:49:37
3277
翻译 异常处理表
平台:linux3.10.44译文: Linux内核异常处理 原作者:Joerg Pommnitz joerg@raleigh.ibm.com>当进程陷入内核后,内核经常需要访问该进程用户空间的内存,因为该地址来自不可信的用户态程序,内核为了保护自己,在使用该地址前会验证该地址是否有效。旧版本使用int verify_area(int type,
2014-08-13 21:46:51
1443
原创 usb serial驱动流程分析
说明:usb serial驱动在主机侧(一般是PC侧)枚举成USB串口,在从设备侧(一般是手机侧)提供tty接口,提供一个主机和从设备通信的机制。本文档主要描述设备侧驱动从主机侧接收到数据后如何通知应用程序以及应用程序读取数据的基本过程。平台:Linux 3.10.44一 代码说明在设备侧利用tty驱动为用户空间提供接口,从tty层开始分成tty接口层,tty链路层(line di
2014-08-13 21:45:44
2761
原创 ARM平台Linux内核空指针异常处理流程
ARM平台Linux内核空指针异常处理流程平台:Linux 3.10.40 + ARM V7一 从异常向量入口到__do_kernel_fault访问空指针在ARM平台上属于data abort异常,对应异常向量中的vector_dabt。文件:arch/arm/kernel/entry-armv.S__vectors_start: W(b)
2014-08-13 21:44:47
4832
原创 ARM平台上Linux异常处理代码简要分析
Linux version 3.10.40 ARM处理器支持多种异常模式,如reset,irq,fiq等,发生异常后处理器根据配置跳到指定的地址运行,可以配置成从0地址开始,也可以配置成从0xFFFF0000地址开始。我们从两个角度分析Linux上的实现,第一是负责异常处理的代码是如何安装到该地址的,第二是这些代码的处理流程是什么样的。 一 放置异常处理代码流程依次涉及:i
2014-07-26 22:15:47
1439
原创 通过分析mkbootimg源代码了解boot.img文件结构
平台:Android 4.4.2源代码路径:/system/core/mkbootimg /*** +-----------------+** | boot header | 1 page** +-----------------+** | kernel | n pages ** +-----------------+** | ramd
2014-07-19 21:20:16
6237
原创 Android ANR日志粗略分析
平台:Android4.4.2 虽然ANR的缩写是application not responding,但是并不是所有的ANR问题都是应用程序的问题。比如说CPU占用率太高、API调用卡死都有可能导致ANR,这些问题都是系统性问题。 1. 什么是ANR?Android应用程序和Windows应用程序一样,采用的也是消息循环模型。就是说应用程序启动后在没有主动创建线程的情况下就只
2014-07-15 21:54:51
9075
原创 Android dropbox日志浅谈
Android4.4.2 Android dropbox提供了一种保存日志的机制,支持将内核、Native、Java多种日志保存在"/data/system/dropbox"目录中。两个主要的类是DropBoxManager和IDropBoxManagerService。DropBoxManager的代码位于/frameworks/base/core/java/android/os
2014-07-15 21:53:32
11307
1
原创 initcall_debug简要说明
Linux version 3.10.40 1. 使用说明Documentation/kernel-parameters.txt中的说明如下: initcall_debug [KNL] Trace initcalls as they are executed. Useful for working out
2014-07-14 20:18:15
7081
原创 ramoops&pstore简要说明
1. pstorepstore是persistent storage的缩写。内核发生异常时如果能将日志等信息保存下来不丢失,那么就可以通过这些信息来定位问题。不同的平台可以提供的存储位置不同,例如有些平台支持硬盘,有些不支持。除了平台差异,异常类型也决定了在发生异常时该存储位置是否还可用。pstore的目标是提供一套通用的接口用来存储异常信息。pstore以文件系统的形式提供用户空间接口,
2014-07-12 21:46:46
16215
1
原创 Linux "Too many open files" 问题分析
平台介绍:Linux3.10.40 + Android4.4.2 事情的起因是压力测试过程中生成的tombstone日志异常,日志形式如下:=======================================================================*** *** *** *** *** *** *** *** *** *** *** *** ***
2014-07-12 21:43:27
2227
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人