Linux内核键盘可以通过进一步的键盘中断而中断



在linux 0.11内核中,键盘中断处理程序是陷阱门,即不会从Inter Pin中打断中断,

_keyboard_interrupt:
push eax
...
in al,60h // read scan code
call key_table[eax*4]
reset keyboard
...
mov al, 20h
out 20h, al // send EOI to 8259A interrupt controller
call _do_tty_interrupt
...
pop eax
iretd

当CPU在> _DO_TTY_INTERRUPT中处理>将EOI发送到8259a中断控制器之后,可能会断言另一个键盘中断。可以通过其他键盘中断打断键盘中断(嵌套)吗?

他们的键盘上有一个缓冲区,未能从缓冲区读取键将阻止键盘上任何后续的IRQ,因此无需禁用中断。

如果在_do_tty_interrupt期间发生另一个中断,则PIC告诉CPU,一旦CPU再次将状态信息保存在堆栈上。

,将执行一个新的中断处理程序。

相关内容

  • 没有找到相关文章

最新更新