我用一个dma操作,把片上ram内的数据,传到PIO上,但运行到dma_done函数时,程序跑飞。哪位指点一下。
if ((tx=alt_dma_txchan_open("/dev/dma_0"))==NULL){ dma_flag=0; }
else{ alt_dma_txchan_ioctl(tx,ALT_DMA_SET_MODE_32,NULL); alt_dma_txchan_ioctl(tx,ALT_DMA_TX_ONLY_ON,(void*)PIO_0_BASE);
if(alt_dma_txchan_send(tx,(void*)ONCHIP_MEMORY_0_BASE,0x10,dma_done,NULL)<0){ dma_flag=1; } } while (!dma_complete);
void dma_done(void* handle) { dma_complete = 1; } |