阅读:1696回复:5
求助:关于中断请求的问题?
我在win2000下,用driverwoks写驱动;(PCI9054)
想在调试的时候,用softice产生一个软中断; 在“硬件管理器”中,我的板子的中断请求是21,不是说应该是 0--15吗,哪位能帮忙解释一下? 在softice里如果执行GENINT 21会报错; 请问怎么自己指定设备的中断请求级别和中断向量? 2000下设备的中断资源分配都和什么有关系? 查了好多资料都没搞明白,哪位能帮帮忙阿? 谢谢了! |
|
最新喜欢:kiki_m... |
沙发#
发布于:2003-12-30 17:34
我在win2000下,用driverwoks写驱动;(PCI9054) 在Win2k/XP下,如果在主板的BIOS设置里面打开了APIC,则有可能出现15以上的IRQ号; IRQ号与中断向量的关系可以查一下softice中 GENINT命令的帮助(Win2k下应该+30)。 |
|
|
板凳#
发布于:2003-12-30 21:57
2000下设备的中断资源分配与你在安装操作系统时选用的硬件描述层有关,如果使用非APIC Hal,PCI设备的IRQ会被路由到8259,中断号限制在0-15之间,系统中断向量遵从+30的规则;如果使用的是APIC Hal,中断会被南桥里的I/O APIC接管,APIC分配的中断号在15以上,至于对应的中断向量就不遵从该规则了,你最好在softice里使用irq命令先查出系统使用的对应中断向量,然后再用genint来调试就可以了
|
|
地板#
发布于:2003-12-31 15:35
谢谢大家!
我的PCI卡对应的irql为16,对应的中断向量是93 我在softice里使用 GENINT 93 时,ice会自动跳出,驱动的isr没有被触发,这是怎么回事,大家指教指教吧! |
|
地下室#
发布于:2004-01-01 12:04
不是用irql去查,是irq
先到设备管理器里找到你的PCI卡的irq number,比如说是16,把它转换成16进制就是0x10,然后到softice里用irq命令找到10所对应的系统中断向量,再用genint去触发,只要你装了驱动,自然就进到isr里面了。 看你的现象,一定是93号向量没有没有挂到你的驱动上,如果你的驱动能正常工作的话,肯定是你找错中断向量了,在idt里好好找找 |
|
5楼#
发布于:2004-01-02 20:33
谢谢各位了
在大家的帮助下上面的问题解决了 |
|