Linux设备驱动程序:IRQ 1和IRQ 23

时间:2017-12-12 10:40:00

标签: c linux-kernel keyboard linux-device-driver

前几天,我发布了一个问题here,询问如何安全地开发键盘中断处理程序。 深入研究建议的答案,让我发现基本上我的默认键盘处理程序没有设置为IRQ 1.这是因为watch -n1 cat /proc/interruptsfree_irq(23, (void*)irq_handler)都强调IRQ 1不对键盘负责处理。此外,由于我的键盘和鼠标都通过USB连接,我发现IRQ 23负责两个USB设备。然后我修改了一点代码。每当我通过0x60将我的处理程序设置为IRQ 23时,我可以在按下/释放任何键和任何鼠标移动时触发中断。因此,基本上IRQ 23会响应任何键盘和鼠标事件而触发。在这里,我无法找到按下哪个键,因为在任何提及的操作(按键,键释放,鼠标单击,鼠标移动)下,两个端口0x640x60总是分别报告相同的值156和28等等。)。

有两件事。 1)为什么IRQ 1不对键盘中断处理负责,2)如果IRQ 23负责,为什么从端口0x64WicketTester获取值无法解决我在我发布的代码中的预期以上链接?

感谢您的任何建议。

0 个答案:

没有答案