在英特尔软件开发人员手册中,它说中断向量 32-255 通常是用户为外部 IO 设备定义的。在我的系统编程课上,我必须开发一个简单的设备驱动程序。我的问题是如何定义用于特定设备的特定中断向量?这是通过 BIOS 完成的吗?
注意:我们正在开发一个简单的操作系统,所以我的情况非常具体,但是,最后我需要了解这一切在 x86 系统上是如何发生的。目前我们的系统设置为将 32 个以上的中断向量分配给串行端口和键盘等设备。在阅读英特尔 82801EB ICH5 IO 控制器的数据表时,特别是关于 8259 PIC 的部分,它说 IRQ15 是辅助 IDE 通道。最终将如何将其作为中断向量放入堆栈?
我可能只是很困惑,以至于这个问题没有意义,所以我提前道歉。
编辑:所以我们的系统编程类有一个非常简单的操作系统,它具有用于安装 ISR 的内核例程,以处理给定向量编号的特定中断。在上个季度的课堂上,教授给了我们一个头文件,将键盘定义为向量编号 0x2c 或类似的东西。我试图找出如何使用我们的内核例程将主要和/或次要 IDE 通道中断映射到各种 ISR。目前,所有未使用的中断向量都有一个默认处理程序,如果发生中断,它将打印消息,因此 IDE 中断目前甚至没有打开,但这是另一个问题。