阅读:1346回复:1
DMA 传输
OnDmaReady中主要代码:
PTRANSFER_DESCRIPTOR ptd; while (pXfer->SequenceTransferDescriptors(&ptd)) { t << " Physical address 0x" << ptd->td_PhysAddr.LowPart << ". Length is 0x" << ptd->td_Length << "." << EOL; } if ((ULONG) pXfer->BytesRemaining() == TSize) StartDMA(ptd->td_PhysAddr.LowPart,ptd->td_Length); m_CurrentTransfer=new(NonPagedPool)KDmaTransfer(this,&m_Dma); if(m_CurrentTransfer==NULL) { status=STATUS_INSUFFICIENT_RESOURCES; t<<"unable to allocate transfer object:"<<status<<EOL; I.Information()=0; I.Status()=status; PnpNextIrp(I); } Serial_PCI9054_IOCTL_800_DMARead_Handler主要代码: status=m_CurrentTransfer->Initiate(this,&m_Dma,I.Mdl(), FromDeviceToMemory, LinkTo(OnDmaReady),&m_Buffer ); 现在的问题是:用signaltp检测到局部总线上数据正常,等到应用程序收到数据后不正常。 50462976 117835012 185207048 118361356 319951120 521540884 454695192 387849500 589439264 791029028 724183336 657337644 858927408 收到的数据如上,尽是些这东西,而本来想要传输的数据是1,2,3,4,......... 这是什么情况?还请高手解答,本人QQ:6796682,做图像采集卡,交流一下 |
|
沙发#
发布于:2008-07-28 18:26
检查一下接收时的数据类型
你的这个好像时乱码 |
|