自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 中断处理(按键驱动)

用今天写的一个按键驱动程序,来说明中断的处理过程:代码如下:#define GPH0CON 0xE0300C00int major = 250;int minor = 0;int devno;void *gphcon=NULL;struct key_device{ char val; struct cdev cdev; struct semaphore sem; wa

2012-12-11 19:18:09 2929

原创 四种IO模型在底层驱动的实现方法

四种IO模型,及其在驱动中实现的方法一、非阻塞IO当设备没有要操作的资源时,它会立即返回。这种操作,一般要在应用层循环检测,比较占用cpu资源。二、阻塞IO这种实现方法需要借助于等待队列对待buf有两种队列,读和写,可以在设备的私有资源中定义两个队列:wait_queue_head_t    rq,wq;当读写时,没有相应的资源,并且是以阻塞方式读写设备的,那么,就可以

2012-12-09 14:37:23 2799

原创 LINUX驱动中的并发控制

如果多个应用进程同时访问一个外设,就会产生并发竞态竞态的原因:(1)SMP多处理器(2)进程间的任务抢占(3)中断解决的方法:方法一、中断禁止local_irq_disablelocal_irq_enable中断禁止,只能解决因中断引起的竞态:任务抢占(它是基于中断的)、中断(硬中断,软中断,TASKLET,)方法二、原子操作:特点:使用原子变量的设备只

2012-12-08 16:16:31 1024

原创 file、inode在应用层和驱动层之间的联系

应用层和驱动的衔接,一直是一个老大难问题,若弄不清楚,总觉得驱动写起来似是而非的。下面就说说我对他们的理解,还有就是如何实现一个驱动支持多个上设备的问题。最主要涉及两个机制:inode和file在驱动中:(1)、我们先找到一个设备号devno,可以动态申请,也可以静态设定,假设静态设定为major,minor,通过宏MKDEV(major,minor)来生成devno(2)、构

2012-12-08 15:30:39 6533

原创 U-boot

U-BOOTcortexa8的引导过程,及存储空间的排布芯片内部集成有irom,iram,其中,irom的起始地址就是0地址,程序启动时,先从0地址开始运行,此处集成的是三星厂家的引导程序,它的功能是:通过nand控制器,从nand里面读取boot的前16K(iram的大小为16K)到iram中去执行。uboot编译好后,已经有链接地址,并且大小大于16K,所以完整的uboot不可

2012-12-02 15:23:44 1628

空空如也

空空如也

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

TA关注的人

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