阅读:1241回复:2
如何写WDM的中断处理程序?
我正在写一个有关PLX9054开发扳的wdm驱动。主要通过吧bar[2]映射的内存空间传递命令和应答。当目标板完成写后,通过向主机端发送一个中断通知。但是我写的中断处理程序经常导致死机。可能是因为本人没有进行清中断操作,导致目标板不停发送中断。
哪位高手指点一下,在W2K操作系统的WDM驱动程序中进行清中断的指令是什么? :( |
|
沙发#
发布于:2001-12-26 09:19
前几天我遇到类似的问题,后来我用softice跟踪了一下,问题解决了。
我的硬件的中断开始以后,系统马上就死机,我的中断处理程序甚至 只是return false而已,也死机。 后来发现中断处理程序中,函数传来的第2个参数有可能为NULL: bool Isr(IN PKINTERRUPT pIntObj,PDEVICE_EXTENSION dx) { ULONG Data32; UCHAR Data8; if(dx==NULL){ return false; } //Read Register status READ_REGISTER_ULONG(); ... } 上段程序中,我发现传进来的dx可能是空的,加上判断 if(dx==NULL)return false; 以后,系统没有在死机了。 此外,中断是一定要清的,但是怎么清完全有你的芯片决定的 我的是向某个寄存器写一个值, 如果你不清中断,通常第一个中断来了以后,第二个就不会来了 。 |
|
板凳#
发布于:2001-12-27 11:17
多谢。
|
|