阅读:1154回复:1
windriver速率问题--奇怪的问题
DWORD *my_pGetAddr=malloc(0x400000*sizeof(DWORD));
BZERO(dma); dma.pUserAddr = NULL; dma.dwBytes = 16*4096; // allocate 64K dma.dwOptions = DMA_KERNEL_BUFFER_ALLOC; // kernel contiguous buffer WD_DMALock(hWD, &dma); start=clock(); for(n=0;n<260;n++) { for(m=0;m<16384;m++) { *(my_pGetAddr+m)=*(dma.pUserAddr+m); } } end1=clock()-start; start=clock(); for(n=0;n<260;n++) { for(m=0;m<16384;m++) { *(dma.pUserAddr+m)=*(my_pGetAddr+m); } } end2=clock()-start; 在进行16M字节传输,end1用时1秒,end2用时0.2秒,为什么对WD_DMALock锁住的地址读时,速度会这么慢. [编辑 - 7/22/03 by carryxt] |
|
沙发#
发布于:2004-04-20 15:55
你好!我现在在做PCI9054的驱动,由于我对速度的要求高,所以要采用DMA 传输,但是我用我WinDriver作的,希望你能告诉我一些有关这方面的资料,尤其关于地址映射的,多谢
|
|