自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Android ANR

1, Android ANR的概念 ANR,是“Application Not Responding”的缩写,即“应用程序无响应”。在Android中,ActivityManagerService(简称AMS)和WindowManagerService(简称WMS)会监测应用程序的响应时间,如果...

2015-08-09 14:54:36 501 0

原创 linux下打patch

How to apply patch:   diff -uN test_old test_new > test.patch    -r参数是连目录diff   patch -p0 test.patch

2015-08-09 14:51:27 379 0

原创 trustzone技术

1,trustzone概念 每个物理的处理器核提供两个虚拟核,一个是非安全核(Non-secure, NS),另一个是安全核(Secure, S),arm体系保证了很多硬件资源都是双份的,每个虚拟核独享自己的那份资源,大大简化了软件设计。在这二者之间切换的机制叫做monitor模式。NS核只能访...

2015-08-09 14:47:30 787 0

原创 linux SMP系统学习笔记

一,一个cpu在另外一个cpu上运行指定的函数 int smp_call_function_single(int cpu, smp_call_func_t func, void *info, int wait) smp_call_function_single()函数,在一个指导的cpu上运行一...

2015-08-09 14:42:50 4645 0

原创 Linux Per-cpu变量

1,Linux per-cpu变量的作用 当创建一个per-CPU变量时,系统中的每个处理器都会获得它自己对这个变量的拷贝(副本).存取per-CPU变量时几乎不需要加锁,因为每个处理器使用的都是它自己的拷贝 2,Linux per-cpu变量的使用 在编译的时候声明一个...

2015-08-09 14:14:37 1489 0

原创 [Linux内存]页缓存和块缓存

1, 内核为设备提供了两种通用的缓存方案: a, 页缓存(page cache) b, 块缓存 2,内核管理页缓存所用的数据结构 内核通过基数树(radix tree)来管理页缓存的, 3,内核如何回写内存中修改的数据到物理设备 a, 内核的守护进程在后台运行,为pdf...

2015-08-01 17:42:25 2502 0

原创 linux页表pgd的含义

pgd PGD: Page Global Directory Linux系统中每个进程对应用户空间的pgd是不一样的,但是linux内核 的pgd是一样的。 当创建一个新的进程时,都要为新进程创建一个新的页面目录PGD,并从内核的页面目录swapper_pg_dir中复制内核区间页面目录项至...

2015-07-18 15:23:40 5387 0

转载 linux proc文件系统节点

8,/proc/pid>/ 目录下各个文件的含义,以com.android.chrome为例 cmdline:   com.android.chrome environ:  这是个比较有用的文件,里面记录了当前进程的一些环境变量 exe:       这个就是气这个进程的执...

2015-07-18 15:21:49 872 0

转载 匿名内存

1,匿名内存的概念 匿名内存是指那些在文件系统里没有相对应的”储备文件“的那些内存,堆和栈空间的内存都属于匿名内存。 匿名内存的用途:当一个程序很久没有运行的时候,需要要将程序占用的堆 栈交换到swap分区,而程序打开的文件则不需要放到swap分区,因为打开的文件直接可以放到其文件...

2015-07-18 15:19:46 1755 0

原创 [Linux中断]中断数据结构以及ARM处理中断流程

1,中断相关的数据结构  在linux kernel中,对于每一个外设的IRQ都用struct irq_desc来描述,我们称之中断描述符(struct irq_desc)在linux kernel中,使用struct irq_desc来描述一个外设的中断,我们称之中断描述符,具体代码如...

2015-07-18 15:13:25 487 0

转载 Linux Zram的概念

linux zram技术   zram就是在发生swap事件的时候,不要把置换的页面置换到外部存储中,直接置换到一块内存中压缩起来,这样发生swap事件的时候所花费的时间就是压缩和解压的时间,这样可以大大提高性能。ZRAM是以块设备的形式注册进内核的,在高通平台其文件路径是:LIN...

2015-07-18 15:08:19 1660 0

转载 Linux Cgroups概念

以下转自: linux cgroup Cgroups是control groups的缩写,是Linux内核提供的一种可以限制、记录、隔离进程组(process groups)所使用的物理资源(如:cpu,memory,IO等等)的机制。 Cgroup的相关概念 1.任务(task)。在...

2015-07-18 15:06:21 540 0

转载 cpu hotplug的流程

以下内容参考: http://loda.hala01.com/2011/08/android-筆記-linux-kernel-smp-symmetric-multi-processors-開機流程解析-part3-linux-多核心啟動流/ 1,cpu hotplug机制 Linux Kern...

2015-07-18 14:51:06 5254 0

转载 [Linux同步]读写信号量

以下内容转自: 信号量 一,信号量和自旋锁的区别 信号量与自旋锁有一定的区别,信号量在无法得到资源时,内核线程处于睡眠阻塞状态,而自旋锁处于忙等待状态。因此,如果资源被占用时间很短时,使用自旋锁较好,因为它可节约调度时间。如果资源被占用的时间较长,使用信号量较好。 二,信号量...

2015-07-05 08:27:27 447 0

原创 debug相关--其它

1,spin lock相关的debug方法 spin lock原理 linux 内核中Spin lock工作原理,当某一个线程持有lock的时候next值加1,释放锁的时候owner值加1,

2015-05-10 10:35:12 373 0

转载 [Linux内存]slub分配器学习笔记(一)--基本概念

slub分频器学习笔记 slub分配器(一)---概述 1,基本原理以及重要的数据结构 struct kmem_cache slub把内存分组管理,每个组分别包含2^3、2^4、...2^11个字节,在4K页大小的默认情况下,另外还有两个特殊的组,分别是96B和192B,共11组。每一个组都是用...

2015-05-10 10:22:16 531 0

转载 [linux]进程(五)——进程调度(实时进程调度)

点击打开链接 1,实时进程和普通进程调度的差别 实时进程需要严格按照优先级的顺序执行,比如在八核平台上,必须是优先级最高的八个进程得到调度,如果此时八个优先级最高的进程都在某一个cpu的rt队列上,那么此时的调度就会涉及到了进程在不同cpu的迁移。 2,实时调度算法概述 该实时调度器主要...

2015-05-10 10:11:00 1773 0

转载 linux设备树

linux设备树 1,DTS (device tree source) .dts文件是一种ASCII 文本格式的Device Tree描述,此文本格式非常人性化,适合人类的阅读习惯。基本上,在ARM Linux在,一个.dts文件对应一个ARM的machine,一般放置在内核的arch/arm...

2015-05-10 09:27:04 460 0

原创 git常用命令学习

1,使用git blame命令可以很容易找出罪魁祸首。这个命令可以将文件中的每一行的作者、最新的变更提交和提交时间展示出来。 git blame [file_name] 2,

2015-05-10 09:14:52 349 0

转载 [Linux内存]slab分配器学习笔记(三)--实现

1,分配对象 cache_grow用于缓存的增长,它会从伙伴系统获取内存。其流程如图所示: 2,释放对象:

2015-04-19 16:09:43 482 0

转载 CPU CACHE学习

点击打开链接 wiki 1,CPU CACHE的概念 缓存块(Cache Block\Cache Line): 每个缓存块存储具有连续内存地址的若干个存储单元。在32位计算机上这通常是一个字(word),即四个字节对应每个cache line,都有这样一个结构 data bo...

2015-04-19 12:54:03 845 0

原创 [Debug]Kernel panic学习笔记(三)——常见分析

1,Poison overwritten 点击打开链接 2,具体backtrace的分析 1. 11, pgd = c39d8000  2. [00000000] *pgd=339cf031, *pte=00000000, *ppte=00000000  3. Internal er...

2015-04-03 22:37:18 980 0

原创 ARM-64学习(一)

1,ARM-64学习 New 64-bit general purpose registers(X0-X30), 32-bit(w0-w30) AArch64 introduce the “zero” register,  XZR and WZR(reads as 0,writes igno...

2015-04-03 22:23:42 1180 0

原创 ARM-32学习(一)

1, ARM mode ARM cores are divided in lastest versions to three main lines: §  Cortex-M cores, used for really small devices, usually with on-chip...

2015-04-03 22:20:37 411 0

原创 Trace32相关

1, Trace32的配置步骤 当拿到trace32的安装包后找到bin目录下的t32start.exe可执行文件,打开该文件然后配置(是要进行GDB调试还是在线调试ARM板子等等) 2,Trace32的相关命令 Trace32是不区分大小写的,所以以下命令字母大小写都可以。 查看当前的...

2015-04-03 22:10:29 4744 0

原创 一些脚本

shell@ss:/ $ while true while true > do do > ls ls > sleep 10 sleep 10 > done done

2015-03-20 21:55:16 410 0

原创 [Debug]Kernel panic学习笔记(二)

1,发生kernel panic后相关的调试方法 点击打开链接 点击打开链接 example:[] el1_irq+0x68  其中:ffffffc0002035a8 表示函数地址,+0x68表示的是偏移。 2, 如何分析linux的dump文件 3,ARM各个寄存器的相关含...

2015-03-20 21:52:28 897 0

原创 watchdog相关

1,watchdog原理 Watchdog bark:  processor在规定的时间内没有踢狗导致watchdog timer硬件reset processor Watchdog bite:  即使watchdog踢狗但是在某个时间内(比如3s)processor不能处理r...

2015-03-20 21:45:35 2150 0

原创 linux android memory相关问题的一些debug方法

1,android的procrank命令  点击打开链接  procrank -h 命令 2,  linux的proc文件系统,    查看某个进程占用的内存时候用到的一些节点, ·         /proc//statm ·         /proc//maps ·         /...

2015-03-20 21:42:40 1112 0

转载 在linux下安装软件

以下转自 点击打开链接 apt-get update——在修改/etc/apt/sources.list或者/etc/apt/preferences之後运行该命令。此外您需要定期运行这一命令以确保您的软件包列表是最新的。  apt-get install package...

2015-03-20 21:35:15 364 0

原创 奋斗是一辈子的事情

越来越觉得奋斗是一辈子的事情,每个人出身不一样,小时候的教育和家庭有很大关系,城里的小孩小时候就是各种兴趣班辅导班,而农村的孩子大部分出于散养的状态,这个时候城市里的孩子确实比农村里的孩子受到的教育更好,综合素质也会更高,但人生几十年,小时候也只是占了不到人生的五分之一,所以在长大后还是完全可以追...

2015-03-05 21:08:39 515 0

原创 perl学习笔记八——文件读写

一,perl对文件读写的处理 点击打开链接 检查当前目录下是否有test.pl的文件,如果有则提示: @test=`dir 2>&1`; if (open(MYFILE, ">>cycle5_log.txt")) { print MYFI...

2015-03-05 20:49:03 342 0

转载 Linux 性能监控、测试、优化工具

在网上看到一篇文章,讲了linux下各个模块涉及的各个工具,感觉自己以后可能会用到,转载以防以后用到。

2015-03-04 21:00:16 288 0

原创 程序员自我修养第三章__链接.

程序员自我修养第四章读书笔记 一,静态链接: 链接就是将几个输入的目标文件加工合并成一个输出文件,加工合并的方法是将几个输入文件中相似的段合并,比如将所有输入文件的“.text”合并到一个输出文件的“.text”段。 现在连接器一般将整个链接过程分为两步: 1,空间与地址的分配,扫描所有输入的...

2015-02-13 16:04:57 352 0

原创 Driver Structure

1,Driver Loading and Initialization NT drivers are dynamically loaded,in NT 4,drivers are almost loaded during system bootup, When a driver is loaded...

2015-02-12 14:45:38 312 0

转载 github学习笔记

一,先附上几个别人写的比较好的。 github权威 github简明指南 git教程

2015-02-12 10:09:50 377 0

原创 程序员自我修养第三章__ELF文件

一,四种ELF文件格式 可重定位文件   linux下的.o文件 可执行文件       比如/bin/bash 共享目标文件    linux的.so文件 核心存储文件    linux下的core dump文件 linux下可以通过file命令查看文件的类型,比如 file test.o ...

2015-02-11 19:19:08 404 0

转载 windows驱动编程学习笔记——(三)IRP

一,IRP的概念(I/O Request Package) 当一个应用程序调用函数去操作某个设备时,比如调用createFile,deviceIOControl,等等时,I/O管理器为此函数创建一个IRP数据结构对象和一个IRP_STACK_LOCATION数据结构对象数组,(数组个数等于驱动程...

2015-02-10 16:21:30 1550 0

转载 动态链接

一,动态链接: 点击打开链接

2015-02-09 10:31:29 279 0

原创 好记性不如烂笔头

自己大概是从一年前开始养成了写博客记录的习惯,下面将我自己的一些心得体会写下,一是方便我自己以后再次查看总结,二也是希望帮助更多的人养成一些好的习惯。

2015-02-02 20:31:42 413 0

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