阅读:1787回复:7
关于PCI中断丢失
我为自行开发的PCI卡写了一个NT下的驱动,在测试中断的时候发现有中断丢失的情况,(因数据是每个中断规律性变化的),硬件的中断信号没有问题,不知为何系统有时会不响应中断。
我担心是中断共享的问题,因此在连接中断时不允许共享中断,并且没有其他硬件使用同一中断号时也有中断丢失。哪位大虾能帮我分析分析? Give me a clue... |
|
|
沙发#
发布于:2002-03-04 10:14
怎么没人理我??
补充一下,IoConnectInterrupt函数中有一个参数可指明是否允许中断共享,但若是我的PCI卡和其他设备使用同一中断号,我在连接中断时不允许中断共享,但连接成功了。这是为什么?这个参数没起什么作用呀。 |
|
|
板凳#
发布于:2002-06-19 08:33
没有人回答,可我还是想继续问下去。
我现在做的是pci9054的驱动,9054的操作寄存器有一位表示是否产生中断,我在isr中读该位的值,如果该位不为1,我认为不是我的硬件产生的中断,isr直接返回FALSE。结果出现了一些有趣的现象。 1>如果中断电平信号的长度在几个微秒到十个微秒之间,isr判断每个中断都为假,即寄存器的值不为1。假中断个数小于发出中断的总个数。 2>如果中断电平信号的长度在10微秒左右,isr判断大部分中断为真,只有少数为假。真中断与假中断的总数小于发出中断的总个数。 3>如果在10个微秒以上,isr除了收到真的中断之外,还收到大量的假中断。真中断的个数小于发出中断的总个数。 另外,上述现象与中断频率也有关系。发出中断频率越快,假中断越多。 大家在写驱动时都会碰到中断的问题,不知你们碰到过这种现象没有?如何解决? |
|
|
地板#
发布于:2002-06-19 09:20
真是怪现象。
如果寄存器操作正确的话,我想应该是硬件问题。 |
|
|
地下室#
发布于:2002-06-19 09:25
看看硬件是否正常?
|
|
5楼#
发布于:2002-06-19 11:33
看看是不是中断的方式设置问题:是电平还是触发。
|
|
6楼#
发布于:2002-06-19 20:45
硬件应该没有问题。9054只能用电平。
IoConnectInterrupt中不允许共享中断,但明明有其他设备在使用该中断,为什么该函数返回成功了呢?它起什么作用? |
|
|
7楼#
发布于:2002-06-20 09:57
出现了这种现象,当然是硬件的的问题啦。
你要外加中断撤销电路,也就是一个D触发器 将电平触发,改为边沿触发,就没有这些问题了 |
|