阅读:662回复:0
关于5933 pci卡的驱动中断问题,急!!!
我给一个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; } |
|