2010-07-16 91 views
3

我正在研究低级设备驱动程序的东西。我很困惑中断和IRQ。钩住键盘的示例驱动程序代码表明键盘中断是0x31,但我的微处理器上的书是0x09。在打开'设备管理器 - >键盘 - >资源'时,它显示IRQ是1.任何人都可以澄清这一点吗?键盘中断

谢谢, Sanjeev

回答

0

简单的答案是一个IRQ(中断请求)是由所述系统映射到一个中断硬件输入。在键盘IRQ1的情况下被映射到中断9

快乐的答案是,在这种情况下中断31H是明显错误或拼写错误。

Interrupt request

2

就是这样。在您的计算机中,您有一个称为(A)PIC的单元。本机从您的某些外围设备(如PS2键盘)获取输入信号,并在CPU上引发中断。在现代系统中有两个APIC。一个称为主,另一个称为奴隶,每个拥有8个IRQ线路。当您按下键盘上的某个键时,APIC在线路1(IRQ 1)上获得一个信号,然后在CPU上发生中断。

APIC可以编程,即使它接收到第1行的信号,它也不会在CPU上产生中断9(即使奇怪的是,如果不编程它,它实际上是默认值),因为这会与一些的CPU内部中断,所以你通常编程去其他地方。在你的情况下,它似乎将它转换为中断0x31,这听起来可能是正确的(它增加了IRQ + 0x30)。

我强烈地不相信它被映射到中断9,因为这会与处理器的双重故障异常中断相冲突,本书可能只是提到默认设置。