阅读:2986回复:6
关于中断号与中断向量
我们都知道,PCI的中断是可以共享的,那我想问问,PCI的中断可不可以独占呢?由中断号换算成中断向量是和系统有关系的,那么究竟是怎么样的关系呢?另外,在某一特定的系统下,中断向量是不是唯一对应一个中断号呢?
所有这些问题很是迷糊,望各位老大解答,绝对给分! :D :D :D |
|
沙发#
发布于:2003-03-10 21:13
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2003-03-10 22:17
中断向量应该是DOS下的概念了。
|
|
地板#
发布于:2003-03-11 10:30
可是我们在用SoftICE的intobj命令时,就能看到vector,而且在driver里面获取资源时,也能获取vector,那表明中断向量不仅仅是dos下的概念吧?
|
|
地下室#
发布于:2003-03-12 17:32
中断向量表是CPU的概念, 在各种CPU或者不同的模式下叫法各不相同.但是作用是一样的, 当CPU的对应IRQ引脚被ASSERT时, 从特定的地址执行一段代码. CPU本身不管到底是谁发出的请求. 只管调用特定地址的代码. 从这点上说, 中断都是可以共享的. 软件上只要做一下识别到底是否确实是自己管理的硬件发出的请求就可以. 但是PC BIOS并没有从一开始就编写各种设备使用同一个IRQ的代码. 导致现在部分IRQ只能独占, 只有那些以前并没有使用的IRQ可以设定为共享的了.
|
|
|
5楼#
发布于:2003-03-12 18:26
我们都知道,PCI的中断是可以共享的,那我想问问,PCI的中断可不可以独占呢?由中断号换算成中断向量是和系统有关系的,那么究竟是怎么样的关系呢?另外,在某一特定的系统下,中断向量是不是唯一对应一个中断号呢? 由中断号换算成中断向量是和系统有关系的,那么究竟是怎么样的关系呢? 答:以下回答是8086CPU下DOS中的中断向量概念(Windows应该差不多): :P,DOS中,在内存的最低端存放着一个中断向量表: 从地址0x0 0000开始用每4个字节保存一个中断入口地址,共256个! 这4个字节保存着中断入口地址的IP:CS(由低到高保存,如果对于32位OS是否合适,我不知道)。 某个硬件中断产生时,会使两片8259中接外围中断的某个引角发生电平变化,从而使8259向CPU发出中断请求,如果CPU允许硬件中断的话,8259就会继续把此中断源对应的中断类型码发给CPU,CPU收到后把:中断类型码×4就得到了中断程序入口地址(CS:IP的值),而后CPU会把当前程序指针入栈,把中断程序入口地址载入CS:IP,而后CPU就转去执行中断程序了(中断程序要在返回时恢复当前程序指针。) |
|
|
6楼#
发布于:2003-03-12 18:42
由我的以上解释(如果你能看懂的话)很明显可以得出:
在某一特定的系统下,例如8086+DOS,中断向量是唯一对应一个中断号的! |
|
|