阅读:925回复:2
向大侠们请教两个问题
1.我开发的这个驱动当底层硬件产生中断时只需要把这个中断传到上层就可以了,请问大侠们在我这个ISR和DPC中都需要做些什么工作?还需要做同步、阻塞线程之类的事情吗?
2.在对硬件的读写操作中,如果在读写分发例程直接对硬件读写操作,那么在应用层如何与底层通信? 问题比较弱,但确实是比较糊度,请大侠们赐教。如果能有用DS开发的代码,就更好了。 3x! |
|
沙发#
发布于:2003-03-21 19:26
1、 A: ISR中判断是否是你的卡发出的中断(读中断标志位),如果不是就返回FALSE,是就清中断, B: DPC中读数据 多数情况下这样做就可以了。当然,你也可以在ISR中读写数据,但是一定要在ISR中一开始就清中断,不然系统会不停调用你的ISR,也就是陷入了死循环。 C: 同步一般在用户层做 2、 应用层和内核层通信,可以用iocontrol读写寄存器。不过你的程序用到了中断,最好用readfile、writefile,在内核里面排个队。 具体函数查ddk和msdn吧,一步步来,呵呵 |
|
|
板凳#
发布于:2003-03-21 20:51
用户被禁言,该主题自动屏蔽! |
|