【Tiny6410 And Linux】—(2.2)—Linux 中断处理——原理
来源:互联网 发布:c语言extern的作用 编辑:程序博客网 时间:2024/05/22 17:03
有点小烦躁!!!
1、Linux 中断接口函数
①、request_irq
int request_irq(unsigned int irq,irq_handler_t handler,unsigned long flags,
const char *name,void *dev);
功能描述申请中断函数参数▲:irq:中断号,某些平台上中断号到硬件中断号的映射并不是一一对应的。
▲:handler:指向要安装的中断处理函数的指针。
▲:flags:与中断管理有关的各种选项的字节掩码。
例如:
IRQF_DISABLED(SA_INTERRUPT):如果设置该位,表示是一个快速中断处理程序,否则为慢速的!
IRQF_SHARED(SA_SHIRQ):该位表明终端可以在设备间共享(就是将不同的设备挂到同一个中断信号线上)。
▲:name:传递给 requeset_irq 的字符串,在 /proc/interrupts 中用于显示中断的拥有者。
▲:dev:共享中断信号时用于区别的标识符。多个中断使用同一个中断处理函数也可以通过该参数区分。不使用置 NULL
返回值返回值为 0 时表示成功,或者返回一个负的错误符,函数返回 -EBUSY 通知另一个设备驱动程序已经使用了要申请的中断信号线。
②、free_irq
#include <linux/interrupt.h>
函数原型void free_irq(unsigned int irq,void *dev_id);功能描述释放中断函数参数▲:irq:中断号
▲:dev_id:通 request_irq 的参数 dev。
返回值无。
然后贴一张国嵌制作的中断处理流程吧:
其中编写中断程序(在中断上下文中运行)必须注意一下几点:
①、不能向用户空间发送或者接收数据。
②、不能使用可能引起阻塞的函数。
③、不能引起可能引起调度的函数。
- 【Tiny6410 And Linux】—(2.2)—Linux 中断处理——原理
- 【Tiny6410 And Linux】—(2.3)—使用工作队列处理按键中断——原理
- 【Tiny6410 And Linux】—(2.3)—使用工作队列处理按键中断——代码
- 【Tiny6410 And Linux】—(5.1)—RamDisk 驱动实现(内核缺省的处理函数 __make_request())——原理
- 【Tiny6410 And Linux】—(1.1)—kobject——原理
- 【Tiny6410 And Linux】—(1.2)—kset——原理
- 【Tiny6410 And Linux】—(1.3)—bus 设备模型——原理
- 【Tiny6410 And Linux】—(1.4)—device 设备模型——原理
- 【Tiny6410 And Linux】—(1.5)—driver 设备模型——原理
- 【Tiny6410 And Linux】—(2.1)—platform 总线、设备、驱动——原理
- 【Tiny6410 And Linux】—(2.4)—实现 input 模型按键驱动——原理
- 【Tiny6410 And Linux】—(6.1)—LCD 驱动测试程序——原理
- 【Tiny6410 And Linux】—(5.2)—RamDisk 驱动实现(自己绑定 make_request_fn() )——原理
- 【Tiny6410 And Linux】—(6.2)—LCD 驱动测试程序(BMP 显示位图)——原理
- 【Tiny6410 And Linux】—(5.1)—RamDisk 驱动实现(内核缺省的处理函数 __make_request())——代码
- Tiny6410学习—Linux命令
- [linux中断]——中断处理
- Linux——中断处理
- BUYING FEED 典型的贪心
- Windows下更改mysql数据库的默认字符集编码方式
- DOS下一些命令在网络环境中的应用
- mysql执行sql脚本文件
- java中Map
- 【Tiny6410 And Linux】—(2.2)—Linux 中断处理——原理
- Objective-c 中 nil, Nil, NULL和NSNull的区别
- 打击盗版软件的十大误区
- 文 件扩展名剖析
- 编译原理之文法(二)
- 用Unix的设计思想来应对多变的需求
- Python 网络编程测试-HTML解析
- (精)(图论加强)传递闭包
- Oracle内存结构研究-SGA篇