自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 linux中断三个数据结构

以一个IRQ中断为例子。内核启动-------调用start_kernel()函数------调用setup_arch(&command_line)函数-----------调用early_trap_init()函数,实现异常向量表,异常处理代码的搬运如果产生IRQ中断---------PC指向搬运后的异常向量表的vector_irq + stubs_offset地址 -------跳

2012-04-20 15:09:31 1323

原创 中断剖析一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 3500

原创 ARM9---中断篇

广工仔有意转载,请标明来源:http://blog.csdn.net/shiyi_2012/article/details/7467956其实对于ARM9中断和51差不多啦,总的就是中断前期准备做好,然后中断满足,中断做后续工作就OK啦。第一个问题就是ARM9中断实质。首先要好好理解这个表,就是相应的中断产生之后,处理器就会使得PC指针自动跳转到该对应地址上。所以,对于

2012-04-17 00:44:49 8618

原创 存储器之DRAM

1S.DRAM是什么?上网百度百科一下:DRAM(Dynamic Random Access Memory),即动态随机存取存储器最为常见的系统内存。DRAM 只能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,所以 必须隔一段时间刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失。 (关机就会丢失数据)。关键字,存储。也就是存放数据。2.SDRAM的特点

2012-04-14 23:45:53 2129

原创 LED子系统剖析(一)

广工仔如果有意转载,请标明来源:http://blog.csdn.net/shiyi_2012/article/details/7456165写之前,先看一张图:上次说了LED驱动程序,Linux自身也携带了LED驱动,且是脱离平台的,即LED子系统。操作起来十分简单。但是它的实质却不是那么容易,研究了一个晚上,终于明白了其中一个文件的功能啦,机led-class.

2012-04-13 00:45:32 11435 4

原创 ARM9---LED驱动

前天写了ARM9的LED和按键的裸机程序,今天把它用驱动实现。但是真的不好写,搞了一个晚上,不过真算OK啦。我的这个驱动,实现的功能就是提供一个菜单给你选择,只要在总端输入数字选着LED运行模式就可以。并且我用KI按键,实现了可以返回菜单另选另一种模式的功能。最后一个,就是应用层序是一个死循环,我还提供一个选择,退出死循环。但是另选模式后,要执行完本次才执行重选的模式。图如下:1.进入

2012-04-12 00:56:08 3520

原创 linux网络设备驱动之实质篇

在讲解linux内核自身携带的网络设备驱动程序之前,先讲解一下网络设备模型,知道要做些什么。对于网络设备驱动,主要目的就是接受数据和发送数据。而人们把网络设备的体系结构就分为上面四层,就是为了更好的实现上面两个功能。怎么更好,后面会说到。先来个总介,后面在展开细讲。网络协议接口层提供两个函数,dev_queue_xmit发送函数和netif_rx接收函数,而网络设备接口层其实姐

2012-04-10 18:13:41 1558

原创 ARM9---LED和按键

//寄存器设置#define  GPBCON   (*(volatile unsigned long *)0x56000010)#define  GPBDAT   (*(volatile unsigned long *)0x56000014)#define  GPBUP    (*(volatile unsigned long *)0x56000018)#define  G

2012-04-10 00:18:58 1059

原创 一个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

原创 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 7962 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 3354

空空如也

空空如也

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

TA关注的人

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