根据中断入口跳转方法的不同,中断可以分为向量中断和非向量中断。向量中断由硬件提供中断服务程序的入口地址,非向量中断由软件提供中断服务程序的入口地址。
Linux将中断处理程序分解为两个半部:顶半部(top half)和底半部(bottom half)。
Linux中断编程:
1.申请IRQ
int request_irq(unsigned int irq,irq_handler_t handler,unsigned long irqflags,const char*
devname,void *dev_id);
2.释放IRQ
void free_irq(unsigned int irq,void *dev_id);
3.屏蔽中断
void disable_irq_nosync(int irq);