- 博客(19)
- 资源 (8)
- 收藏
- 关注
原创 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
Windows Memory Layout, User-Kernel Address Spaces
2009-03-14
Codec Engine Application Developer Guide .pdf
2009-03-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人