1

我的问题是:调用 free_irq 时会触发中断处理程序。我注意到在内核消息中调用了处理程序,但由于我们的设备没有请求中断,它提示没有收到中断。这是预期的行为吗?有人可以帮忙吗?

4

2 回答 2

1

当您为(可能)共享中断(使用 IRQF_SHARED)注册处理程序时,该中断可能由您的驱动程序无法控制的其他设备触发,因此您的驱动程序必须随时准备接收中断。

为了帮助调试驱动程序,内核将(当设置 CONFIG_DEBUG_SHIRQ 时)伪造一些中断以检查您的驱动程序是否正常工作。
[源代码]

于 2014-01-31T14:09:01.397 回答
0

如果我理解你的帖子是正确的——你必须在调用 free_irq()之前关闭硬件中的中断,那么在 free_irq() 时你将不会收到中断。

于 2014-01-31T14:45:24.527 回答