2010-07-16 87 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,因爲這會與處理器的雙重故障異常中斷相沖突,本書可能只是提到默認設置。