ZYNQ. DMA基本用法

DMA环路测试

vivadoblock

zynq7 + dma +fifo

sdk 中可以导入 demo

demo 中 默认都是 一个字节8bit数据 的测试程序。

如果是其他长度的数据,不仅要修改数据长度

    u16 *TxBufferPtr;
    u16 *RxBufferPtr;
    u16 Value;

    TxBufferPtr = (u16 *)TX_BUFFER_BASE ;
    RxBufferPtr = (u16 *)RX_BUFFER_BASE;

还要注意修改下面几个函数

Xil_DCacheFlushRange((u32)TxBufferPtr, MAX_PKT_LEN*sizeof(u16));

XAxiDma_SimpleTransfer(&AxiDma,(u32) RxBufferPtr,
                    MAX_PKT_LEN*sizeof(u16), XAXIDMA_DEVICE_TO_DMA);

XAxiDma_SimpleTransfer(&AxiDma,(u32) TxBufferPtr,
                    MAX_PKT_LEN*sizeof(u16), XAXIDMA_DMA_TO_DEVICE);

Xil_DCacheInvalidateRange((u32)RxBufferPtr, MAX_PKT_LEN*sizeof(u16));

这个函数的length都是指 字节 bytes 长度

参考

http://www.cnblogs.com/moluoqishi/archive/2018/08/29/9554097.html

 //*********************  2018/10/19  *************************

https://blog.csdn.net/haoxingheng/article/details/47131373

http://www.cnblogs.com/batianhu/p/zynq_axidma_xiangjie1.html

原文地址:https://www.cnblogs.com/protogenoi/p/9584988.html