axidma
Xilinx SDK Drivers API Documentation
xaxidma_example_sg_poll.c File Reference

Overview

This file demonstrates how to use the xaxidma driver on the Xilinx AXI DMA core (AXIDMA) to transfer packets in polling mode when the AXIDMA core is configured in Scatter Gather Mode.

This code assumes a loopback hardware widget is connected to the AXI DMA core for data packet loopback.

To see the debug print, you need a Uart16550 or uartlite in your system, and please set "-DDEBUG" in your compiler options. You need to rebuild your software executable.

Make sure that MEMORY_BASE is defined properly as per the HW system. The h/w system built in Area mode has a maximum DDR memory limit of 64MB. In throughput mode, it is 512MB. These limits are need to ensured for proper operation of this code.

MODIFICATION HISTORY:
Ver   Who  Date     Changes
----- ---- -------- -------------------------------------------------------
1.00a jz   05/17/10 First release
2.00a jz   08/10/10 Second release, added in xaxidma_g.c, xaxidma_sinit.c,
                    updated tcl file, added xaxidma_porting_guide.h, removed
                    workaround for endianness
4.00a rkv  02/22/11 Name of the file has been changed for naming consistency
                   Added interrupt support for ARM.
5.00a srt  03/05/12 Added Flushing and Invalidation of Caches to fix CRs
                           648103, 648701.
                           Added V7 DDR Base Address to fix CR 649405.
6.00a srt  03/27/12 Changed API calls to support MCDMA driver.
7.00a srt  06/18/12 API calls are reverted back for backward compatibility.
7.01a srt  11/02/12 Buffer sizes (Tx and Rx) are modified to meet maximum
               DDR memory limit of the h/w system built with Area mode
7.02a srt  03/01/13 Updated DDR base address for IPI designs (CR 703656).
9.1   adk  01/07/16 Updated DDR base address for Ultrascale (CR 799532) and
               removed the defines for S6/V6.
9.2   vak  15/04/16 Fixed compilation warnings in th example
9.3   ms   01/23/17 Modified xil_printf statement in main function to
                    ensure that "Successfully ran" and "Failed" strings are
                    available in all examples. This is a fix for CR-965028.
9.9   rsp  01/21/19 Fix use of #elif check in deriving DDR_BASE_ADDR.
9.10  rsp  09/17/19 Fix cache maintenance ops for source and dest buffer.

Functions

int main (void)
 Main function. More...
 

Function Documentation

int main ( void  )

Main function.

This function is the main entry of the tests on DMA core. It sets up DMA engine to be ready to receive and send packets, then a packet is transmitted and will be verified after it is received via the DMA loopback widget.

Parameters
None
Returns
  • XST_SUCCESS if test passes
  • XST_FAILURE if test fails.
Note
None.

References XAxiDma_CfgInitialize(), XAxiDma_HasSg, and XAxiDma_LookupConfig().