字符设备驱动----中断程序

原创 2015年11月17日 23:55:59

Linux内核将所有的中断统一编号,使用一个irq_desc结构数组来描述这些中断:每个数组项对应一个中断。

一. 中断的处理流程如下:

1. 发生中断时,CPU执行异常向量 vector_irq 的代码。
2. 在 vector_irq 里面,最终会调用中断处理的总入口函数asm_do_IRQ.
这里写图片描述
3. asm_do_IRQ 根据中断号调用 irq_desc 数组项中的handle_irq.
4. handle_irq 会使用chip成员中的函数来设置硬件。
5. handle_irq 逐个调用用户在 action 链表中注册的处理函数。

这里写图片描述
可见,中断体系结构的初始化就是构造这些数据结构,比如irq_desc数组项中的handle_irq, chip等成员。
用户注册中断时就是构造action 链表。
用户卸载中断时就是从action链表中去除不需要的项。

二. 用户注册与卸载中断

//注册
int request_irq(unsigned int irq, 
        irq_hander_t handler,
        unsigned long irqflags,
        const char* devname, 
        void * dev_id);

//卸载
void free_irq(unisgned int irq, void* dev_id)   
版权声明:本文为博主原创文章,未经博主允许不得转载。

嵌入式Linux驱动开发(四)——字符设备驱动之中断方式以及中断方式获取按键值

之前我们完成了关于通过查询的方式获取按键键值的驱动程序,可以参考:嵌入式Linux开发——裸板程序之中断控制器。 虽然读取键值没有什么问题,但是测试程序占用CPU过高,一直在不断的查询,资源消耗过大,...
  • Toonle
  • Toonle
  • 2017年08月23日 21:10
  • 315

jz2440的字符设备驱动

VFS根据设备类型、设备号来找到fops 实现方法:在一个数组里面,以major为索引,找到fops后填充到数组中去。 APP:    open("/dev/xxx")     read,...
  • liuwei423210896
  • liuwei423210896
  • 2015年09月24日 16:07
  • 252

Linux字符设备驱动程序开发(1)-使用字符设备驱动

1、使用字符设备驱动程序 1.1编译/安装驱动 在Linux系统中,驱动程序通常采用内核模块的程序结构来进行编码。因此,编译/安装一个驱动程序,其实质就是编译/安装一个内核模块。把下面的范例代码拷贝到...
  • u013181595
  • u013181595
  • 2017年06月29日 22:42
  • 184

Linux字符设备驱动之中断按键

看了上一篇文章后,相信你们对按键有个基本的了解,在这个驱动之前写的驱动跟51是没有什么区别的,上篇文章中的读按键是一直在进行,特别是对CPU的消耗会非常大,我们一般不采用这种方法,这章我们采用中断实现...
  • qq_21792169
  • qq_21792169
  • 2015年09月13日 15:31
  • 3287

虚拟字符设备驱动的编写

虚拟字符设备的驱动编写
  • niotong2014
  • niotong2014
  • 2016年09月10日 23:57
  • 260

linux设备驱动第三篇:写一个简单的字符设备驱动

在linux设备驱动第一篇:设备驱动程序简介中简单介绍了字符驱动,本篇简单介绍如何写一个简单的字符设备驱动。本篇借鉴LDD中的源码,实现一个与硬件设备无关的字符设备驱动,仅仅操作从内核中分配的一些内存...
  • HAOMCU
  • HAOMCU
  • 2015年03月28日 19:05
  • 24412

字符设备驱动第十二课-----中断

gpio中断申请与注册
  • u010243305
  • u010243305
  • 2016年12月08日 11:50
  • 346

字符设备驱动之中断按键驱动

1、注册设备描述结构:major = register_chrdev(0,"", file_operation);\ 2、自动创建设备节点: class_create(); class_devic...
  • Jiang_XB
  • Jiang_XB
  • 2015年04月01日 09:43
  • 157

字符设备驱动之Buttons-中断

buttons.c #include #include #include #include #include #include #include #i...
  • yicao821
  • yicao821
  • 2011年09月14日 16:14
  • 512

ubuntu12.04下实现字符设备驱动并提供源码解析

看到LDD3(linux device driver 3rd)第三章的时候,讲解了字符设备驱动的实现,自然就找到了源码来进行查看和编译,但是,官方的源码包含了第三章到第六章的内容,对于新手来说,可能就...
  • jiguangcanhen
  • jiguangcanhen
  • 2014年12月30日 17:49
  • 954
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:字符设备驱动----中断程序
举报原因:
原因补充:

(最多只允许输入30个字)