阅读:1692回复:15
art baker [Window2000 Dirver]书中第八章的中断程序,有人调通过么?
我按照书中讲的方法去连接并口线, 自制了一个LoopBack Connector但是在调试第八章的的程序时,就是产生不了中断,有人调通过么?
想请教一下. |
|
沙发#
发布于:2005-05-13 11:37
可以的 !! 楼上的兄弟, 我对你所说的 \"放开便可中断\"不太理解, 是先接地,在调试程序的过程中 在把这根线剪断么? 那也太土了点 如果我想把这个程序调试通过, 具体该怎么做呢? 我是这么做的: 1.先按照书上把并口线接好 2.安装第8章的驱动 3.执行user mode的程序 4.等待中断的产生, 可是中断并不产生, 程序就这样挂了 真的被中断了:) |
|
板凳#
发布于:2005-05-13 13:55
[quote] 在调试程序的过程中 在把这根线剪断么? 它是要一正何脉冲,故先接地後放开,我是串一开关在线上的,把根线剪断也可 !! 但这真的太土了,下一次又要接上去. 另外你的user mode的程序可能没产生中断,也要看你的设备管理器有没有用这中断,当初我没注意这点 !!! [/quote] 我按照你的方法还是没有产生中断,在设备管理器中我已经看到了并口有个7号中断, 你的方法和书上说的不太一样,书上是把pin10 和 pin16连接在一起, 你能把你的调试步骤描述的详细些么? |
|
地板#
发布于:2005-05-13 17:00
To KMK:
谢谢KMK,我用你的方法确实产生了中断,我想问一下你在哪里找到中断的依据的?[先将pin10 接地然后断开] To bmyyyud: \"也可以用SoftIce,用IDT指令看看\" 能描述一下使用这个IDT指令的过程么? |
|
地下室#
发布于:2005-05-13 18:30
To KMK:
为什么会出现这种情况: 有时候调用三次Isr函数 再调用一次Dpc函数, 有时候调用两次Isr函数 再调用一次Dpc函数, 有时候调用一次Isr函数 再调用一次Dpc函数? 就这个程序而言,我觉得Isr 和 Dpc的关系应该是1:1的才对啊? 这说明了什么问题呢? 我跟踪了一下IoRequestDpc这个宏只有在第一次的时候返回一个TRUE,其余时候都是FALSE, 直到DPC处理完毕,下一个中断来临! BOOLEAN InterruptIsr(IN PKINTERRUPT Interrupt, IN OUT PVOID Context) { PDEVICE_OBJECT DeviceObject = Context; KdPrint( (\"Interrupt.sys: Interrupt Service Routine\\n\") ); /* We should check if the interrupt comes from us and return */ IoRequestDpc(DeviceObject, DeviceObject->CurrentIrp, NULL); return TRUE; } |
|
5楼#
发布于:2005-05-16 09:49
To 楼上的大侠们:
像这样一个中断来了,ISR会被调用好多次的道理是什么呢? 怎么才能从软件和硬件上避免呢? 硬件是不是如qfzcx所说, \"并个小电容\"就可以了, 不太理解其原理,谁能解说一下? |
|