xilinx提供的初始化DMA的代码(含注释)

Posted 只是有点小怂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xilinx提供的初始化DMA的代码(含注释)相关的知识,希望对你有一定的参考价值。

// A function that wraps all AXI DMA initialization related API calls
int init_dma(XAxiDma *axiDmaPtr){
   XAxiDma_Config *CfgPtr;
   int status;
   // Get pointer to DMA configuration
   CfgPtr = XAxiDma_LookupConfig(XPAR_AXIDMA_0_DEVICE_ID);
   if(!CfgPtr){
      print("Error looking for AXI DMA config\\n\\r");
      return XST_FAILURE;
   }
   // Initialize the DMA handle
   status = XAxiDma_CfgInitialize(axiDmaPtr,CfgPtr);
   if(status != XST_SUCCESS){
      print("Error initializing DMA\\n\\r");
      return XST_FAILURE;
   }
   //check for scatter gather mode - this example must have simple mode only
   if(XAxiDma_HasSg(axiDmaPtr)){
      print("Error DMA configured in SG mode\\n\\r");
      return XST_FAILURE;
   }
   //disable the interrupts
   XAxiDma_IntrDisable(axiDmaPtr, XAXIDMA_IRQ_ALL_MASK,XAXIDMA_DEVICE_TO_DMA);
   XAxiDma_IntrDisable(axiDmaPtr, XAXIDMA_IRQ_ALL_MASK,XAXIDMA_DMA_TO_DEVICE);

   return XST_SUCCESS;
}
  • 把以下代码放在主函数进行调用即可
// Initialize the (simple) DMA engine
status = init_dma(&axiDma);
if (status != XST_SUCCESS) {
   exit(-1);
}

以上是关于xilinx提供的初始化DMA的代码(含注释)的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Linux 访问 Xilinx Axi DMA?

PCIE_DMA实例二:xapp1052的EDK仿真

pcie与DMA求助

Java代码注释

xilinx在提供的代码xfft2real.cpp和real2xfft.cpp

STM32——DMA接收和发送的实现