自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (8)
  • 收藏
  • 关注

原创 本书已出版<拨云见日:基于android的内核与系统架构源码分析 >

本博客的书籍已由清华大学出版社出版。

2014-12-16 15:30:06 1975

原创 mt6577驱动开发 笔记版 转载请注明出处---crosskernel@gmail.com

3 Preloader & Uboot3.1 Preloader3.1.1Preloader结构Preloader的主题结构在文件:“alps\mediatek\platform\mt6577\preloader\src\core\main.c”中。void main(void){//时钟、uart、mcp等初始化bldr_pre_process

2014-03-13 14:17:32 3367

原创 arm 处理器虚拟化模式初始化 笔记版(尚未完成) 转载请注明出处---crosskernel@gmail.com

zImage从Hyper态返回SVC态//reg—暂存寄存器.macro safe_svcmode_maskall reg:req#if __LINUX_ARM_ARCH__ >= 6    //读取cpsr到暂存寄存器regmrs \reg , cpsr    /*以下两条指令区分当前cpsr是否处在HYP_MODE,若处在HYP_MODE模式,标志位置零*/

2014-03-12 15:04:49 3509

原创 卷二 Dalvik与Android源码分析 第五章 Interpreter与JIT 5.6 dalvik运行时帧结构 图书版试读--请勿转发

作者 crosskernel@gmail.com在dalvik运行时每个函数也是有自己的Frame的,首先分析在dalvik源码里描述了对Frame结构的描述:Low addresses (0x00000000)                     +- - - - - - - - -+                     -  out0

2014-03-14 10:21:24 2486 1

原创 卷二 Dalvik与Android源码分析 第五章 Interpreter与JIT 5.5 Interpreter的切换 图书版试读--请勿转发

作者 crosskernel@gmail.com本节分析dalvik虚拟机是通过何种方式选择解释器的。 查找系统属性里解释器执行模式int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv){   …//取出系统属性“dalvik.vm.execution-mode”    pr

2014-03-14 10:17:55 2036

原创 卷一 内核源代码分析 第二章 异常 2.2.4 OMAP4的中断体系 图书试读版-请勿转载

作者 crosskernel@gmail.com2.2.4 OMAP4的中断体系    尽管已经宣布推出手机市场,但是作为移动处理器领域的领袖, Ti在相当长的时间里总是抢先发布性能最强的新一代ARM处理器。而且早期还会搭配其强劲的DSP以配合ARM CORE工作。尽管Ti在3G时代遭受专利困境,但是凭借其强大的ARM处理器设计能力在没有Modem的情况下支撑了两代:Omap3

2014-03-14 10:09:13 962

原创 卷一 内核源代码分析 第二章 异常 2.2.3 Exynos4的中断体系 图书试读版-请勿转载

作者 crosskernel@gmail.com2.2.3 Exynos4的中断体系三星,ARM处理器界的新王者,近年来抢先实现每一代ARM处理器,而且通过手机处理器与其庞大硬件产业链的有机整合成为Apple的最有力对手。第一次将三星与高性能手机处理器联系起来的是其S5PV210,凭借超出同级处理器一倍的L2 Cache,S5PV210成为当时跑的最快的CA8 ARM。紧接

2014-03-14 10:03:54 1377

原创 卷一 内核源代码分析 第二章 异常 2.2.1 cortex A9多核处理器的中断控制器GIC---2.2.2 Mt6577的中断体系 图书试读版-请勿转载

作者 crosskernel@gmail.com2.2.1cortex A9多核处理器的中断控制器GIC对于多核处理器来说,中断有着新的使命---处理器间通信,在CA9以前,每种SOC的中断控制器是自己实现的,但是到了CA9 SMP以后,中断控制器成为了ARM规范的一部分,各家的处理器都遵循arm 中断控制器GIC规范:《IHI0048A_gic_architecture_spec》。其中原因在于,对于非SMP的架构,中断控制器就是

2014-03-14 10:00:28 3090

原创 卷二 Dalvik与Android源码分析 第二章 进程与线程 2.2 Dalvik线程创建机制 图书版试读--请勿转发

作者 crosskernel@gmail.comBionic的线程机制是Dalvik线程的机制的基础。其实现是通过Linux的Fork机制来实现的。线程的运行轨迹是栈,Android代码注释里已经给出了的bionic线程的栈结构:* +---------------------------+ * |     pthread_internal_t    | * +

2014-03-13 15:15:50 903

原创 卷二 Dalvik与Android源码分析 第二章 进程与线程 2.1 Dalvik虚拟机的进程创建机制 图书版试读--请勿转发

作者 crosskernel@gmail.com2 进程与线程2.1 Dalvik虚拟机的进程在Dalvik新进程创建的最关键一步是使用linux的Fork机制从zygote母体Fork出一个新的进程来。到了这里有如下值得关注的地方: 由于是linux的Fork机制,新进程复制Zygote的可共享虚拟地址空间的页表页目录。而不可共享区域由linux

2014-03-13 15:00:17 836

原创 卷一 内核源代码分析 第一章 linux内核对cortex A9多核处理器的支持 1.2 Percpu内存管理 图书试读版-请勿转载

作者 crosskernel@gmail.com1.2 Percpu内存管理随着处理器核心的增加,内核中系统中并发的线程也随之增加,这样对一些共享数据的同时访问机率也就增加,就避免不了spin_lock的使用,而且往往处理器核心越多造成的麻烦越大。Percpu内存对这种数据无能为力,但是内核中有些数据只是处理器局部可见,这种数据不会被别的处理器访问到,不需要

2014-03-13 14:47:48 1519

原创 卷一 内核源代码分析 第一章 linux内核对cortex A9多核处理器的支持 1.1 CPU的基本管理 图书试读版-请勿转载

1 多核处理器计算性能是处理器演进的第一动力,然而,尽管各种架构的高性能处理器层出不穷,真正大规模普及开来的似乎只有Intel和ARM体系。我们观察其中的现象不难发现如下规律:如果处理器性能得到大幅改善,但是无法得到现有主流操作系统的支持,就无法大规模应用。进一步来讲,即使某种处理器得到主流操作系统的支持,但是由于其指令集的不兼容性,导致大量的应用无法运行,这种处理器也是难以普及的

2014-03-13 14:43:00 1772

原创 android手机高精度定时机制--higher timer tick 笔记版 转载请注明出处--- crosskernel@gmail.com

作者   crosskernel@gmail.comandroid手机内核时钟整体架构分为上下两层,下层理解为物理时钟的操控,即按照上层时钟逻辑的要求产生物理时钟中断、编程产生下一次时钟中断、切换时钟中断产生的模式、初始、关闭物理时钟。而上层时钟的作用是根据内核运行时的要求对下层下发各种命令,并根据下层送上来的时钟事件驱动内核的high resolution timer,schedul

2014-03-13 14:38:49 5176

原创 linux的板级支持以I.mx5为例 笔记版 转载请注明出处---crosskernel@gmail.com

1 对BOARD的抽象Linux里用struct machine_desc来抽象板级支持。该结构描述了一个板子的基本硬件信息及函数。struct machine_desc {/** Note! The first four elements are used* by assembler code in head.S, head-common.S*///nr是板子

2014-03-13 14:27:46 1624

原创 SMP多核处理器omap4启动分析 笔记版 转载请注明出处---crosskernel@gmail.com

Omap4 是Ti在移动市场上的绝唱。在没有通信modem的支援下,依赖于omap4,Ti硬是在手机处理器市场赢得最后一站。Omap4是双核Cortex A9架构的处理器,本文分析其启动表现。代码执行顺序如黑体static int __init kernel_init(void * unused){…smp_prepare_cpus(setup_max_cpus);…}void __init smp_prepare_cpus(unsigned int max_cpus){…s

2014-03-13 14:25:16 1859

原创 s5pv210 uboot 源码分析 笔记版 转载请注明出处---crosskernel@gmail.com

Uboot二进制镜像分析:在文件board/samsung/smdkc110/config.mk里面定义了uboot的基地址:TEXT_BASE = 0xc3e00000在文件board/samsung/smdkc110/u-boot.lds里面定义了uboot链接格式:OUTPUT_FORMAT("elf32-littlearm", "elf32-litt

2014-03-13 14:21:12 2269

原创 卷二 Dalvik与Android源码分析 第五章 Interpreter与JIT 5.3-C解释器 5.4--汇编解释器 图书版试读--请勿转发

5.3 Portable Interpreter最初的几个andoid版本里,dalvik的解释器是用c写的。这种解释器执行速度较慢,但可读性较强,移植性好,在以后Android版本里尽管实现了汇编优化的解释器,但这种portable解释器依然存在。在Android向某个全新架构的处理器上移植时,是没有对应的汇编解释器的,这时portable的价值就体现出来了。

2014-03-13 14:05:48 1720

原创 卷二 Dalvik与Android源码分析 第五章 Interpreter与JIT 5.1 解释器编译结构、5.2dalvik寄存器编译模型 图书版试读--请勿转发

第五章 Interpreter与JIT    图书版(5.1-5.2)解释器是影响虚拟机性能关键因素,最初的Dalvik只有C语言版本的解释器,到汇编实现的ASM解释器。再到进一步将JIT做进解释器。Android不停的提升其Dalvik解释器效率。5.1 解释器编译结构对于不同的处理器和指令集,Android有着与之对应的高度优化的Interpreter和JI

2014-03-13 14:03:05 1390

原创 ARM处理器模式弹跳机制的初始化 笔记版 转载请注明出处---crosskernel@gmail.com

void cpu_init(void){unsigned int cpu = smp_processor_id();struct stack *stk = &stacks[cpu];if (cpu >= NR_CPUS) {printk(KERN_CRIT "CPU%u: bad primary CPU number\n", cpu);BUG();}

2014-03-12 15:20:50 856

Attacking-the-Windows-Kernel

Attacking-the-Windows-Kernel.pdf

2009-03-14

ARM Cortex A8 Whitepaper

ARM Cortex A8 Whitepaper

2009-03-14

Windows Memory Layout, User-Kernel Address Spaces

Windows Memory Layout, User-Kernel Address Spaces

2009-03-14

Linux 内核中Demand paging 与swap 机制的源码分析

Linux 内核中Demand paging 与swap 机制的源码分析

2009-03-14

ARMCortexA-9Processors.pdf

ARMCortexA-9Processors.pdf

2009-03-14

Codec Engine Application Developer Guide .pdf

Codec Engine Application Developer Guide TI DSP C64

2009-03-14

Codec Engine Algorithm Creator User.pdf

Codec Engine Algorithm Creator User TI DSP

2009-03-14

空空如也

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

TA关注的人

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