阅读:1004回复:3
PCI驱动疑问高手赐教???
1。pci接口用DMA方式是不是只能是主模式?如果可以是从模式(DMA在主板上),那怎么启动主板上的DMA.
2.我用的是DSP 6205带PCI芯片,资料上说,进行PCI主模式,只支持最大长度为64KB的突发模式。那么我的dma一帧最多只能设为64KB吗 ?? 3。我用DRIVERstudio。开发。每次调试到下面 if (pXfer->SequenceTransferDescriptors(&ptd)) 处就黑屏死机。不知道为什么?? VOID PCIDMA1Device::OnDmaReady(KDmaTransfer* pXfer, KIrp I) { if (pXfer->BytesRemaining() == 0) { pXfer->Terminate(); I.Information() = I.IoctlInputBufferSize(CURRENT); I.Status() = STATUS_SUCCESS; m_DriverManagedQueue.PnpNextIrp(I); m_CurrentTransfer = NULL; delete pXfer; return; } PTRANSFER_DESCRIPTOR ptd; if (pXfer->SequenceTransferDescriptors(&ptd)) { t << \" Physical address 0x\" << ptd->td_PhysAddr.LowPart << \". Length is 0x\"<< ptd->td_Length << \".\" << EOL; } if ((ULONG) pXfer->BytesRemaining() == I.IoctlInputBufferSize()) {StartDMA(ptd->td_PhysAddr.LowPart,ptd->td_Length);} } 以上问题希望大家指教,谢谢!!!! |
|
|
沙发#
发布于:2005-03-23 09:04
delete pXfer;对吗?,,,,
一起学习啊,,呵呵,,,我昨天也正看了这里,,, 它说传输完毕以后删除KDmaTransfer对象,,,你觉得是这么删除吗? 我感觉是你调用pXfer->Terminate();的时候就删除了吧。。。。 讨论学习中。。。。。 DS中可以用delete操作符吗?。。。。疑问。呵呵 |
|
|
板凳#
发布于:2005-03-23 15:44
呵呵,,又看了看,,是可以用delete的。。。
|
|
|
地板#
发布于:2005-03-23 21:15
不是delete的问题,还是死机。望高手解惑
!!! |
|
|