ymvv
驱动牛犊
驱动牛犊
  • 注册日期2001-11-30
  • 最后登录2005-05-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1787回复:7

关于PCI中断丢失

楼主#
更多 发布于:2002-03-01 17:21
我为自行开发的PCI卡写了一个NT下的驱动,在测试中断的时候发现有中断丢失的情况,(因数据是每个中断规律性变化的),硬件的中断信号没有问题,不知为何系统有时会不响应中断。

我担心是中断共享的问题,因此在连接中断时不允许共享中断,并且没有其他硬件使用同一中断号时也有中断丢失。哪位大虾能帮我分析分析?

Give me a clue...
没有你,我不知道怎么办...
ymvv
驱动牛犊
驱动牛犊
  • 注册日期2001-11-30
  • 最后登录2005-05-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-03-04 10:14
怎么没人理我??

补充一下,IoConnectInterrupt函数中有一个参数可指明是否允许中断共享,但若是我的PCI卡和其他设备使用同一中断号,我在连接中断时不允许中断共享,但连接成功了。这是为什么?这个参数没起什么作用呀。
没有你,我不知道怎么办...
ymvv
驱动牛犊
驱动牛犊
  • 注册日期2001-11-30
  • 最后登录2005-05-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-06-19 08:33
没有人回答,可我还是想继续问下去。

我现在做的是pci9054的驱动,9054的操作寄存器有一位表示是否产生中断,我在isr中读该位的值,如果该位不为1,我认为不是我的硬件产生的中断,isr直接返回FALSE。结果出现了一些有趣的现象。

1>如果中断电平信号的长度在几个微秒到十个微秒之间,isr判断每个中断都为假,即寄存器的值不为1。假中断个数小于发出中断的总个数。

2>如果中断电平信号的长度在10微秒左右,isr判断大部分中断为真,只有少数为假。真中断与假中断的总数小于发出中断的总个数。

3>如果在10个微秒以上,isr除了收到真的中断之外,还收到大量的假中断。真中断的个数小于发出中断的总个数。

另外,上述现象与中断频率也有关系。发出中断频率越快,假中断越多。

大家在写驱动时都会碰到中断的问题,不知你们碰到过这种现象没有?如何解决?
没有你,我不知道怎么办...
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-06-19 09:20
真是怪现象。
如果寄存器操作正确的话,我想应该是硬件问题。
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2002-06-19 09:25
看看硬件是否正常?
llshi
驱动老牛
驱动老牛
  • 注册日期2001-05-05
  • 最后登录2016-01-16
  • 粉丝0
  • 关注0
  • 积分5300分
  • 威望26500点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-06-19 11:33
看看是不是中断的方式设置问题:是电平还是触发。
ymvv
驱动牛犊
驱动牛犊
  • 注册日期2001-11-30
  • 最后登录2005-05-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-06-19 20:45
硬件应该没有问题。9054只能用电平。

IoConnectInterrupt中不允许共享中断,但明明有其他设备在使用该中断,为什么该函数返回成功了呢?它起什么作用?
没有你,我不知道怎么办...
ppl
ppl
驱动小牛
驱动小牛
  • 注册日期2001-06-13
  • 最后登录2006-05-21
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-06-20 09:57
出现了这种现象,当然是硬件的的问题啦。
你要外加中断撤销电路,也就是一个D触发器
将电平触发,改为边沿触发,就没有这些问题了
游客

返回顶部