zw111
驱动牛犊
驱动牛犊
  • 注册日期2002-07-30
  • 最后登录2002-07-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:662回复:0

关于5933 pci卡的驱动中断问题,急!!!

楼主#
更多 发布于:2002-07-30 18:23
  我给一个amcc 5933的pci卡,用windriver 5.05做驱动。该卡用总线主控方式工作。但总是不能截获中断,可中断线程可以正常启动,向相关地址写入参数后,dma可以正确收到传输的数据,是我的代码有错误吗?请各位大虾指点.有关中断的代码如下:
for(int i=0;i<pciCardInfo.Card.dwItems;i++)
{
   if(pciCardInfo.Card.Item.item==ITEM_INTERRUPT)
   {    
     pciCardInfo.Card.Item.fNotSharable = FALSE;
   }
}
  

BZERO(cardReg);
cardReg.Card=pciCardInfo.Card;
cardReg.fCheckLockOnly = FALSE;  
WD_CardRegister(hWD, &cardReg);



BZERO (Intrp);

for(i=0;i<pciCardInfo.Card.dwItems;i++)
{

  if(pciCardInfo.Card.Item.item==ITEM_INTERRUPT)
  {
    Intrp.hInterrupt=cardReg.Card.Item.I.Int.hInterrupt;
    break;
  }
}

  

WD_TRANSFER Trans[1];

BZERO(Trans[0]);
Trans[0].cmdTrans = WP_DWORD;
Trans[0].dwPort = lPciBaseAddress[0]+0x38;//通道0+0x38
Trans[0].Data.Dword = 0x8c0000;
Intrp.dwCmds = 1;
Intrp.Cmd = Trans;
Intrp.dwOptions |= INTERRUPT_CMD_COPY;
  
pdata = &Intrp;
if (!InterruptThreadEnabl(&thread_handle,hWD,&Intrp,        interrupt_handler, pdata))
{
        AfxMessageBox(\"failed enabling interrupt\\n\");
return;
}
游客

返回顶部