硬件引发了一个中断,cpu在IRQ线上调用了注册的中断处理程序 .
在我的设备驱动程序中,在进入处理程序并在完成所需处理后重新启用它们时是否必须禁用中断?
或者,如果我们只是在调用中断处理程序后清除所需的中断状态寄存器而不禁用和重新启用它们,这是否可以?
什么是正确的过程,这种处理架构是特定的(x86,ARM)?
由于您的IRQ处理程序是从已禁用其他中断的上下文中调用的,因此您无需担心禁用和重新启用它们 . 您可以清除标志,快速完成工作,安排工作队列以执行进一步的工作并从处理程序返回 . 并将启用/禁用部分留给内核
1 回答
由于您的IRQ处理程序是从已禁用其他中断的上下文中调用的,因此您无需担心禁用和重新启用它们 . 您可以清除标志,快速完成工作,安排工作队列以执行进一步的工作并从处理程序返回 . 并将启用/禁用部分留给内核