如题所述
在Linux内核中,request_irq() 函数是注册中断服务函数:函数的原型如下:
int request_irq (unsigned int irq, void (*handler)(int, void *, struct pt_regs *), unsigned long frags, const char *device, void *dev_id);
5个参数的含义如下:
第一个参数irq:申请的硬件中断号;
第二个参数handler:是一个函数指针,向系统登记的中断处理函数,是一个回调函数,当中断发生时,系统调用这个函数,传入的参数包括中断设备 id,寄存器值。
第三个参数flags:指定了快速中断或中断共享等中断处理属性。
第四个参数devices:指定设备驱动程序的名称。
第五个参数dev_id:传入中断处理程序的参数,可以为NULL,在注册共享中断时,此参数不能为NULL,作为共享中断时的中断区别参数。
返回值:
函数运行正常时返回 0 ,否则返回对应错误的负值。
int request_irq (unsigned int irq, void (*handler)(int, void *, struct pt_regs *), unsigned long frags, const char *device, void *dev_id);
5个参数的含义如下:
第一个参数irq:申请的硬件中断号;
第二个参数handler:是一个函数指针,向系统登记的中断处理函数,是一个回调函数,当中断发生时,系统调用这个函数,传入的参数包括中断设备 id,寄存器值。
第三个参数flags:指定了快速中断或中断共享等中断处理属性。
第四个参数devices:指定设备驱动程序的名称。
第五个参数dev_id:传入中断处理程序的参数,可以为NULL,在注册共享中断时,此参数不能为NULL,作为共享中断时的中断区别参数。
返回值:
函数运行正常时返回 0 ,否则返回对应错误的负值。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-12-15
不懂