start
驱动小牛
驱动小牛
  • 注册日期2001-11-05
  • 最后登录2010-09-03
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
阅读:1683回复:3

PCI中断冲突,详细看代码

楼主#
更多 发布于:2005-04-22 08:48
我用C6205的PCI接口写了个中断驱动,应用层调用连续测试正常。
但是如果我同时使用网络邻居传输几个大的文件,则我的测试程序会中断。

  我分析是我的程序驱动STATUS_PENDING的时候,接收了不该接收的中断,导致我的程序测试中断。但是我在中断服务历程中已经判断了我接收的中断是不是我的,如果不是我返回FALSE.

  我的中断历程:

BOOLEAN SDevice::Isr_Irq0(void)
{

unsigned int hsr;
//read pc status
hsr = m_MemoryRange1.ind(0x27fff0);
if((hsr&0xff)==3){ //判断是不是我的中断
  hsr = 0x1;
  m_MemoryRange1.outd(0x27fff0,hsr);
  // Start DPC to handle the interrupt
  RequestDpc(CurrentIrp(), NULL);
     return TRUE;
}
      // If we reach here, then the interrupt is not ours
    return FALSE;
}











second
lee922@gmail.co
驱动牛犊
驱动牛犊
  • 注册日期2007-07-31
  • 最后登录2010-06-22
  • 粉丝0
  • 关注0
  • 积分39分
  • 威望340点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分1分
沙发#
发布于:2008-04-03 13:28
if((hsr&0xff)==3) 不能用0xff吧
start
驱动小牛
驱动小牛
  • 注册日期2001-11-05
  • 最后登录2010-09-03
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-27 14:08
我把问题说的更明白一些,不同PCI设备卡之间,由于不正当的设置会产生冲突吗?如果能,能否举个例子?
second
start
驱动小牛
驱动小牛
  • 注册日期2001-11-05
  • 最后登录2010-09-03
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-04-22 08:49
我自己先顶一下。希望大牛给我的测试bug的建议
second
游客

返回顶部