自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

沉思

倾听内心的召唤,坚持自己的选择!

  • 博客(68)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 GNU tools 使用积累

熟练掌握GNU tools 的使用后,在调试Native,kernel crash类异常时可发挥事半功倍的作用.概要    Android编译工具使用了gcc,因此了解和使用gnu toolchain可以在debug时更加方便。    工具目录(这里只列了ARM平台相关的工具)        ARM32位版本:prebuilts/linux-x86/gcc/arm/

2016-09-24 20:58:47 1667

原创 Android 死锁解题案例 - 【01】

问题描述:步骤: 进入设置,点击显示,点击互动品保,在互动屏保中选择万花筒后,点击立即启动实际结果: 出现一次手机死机现象时间:大概在14:25左右复现概率: >1%拿到log解开查看: SWT,868,-1361051648,99,/data/core/,0,system_server_watchdog,system_server,Fri Jan 1

2016-09-24 20:51:15 9990 2

原创 Android 6.0 Reboot 流程源代码分析

Shutdown 跟 reboot流程很类似,所以这里以reboot分析:reboot的类型:1、手动长按power键选择reboot;2、adb reboot;3、手动长按power键11s触发reboot;4、BUG_ON(1),触发kernel panic流程reboot;上面1、2的本质上代码跑的是一样的,下面主要分析第1类正常的关键源码流程

2016-09-22 21:05:19 7807 3

原创 Professional Linux kernel Architecture - 锁与进程间通信

1、相关概念:IPC :(Interprocess communication) 进程间通信竞态条件 :几个进程在访问资源时彼此干扰的情况,进程执行在不应该中断的地方被中断,从而导致进程工作不正确。锁的作用:确保每次只有一个CPU或者进程访问被保护的范围参考《Professional Linux kernel Architecture》 .

2016-08-04 15:53:41 1058

转载 Linux 内核进程管理之进程ID

转载:http://www.cnblogs.com/hazir/p/linux_kernel_pid.htmlLinux 内核进程管理之进程IDLinux 内核使用 task_struct 数据结构来关联所有与进程有关的数据和结构,Linux 内核所有涉及到进程和程序的所有算法都是围绕该数据结构建立的,是内核中最重要的数据结构之一。该数据结构在内核文件 include/linux/

2016-08-04 15:42:08 853

原创 捣鼓了一辆智能微型坦克-raspberry pi3

DIY是我从小的兴趣,学生时代的梦想是自己能够亲自动手造一辆智能车、遥控飞机,可惜由于各种现实原因一直未能亲手实现。工作后也因为工作繁忙等原因未能下定决心而搁浅。直到前段时间看到差评君分享油管的一位老外朋友做的智能坦克实在太漂亮了,顿时激发了我心中封存多年的DIY乐趣,下定决心要干一场!于是买好材料说干就干。由于工程序猿工作性质的原因,平时上班项目非常忙,只能下班或者周末抽时间做,经过大概1个半月

2016-07-09 16:50:16 1760 2

原创 补充提交“ARM架构与指令集” ,“内存管理架构” 等相关学习的有道云分享链接

补充提交“ARM架构与指令集” ,“内存管理架构” 等相关学习内容的有道云分享链接,希望可以帮助有需要的同学,另外本人理解能力有限,个别地方可能理解不够充分,欢迎指正错误。ARMv8架构与指令集,内存管理架构 pdf:http://note.youdao.com/share/?id=689c6a105ef1fdaf68165bbcee6f0e7c&type=notehttp:/

2016-06-03 22:37:41 2197 4

转载 Android深入浅出之Binder机制

Android深入浅出之Binder机制Android深入浅出之Binder机制一说明 Android系统最常见也是初学者最难搞明白的就是Binder了,很多很多的Service就是通过Binder机制来和客户端通讯交互的。所以搞明白Binder的话,在很大程度上就能理解程序运行的流程。我们这里将以MediaService的例子来分析Binder的使用:l     

2016-03-20 21:32:06 678

转载 Android 编译初始化分析

Android源代码在编译之前,要先对编译环境进行初始化,其中最主要就是指定编译的类型和目标设备的型号。Android的编译类型主要有eng、userdebug和user三种,而支持的目标设备型号则是不确定的,它们由当前的源码配置情况所决定。为了确定源码支持的所有目标设备型号,Android编译系统在初始化的过程中,需要在特定的目录中加载特定的配置文件。接下来本文就对上述的初始化过程进行详细分析。

2016-03-08 13:03:17 757

原创 2016 工作学习计划

2015年是很值得怀念特殊的一年,这一年上半年是在堕落迷茫中度过的,下版本解除到系统分析深入学习中,顿时想清楚了很多事情,做技术不深入学习不深入研究就没有前途可言,意识到这一点告诉我必须立刻开始改变。混日子是一天,努力学习是一天,既然选择了路就坚定走下去,话说只要选定了方向就没有太晚,希望2016能有比较大的质的飞越。简单罗列几点工作学习目标计划:1、项目开发平台化实现与推进,改变交付

2016-01-25 21:21:49 898

原创 Android app 调试 一键杀进程脚本

调试app的时候经常要杀进程,一般是先 ps出来,然后再kill掉对应的pid,但是有时候久了就很烦,影响效率一直想写一个小脚本来代替这个事情,终于有一天闲下来完成这个事情,脚本很简单很简单,但是用处很大很方便。如下分享。#!/bin/bash # for debug.#./kill_process com.xxx p

2016-01-25 20:56:25 1489

原创 明天做“系统异常分析课程” 基础知识阶段学习报告

从8月中开始的“系统异常分析课程”学习到现在断断续续的差不多4个月了,本来计划2个月内一鼓作气完成学习报告的,后面由于项目交付压力,没办法只能推后了。上周末终于有空档完成了报告ppt,今天电话MTK杨老师明天过来听报告和答疑..杨老师是MTK大神,负责带我们学校的老师,非常不错的一个人,总是带来正能量,技术功底非常扎实,知识积累很广.属于目前的偶像级人物。他来现场听报告指导答疑,我是有些兴奋又

2016-01-11 21:38:26 727

原创 最近比较忙...

临近过年了,我的指纹识别项目也忙碌到高潮,元旦三天假加班了两天,年前要出货的计划也让我感到压力不小,好在组内弟兄各个生怀绝技,各个能够独当一面,让我面临交付压力的同时满怀信心。到今天为止,终于基本上把主要功能调试ok了,接下来就是解bug维护稳定的事情了,终于告一段落!学习系统异常分析已经快三个月了,基础阶段学习基本上已经完成,也解了两个死机问题,初练手感觉还不错,感叹这种终极解题方法的厉害之

2016-01-08 22:09:34 806

原创 异步通知 fasync 用法积累

最近工作中用的一个features需要在native层监听kernel层的interrupt上报,最开始使用的方式是最简单的轮询方式,native层开一个线程通过ioctrl的方式去不断的check 驱动的状态,返回check到的data,不过后面发现这样效率有些低下,而且不断的ioctrl操作驱动,功耗方面会比较大,所以就学习了使用异步通知fasync的方式+阻塞来做,下面简单总结下用法:

2016-01-08 21:21:22 1159

原创 early_suspend 休眠死机

现象:待机状态下,按Power键或者自动进入休眠,稳定死机.1、取出db解开获取SYS_MINI_RDUMP, 使用 gdb 调试:android@c0490:~/log/6601/20151220-goodix-KE$ arm-linux-androideabi-gdb vmlinux SYS_MINI_RDUMP GNU gdb (GDB) 7.6Copyrig

2015-12-21 19:13:53 1816 2

原创 待机时反复按Power键概率性重启 - 解决问题

上一篇主要分析了如何根据KE后AEE留下的内存转存 db文件(SYS_MINI_RDUMP),使用gdb调试,分析汇编指令和源代码,一步一步追踪,抓住导致死机的凶手地址。在经过一系列分析代码追踪,log打印验证等手段后,最终发现凶手是silead_fp_dev这个设备驱动。 本篇接着上一篇内容,分析如何最终解决问题。 上一篇中,我用dump_stack() 打印出silead_fp

2015-12-19 16:25:50 1452

原创 待机时反复按Power键概率性重启-定位问题

现象:待机时反复按power键休眠会有概率性重启,概率 >= 50%,但连接USB线情况下不会出现,所有怀疑是系统进入休眠才发生了异常,取出mtklog看到有db产生,确实发生了KE(kernel exception),取出db 和 vmlinux (必须是和当前软件是同一次编译的)后,使用GAT工具解开db,取出 SYS_MINI_RDUMP,使用 gdb 调试:andr

2015-12-19 12:05:03 1975 5

原创 栈布局.练习题

一、简单写个函数test1调用test2,test2调用test3,test3调用test4的 navtive程序,当运行到test4时候,请画出栈布图.test.c#include <stdio.h>void test4(){ int *p0; int *p1 = NULL; *p1 = 0x1122;}void test3(){ int k = 300;

2015-12-17 22:05:02 1177 1

转载 谈离职和跳槽

逛CSDN查资料,偶然看到一篇关于离职和跳槽的文章,作者系统的分析描述了 积累、“老板“、门槛、平台、行业 和事业薪酬的关系,见解深刻,值得一看。#########################################################################################################谈离职和跳槽 (转)

2015-12-15 12:35:41 1479

原创 小结下两个月的“系统异常分析”学习

到今天为止,第一部分第二章节-“内存管理架构” 的学习基本完成了,简单归纳下内存管理学了哪些东西吧:1、计算机分级存储架构体系,TLB、Cache、Main-memroy、Disk 在分级存储架构中的角色和与CPU交互基本流程.2、32/64位 MMU 页表存储结构、Translation Table Walk (TTW) 流程分析.3、32/64位 MMU fault 处理流程.

2015-12-15 12:34:09 989 3

原创 vmalloc 实现

vmalloc 简介。vmalloc区为非连续内存分区,首地址为 VMALLOC_START,结束地址为VMALLOC_END。由若干vmalloc子区域组成,每个vmalloc子区域间隔4KB,作为安全隔离区防止非法访问。用vm_struct表示每个vmalloc子区域,每次调用vmalloc()在内核成功申请一段连续虚拟内

2015-12-13 21:15:48 3556

转载 ARMv8 與 Linux的新手筆記

http://loda.hala01.com/2014/12/armv8-%E8%88%87-linux%E7%9A%84%E6%96%B0%E6%89%8B%E7%AD%86%E8%A8%98/

2015-12-13 21:10:03 1733 1

原创 gdb+gdbserver 调试NE-coredump

本文以一个小例子介绍使用gdb+gdbserver调试和解包NE(native exception)后coredump的基本流程.gdb 路径:./prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/bin/arm-linux-androideabi-gdb./prebuilts/gcc/linux-x86/aar

2015-12-13 21:05:27 3468 2

原创 minicom 工具使用

Minicom是linux下串口调试工具,使用习惯之后读者将会体会到他的高效与便利一、安装:sudo apt-get install minicom  二、配置:在使用minicom之前, 首先要保证你对串口有读/写的权限. 我们知道, Linux的设备对应于/dev/目录中的某个文件. 串口COM1对应ttyS0, COM2对应ttyS1. 使用这个命令来看你对C

2015-12-13 21:02:46 3367

原创 ARM64-memcpy.S 汇编源码分析

汇编源代码文件: 内存拷贝优先级:数据块地址:源码分析:123456789101112131415161718192021

2015-12-13 20:30:26 7561 7

原创 如果你怕辛苦,过不了这关,明年这个时候就是大了一岁,仅此而已

今年四月开始,一向对股市不感冒的我看到同事一天入账1w的兴奋样子,终于忍不住杀入股市,4,5月刚好是躺着都赚钱的时期,虽然投入了不多,我也很快入账2w,一时间被这么轻松得来的钱冲昏了头脑,老子一个月工资才1w多点,炒股几天就赚到了,有点飘飘然了。于是也没有了上班的热情,天天情绪随大盘起伏,日子过得紧张又兴奋。。。没过多久到了股灾6月,开始一直侥幸肯定会回本,牛市任然在,一直死扛到八月,结果最终倒亏

2015-12-13 16:19:48 1703 11

原创 AAPCS - 学习笔记

(参考文档:ARM官网 ==> Procedure Call Standard for the ARM Architecture)1、什么是 AAPCS,有何用?。ARM结构过程调用规范(ARM Architecture Procedure Call Standard).。ABI (Application Binary Interface)。描述汇编

2015-12-13 16:03:30 5515

原创 AAPCS 学习课后练习 - 通过一个小例子来讲解

一、有个函数有10个参数,请问是参数是如何传递的?请画出压栈图(32位 / 64位). 首先看ARM32 。编写 test.c12345678910111213141516171819

2015-12-13 15:57:28 1249 1

ARMv8内存管理架构.学习笔记

详细介绍计算机分级存储结构与ARM内存管理架构相关内容,对cache、MMU,业表机制属性有详细介绍.

2016-11-27

ARMv8架构与指令集.学习笔记

全面深入介绍ARMv8架构与指令集相关内容,包括 ARM /thumb指令,ARMv8的架构层级与32/64位异常模型跟路由选择等。

2016-11-27

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除