request_irq()、free_irq()
来源:互联网 发布:网络通信设备 编辑:程序博客网 时间:2024/05/10 14:22
request_irq()、free_irq()
这是驱动程序申请中断和释放中断的调用。在include/linux/sched.h里声明。
request_irq()调用的定义:
int request_irq(unsigned int irq,
void (*handler)(int irq, void *dev_id, struct pt_regs *regs
),
unsigned long irqflags,
const char * devname,
void *dev_id);
irq是要申请的硬件中断号。在Intel平台,范围0--15。handler是向系统登记的中断处理函数。这是一个回调函数,中断发生时,系统调用这个函数,传入的参数包括硬件中断号,device id,寄存器值。dev_id就是下面的request_irq时传递给系统的参数dev_id。irqflags是中断处理的一些属性。比较重要的有SA_INTERRUPT,
标明中断处理程序是快速处理程序(设置SA_INTERRUPT)还是慢速处理程序(不设置SA_INTERRUPT)。快速处理程序被调用时屏蔽所有中断。慢速处理程序不屏蔽。还有一个SA_SHIRQ属性,设置了以后运行多个设备共享中断。dev_id在中断共享时会用到。一般设置为这个设备的 device结构本身或者NULL。中断处理程序可以用dev_id找到相应的控制这个中断的设备,或者用irq2dev_map找到中断对应的设备。
void free_irq(unsigned int irq,void *dev_id);
request_irq()/*给给定的中断源安装中断处理程序*/;
free_irq() /*释放分配给已定中断的内存*/;
enable_irq() /*调用中断控制函数使给定中断链有效*/ ;
disable_irq()/*使定义中断链失效*/
目标平台中这些函数是必不可少的。
- request_irq()、free_irq()
- request_irq()、free_irq()
- request_irq()、free_irq()
- request_irq()、free_irq()
- request_irq()、free_irq()
- request_irq()、free_irq()
- Linux内核中断:request_irq,free_irq
- request_irq()、free_irq(),以及spin_lock_irqsave和spin_lock区别
- request_irq()
- request_irq
- request_irq
- request_irq
- request_irq()
- free_irq调试一则
- free_irq调试一则
- free_irq调试一则
- request_irq函数
- request_irq函数
- linux下tinycxx类库
- 灵活/弹性数组成员--结构体中0个元素的数组
- Your Computer Restarts Unexpectedly When You Press CTRL+ALT+DELETE to Unlock Your Computer
- 2008年7月起 公积金缴存基数上限将上调为11765元
- 修复爱国者 MP3 的文件夹和文件名不显示问题
- request_irq()、free_irq()
- 用命令行netsh修该windows的网关,ip
- 数据导出到Excel的解决方案 [转]
- 关于UI设计
- 国房景气指数连回落 商品房空置1.27亿平
- 使用链接服务器和T-SQL将查询结果写入Excel
- BAT批处理文件教程
- How to troubleshoot a "STOP 0xC000021A" error
- 员工为何不愿意分享知识