Linux内核学习从零单排之三:中断
1.不同的设备对应的中断不同,每个中断都有一个唯一的数字标识,这些中断值通常称为中断请求线(IRQ)。
2.在响应一个中断的时候,内核会执行一个函数,就叫做中断处理程序。中断处理程序就是被内核调用来响应中断的。既想要中断处理程序运行快,又想完成的工作量多,鉴于此,我们一般把中断处理分为两个部分:中断处理程序是上半部(top half),能够被允许稍后完成的工作会推迟到下半部(bottom half)。
3.注册中断处理程序:
驱动程序可以通过request_irq()函数注册一个中断处理程序(声明文件在:<linux/interrupt.h>),并且激活给定的中断线以处理中断。
int request_irq(unsigned int irq,irq_handler_t handler,unsigned long flags,const char *name,void *dev)
irq表示要分配的中断号。handler是一个指针,只想处理这个中断的实际中断处理程序。第三个参数flags可以为0,也可能是下列一个或多个标识的位掩码(其定义在<linux/interrupt.h>中):1)IRQ