阅读:2116回复:1
PCI9656驱动DMA传输问题
PCI9656驱动DMA传输问题
PCI9656驱动DMA传输问题无法接收中断,问题描述大概如下: 使用PLXMon或者DriverWizard工具可以查询到PCI9656板卡的存在,读取BAR0空间中的偏移量分别对应相关的寄存器,如: MDAMODE0(0x80),DMASIZ0(0x8c),CSR0(0xa8)等等,当使用PLXDMAsgltransfer()函数后,检查DMAMODE0(0x80)为0x20e43,DMASIZ0(0x8C)为0,CSR0(0XA8)为0x01,即DMA未结束,同时读取DMADPR0(0x90)为0x160a011,INTCSR(0x68):0xf050180,也无中断发生(INTA#),即导致后面使用的PLXNotificationWait()函数返回值为ApiWaitTimeOut,未等到中断而结束。 希望各位支招 |
|
沙发#
发布于:2010-03-18 22:49
在调试中我用寄存器进行操作
1,DMA方式设置 0x80: 0x20e43 2,PCI地址设置 0x84:PCI物理地址 3,Local地址设置 0x88:Local端地址 4,设置传输计数寄存器 0x8c:0x1000 5,设置描述寄存器 0x90:0x0a 6,设置命令 启动或停止 0xa8 在设置完成之后,读取这几个寄存器的值是和写进去的一致, 但是问题是内存区中没有数据进来,仍然是原来分配生成时候的原始值。 就是DMA没有传输或者说没有开始,读取CSR0(0xA8)仍然是0x01而不是0x11, 即DMA没有完成,而INTA中断也没有发生,不知道还有什么需要注意的地方, 请大家讨论一下,不吝指教 谢谢 |
|