Kernel
文章平均质量分 94
RYZR
这个作者很懒,什么都没留下…
展开
-
zImage内核镜像解压过程详解
<br /><br />本文以linux-2.6.14内核在S3C2410平台上运行为例,讲解内核的解压过程。<br /> 内核编译完成后会生成zImage内核镜像文件。关于bootloader加载zImage到内核,并且跳转到zImage开始地址运行zImage的过程,相信大家都很容易理解。但对于zImage是如何解压的过程,就不是那么好理解了。本文将结合部分关键代码,讲解zImage的解压过程。<br /> 先看看zImage的组成吧。在内核编译完成后会在arch/arm/boot/下生成zImag转载 2010-12-18 23:43:00 · 742 阅读 · 0 评论 -
dm9000移植修改原理(时序分析)
<br />想了解一下DM9000的移植修改原理,所以分析了一下时序图和引脚连接<br />首先看一下DM9000的引脚和MINI2440的引脚连接<br />DM9000 MINI2440 功能描述<br />SD0 DATA0 数据信号<br /> | |<br />SD15 DATA15 数据信号<br />CMD ADDR2 识别为地址还是数据<br />INT EINT7 中断<br />IOR# nOE 读命令使能<br />IOW# nWE转载 2011-01-07 10:29:00 · 770 阅读 · 0 评论 -
dm9000移植修改原理(时序分析)
想了解一下DM9000的移植修改原理,所以分析了一下时序图和引脚连接首先看一下DM9000的引脚和MINI2440的引脚连接DM9000 MINI2440 功能描述SD0 DATA0 数据信号 | |SD15 DATA15 数据信号CMD ADDR2 识别为地址还是数据INT EINT7 中断IOR# nOE 读命令使能IOW# nWE 写命令使能AEN nGCS4 片选使能可以看出连接了16条数据线,1条地址线,而这唯一的一条地址线用于判断数据转载 2011-01-07 10:29:00 · 818 阅读 · 0 评论 -
Linux 2.6 内核的 Initrd 机制解析
Linux 的 initrd 技术是一个非常普遍使用的机制,linux2.6 内核的 initrd 的文件格式由原来的文件系统镜像文件转变成了 cpio 格式,变化不仅反映在文件格式上, linux 内核对这两种格式的 initrd 的处理有着截然的不同。本文首先介绍了什么是 initrd 技术,然后分别介绍了 Linux2.4 内核和 2.6 内核的 initrd 的处理流程。最后通过对 Linux2.6 内核的 initrd 处理部分代码的分析,使读者可以对 initrd 技术有一个全面转载 2010-11-11 11:19:00 · 509 阅读 · 0 评论 -
ARM Linux静态映射分析
<br />内核提供了一个重要的结构体struct machine_desc ,这个结构体在内核移植中起到相当重要的作用,内核通过machine_desc结构体来控制系统体系架构相关部分的初始化。machine_desc结构体的成员包含了体系架构相关部分的几个最重要的初始化函数,包括map_io,init_irq, init_machine以及phys_io , timer成员等。<br />machine_desc结构体定义如下:<br />struct machine_desc {<br /转载 2011-01-04 16:31:00 · 548 阅读 · 0 评论 -
Linux内核访问外设I/O资源的方式
<br /><br />Linux内核访问外设I/O资源的方式<br />我们知道默认外设I/O资源是不在Linux内核空间中的(如sram或硬件接口寄存器等),若需要访问该外设I/O资源,必须先将其地址映射到内核空间中来,然后才能在内核空间中访问它。<br />Linux内核访问外设I/O内存资源的方式有两种:动态映射(ioremap)和静态映射(map_desc)。<br />一、动态映射(ioremap)方式<br />动态映射方式是大家使用了比较多的,也比较简单。即直接通过内核提供的ioremap函转载 2011-01-04 17:24:00 · 552 阅读 · 0 评论 -
Linux设备模型之platform总线
<br />------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http://ericxiao.cublog.cn/------------------------------------------<br />一:前言Platform总线是kernel中最近加入的一种虚拟总线.在近版的2.6kernel中,很多驱动都用platform改写了.只有在分析完platform总线之后,才能继续深入下去分析.在分析完sysfs和设备驱动模型转载 2010-12-30 14:37:00 · 501 阅读 · 0 评论 -
linux设备模型分析
<br />------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http://ericxiao.cublog.cn/------------------------------------------<br />一:前言Linux设备模型是一个极其复杂的结构体系,在编写驱动程序的时候,通常不会用到这方面的东西,但是。理解这部份内容,对于我们理解linux设备驱动的结构是大有裨益的。我们不但可以在编写程序程序的时候知其然,亦知其所以然。转载 2010-12-30 14:35:00 · 463 阅读 · 0 评论 -
linux 内核驱动--Platform Device和Platform_driver注册过程
<br /><br />转自网络,自己学习用<br /> <br />从Linux 2.6起引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。<br />Linux中大部分的设备驱动,都可以使用这套机制, 设备用Platform_device表示,驱动用Platform_driver进行注册。<br /><br /><br />Linux platform driver机制和传统的device driver 机制(通过driver_register函数进行注册转载 2010-12-24 11:33:00 · 1245 阅读 · 0 评论 -
Linux内核调试
<br />调试是软件开发过程中一个必不可少的环节,在 Linux 内核开发的过程中也不可避免地会面对如何调试内核的问题。但是,Linux 系统的开发者出于保证内核代码正确性的考虑,不愿意在 Linux 内核源代码树中加入一个调试器。他们认为内核中的调试器会误导开发者,从而引入不良的修正[1]。所以对 Linux 内核进行调试一直是个令内核程序员感到棘手的问题,调试工作的艰苦性是内核级的开发区别于用户级开发的一个显著特点。 <br />尽管缺乏一种内置的调试内核的有效方法,但是 Linux转载 2010-12-23 22:33:00 · 626 阅读 · 0 评论 -
linux内核的一些预定义
<br /><br />转自网络 自己学习<br /> <br />所有的内核代码,基本都包含了linux/compile.h这个文件,所以它是基础,打算先分析这个文件里的代码看看,有空再分析分析其它的代码。<br />首先印入眼帘的是对__ASSEMBLY__这个宏的判断,这个变量实际是在编译汇编代码的时候,由编译器使用-D这样的参数加进去 的,AFLAGS这个变量也定义了这个变量,gcc会把这个宏定义为1。用在这里,是因为汇编代码里,不会用到类似于__user这样的属性(关于 __user这样的属性是怎转载 2010-12-23 15:43:00 · 940 阅读 · 0 评论 -
dm9000移植修改原理(时序分析)
<br />想了解一下DM9000的移植修改原理,所以分析了一下时序图和引脚连接<br />首先看一下DM9000的引脚和MINI2440的引脚连接<br />DM9000 MINI2440 功能描述<br />SD0 DATA0 数据信号<br /> | |<br />SD15 DATA15 数据信号<br />CMD ADDR2 识别为地址还是数据<br />INT EINT7 中断<br />IOR# nOE 读命令使能<br />IOW# nWE转载 2011-01-07 10:29:00 · 717 阅读 · 0 评论