驱动
文章平均质量分 78
shiyi_2012
这个作者很懒,什么都没留下…
展开
-
linux中断三个数据结构
以一个IRQ中断为例子。内核启动-------调用start_kernel()函数------调用setup_arch(&command_line)函数-----------调用early_trap_init()函数,实现异常向量表,异常处理代码的搬运如果产生IRQ中断---------PC指向搬运后的异常向量表的vector_irq + stubs_offset地址 -------跳原创 2012-04-20 15:09:31 · 1323 阅读 · 0 评论 -
LED子系统剖析(一)
广工仔如果有意转载,请标明来源:http://blog.csdn.net/shiyi_2012/article/details/7456165写之前,先看一张图:上次说了LED驱动程序,Linux自身也携带了LED驱动,且是脱离平台的,即LED子系统。操作起来十分简单。但是它的实质却不是那么容易,研究了一个晚上,终于明白了其中一个文件的功能啦,机led-class.原创 2012-04-13 00:45:32 · 11436 阅读 · 4 评论 -
存储器之DRAM
1S.DRAM是什么?上网百度百科一下:DRAM(Dynamic Random Access Memory),即动态随机存取存储器最为常见的系统内存。DRAM 只能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,所以 必须隔一段时间刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失。 (关机就会丢失数据)。关键字,存储。也就是存放数据。2.SDRAM的特点原创 2012-04-14 23:45:53 · 2130 阅读 · 0 评论 -
ARM9---LED驱动
前天写了ARM9的LED和按键的裸机程序,今天把它用驱动实现。但是真的不好写,搞了一个晚上,不过真算OK啦。我的这个驱动,实现的功能就是提供一个菜单给你选择,只要在总端输入数字选着LED运行模式就可以。并且我用KI按键,实现了可以返回菜单另选另一种模式的功能。最后一个,就是应用层序是一个死循环,我还提供一个选择,退出死循环。但是另选模式后,要执行完本次才执行重选的模式。图如下:1.进入原创 2012-04-12 00:56:08 · 3521 阅读 · 0 评论 -
linux网络设备驱动之实质篇
在讲解linux内核自身携带的网络设备驱动程序之前,先讲解一下网络设备模型,知道要做些什么。对于网络设备驱动,主要目的就是接受数据和发送数据。而人们把网络设备的体系结构就分为上面四层,就是为了更好的实现上面两个功能。怎么更好,后面会说到。先来个总介,后面在展开细讲。网络协议接口层提供两个函数,dev_queue_xmit发送函数和netif_rx接收函数,而网络设备接口层其实姐原创 2012-04-10 18:13:41 · 1558 阅读 · 0 评论 -
一个linux下安装多个内核
步骤:1.解压内核源代码到某个目录中2.make distclean清理内核中间文件与配置文件3.选择参考配置文件cp /boot/config-2.6.18-53.e15 .config4.配置内核使.config生效make menuconfig退出5.编译内核make bzImage6.编译内核模块mak原创 2012-04-06 20:00:04 · 1657 阅读 · 0 评论 -
uboot之---make smdk2410_config命令详细解析
广工10转载请标明来源:http://blog.csdn.net/shiyi_2012/article/details/7420459随便找个uboot源代码就可以啦。 首先进入顶层Makefile。有很多相对不同板子的配置,如:gec2440_config:unconfig @$(MKCONFIG) $(@:_config=) arm arm920t原创 2012-04-01 22:08:40 · 7963 阅读 · 1 评论 -
U-boot启动第一阶段详细分析
#include #include .globl _start //定义全局变量_start: b reset ; //跳转到reset标号处,现在到那个地方look//中断时候使用,产生中断时,跳到指定位置ldr pc, _undefined_instruction ldr pc, _softwar原创 2012-04-01 20:32:45 · 3356 阅读 · 0 评论 -
linux内核编译的实质
广工如果有意转载请标明来源:http://blog.csdn.net/shiyi_2012/article/details/7396785当你解压一个linux内核源代码的时候,里面没有vmlinux文件的。但你对linux编译为某个平台,无论是ARM还是PC都行,都可以发现,你编译后就根目录比原来多了一个文件vmlinux,这就是内核镜像文件。他是如何产生的呢?大家可能知道内核就是通原创 2012-03-26 21:41:49 · 4214 阅读 · 0 评论 -
中断剖析一early_trap_init()函数解析
今天就将上面的函数,该函数实现的功能就是:该函数代码很小,主要就是: memcpy((void *)vectors, __vectors_start, __vectors_end - __vectors_start); memcpy((void *)vectors + 0x200, __stubs_start, __stubs_end - __stubs_start);而关于vec原创 2012-04-19 22:25:20 · 3503 阅读 · 0 评论