XilinxProcessorIPLib/drivers/llfifo/examples/xllfifo_polling_example.c
int XLlFifoPollingExample(XLlFifo *InstancePtr, u16 DeviceId)
{
	XLlFifo_Config *Config;
	int Status;
	int i;
	int Error;
	Status = XST_SUCCESS;

	/* Initial setup for Uart16550 */
#ifdef XPAR_UARTNS550_0_BASEADDR

	Uart550_Setup();

#endif

	/* Initialize the Device Configuration Interface driver */
	Config = XLlFfio_LookupConfig(DeviceId);
	if (!Config) {
		xil_printf("No config found for %d\r\n", DeviceId);
		return XST_FAILURE;
	}

	/*
	 * This is where the virtual address would be used, this example
	 * uses physical address.
	 */
	Status = XLlFifo_CfgInitialize(InstancePtr, Config, Config->BaseAddress);
	if (Status != XST_SUCCESS) {
		xil_printf("Initialization failed\n\r");
		return Status;
	}

	/* Check for the Reset value */
	Status = XLlFifo_Status(InstancePtr);
	XLlFifo_IntClear(InstancePtr,0xffffffff);
	Status = XLlFifo_Status(InstancePtr);
	if(Status != 0x0) {
		xil_printf("\n ERROR : Reset value of ISR0 : 0x%x\t"
			    "Expected : 0x0\n\r",
			    XLlFifo_Status(InstancePtr));
		return XST_FAILURE;
	}

	/* Transmit the Data Stream */
	Status = TxSend(InstancePtr, SourceBuffer);
	if (Status != XST_SUCCESS){
		xil_printf("Transmission of Data failed\n\r");
		return XST_FAILURE;
	}

	/* Receive the Data Stream */
	Status = RxReceive(InstancePtr, DestinationBuffer);
	if (Status != XST_SUCCESS){
		xil_printf("Receiving data failed");
		return XST_FAILURE;
	}

	Error = 0;

	/* Compare the data send with the data received */
	xil_printf(" Comparing data ...\n\r");
	for( i=0 ; i<MAX_DATA_BUFFER_SIZE ; i++ ){
		if ( *(SourceBuffer + i) != *(DestinationBuffer + i) ){
			Error = 1;
			break;
		}

	}

	if (Error != 0){
		return XST_FAILURE;
	}

	return Status;
}
/*****************************************************************************/
/**
*
* This function demonstrates the usage AXI FIFO
* It does the following:
*       - Set up the output terminal if UART16550 is in the hardware build
*       - Initialize the Axi FIFO Device.
*	- Transmit the data
*	- Receive the data from fifo
*	- Compare the data
*	- Return the result
*
* @param	InstancePtr is a pointer to the instance of the
*		XLlFifo component.
* @param	DeviceId is Device ID of the Axi Fifo Device instance,
*		typically XPAR_<AXI_FIFO_instance>_DEVICE_ID value from
*		xparameters.h.
*
* @return
*		-XST_SUCCESS to indicate success
*		-XST_FAILURE to indicate failure
*
******************************************************************************/
This function demonstrates the usage AXI FIFO
It does the following:
Set up the output terminal if UART16550 is in the hardware build
Initialize the Axi FIFO Device.
Transmit the data
Receive the data from fifo
Compare the data
Return the result
This function demonstrates the usage AXI FIFO It does the following : Set up the output terminal if UART16550 is in the hardware build Initialize the Axi FIFO Device . Transmit the data Receive the data from fifo Compare the data Return the result
int XLlFifoPollingExample(XLlFifo *InstancePtr, u16 DeviceId)
{
	XLlFifo_Config *Config;
	int Status;
	int i;
	int Error;
	Status = XST_SUCCESS;
#ifdef XPAR_UARTNS550_0_BASEADDR
	Uart550_Setup();
#endif
	Config = XLlFfio_LookupConfig(DeviceId);
	if (!Config) {
		xil_printf("No config found for %d\r\n", DeviceId);
		return XST_FAILURE;
	}
	Status = XLlFifo_CfgInitialize(InstancePtr, Config, Config->BaseAddress);
	if (Status != XST_SUCCESS) {
		xil_printf("Initialization failed\n\r");
		return Status;
	}
	Status = XLlFifo_Status(InstancePtr);
	XLlFifo_IntClear(InstancePtr,0xffffffff);
	Status = XLlFifo_Status(InstancePtr);
	if(Status != 0x0) {
		xil_printf("\n ERROR : Reset value of ISR0 : 0x%x\t"
			    "Expected : 0x0\n\r",
			    XLlFifo_Status(InstancePtr));
		return XST_FAILURE;
	}
	Status = TxSend(InstancePtr, SourceBuffer);
	if (Status != XST_SUCCESS){
		xil_printf("Transmission of Data failed\n\r");
		return XST_FAILURE;
	}
	Status = RxReceive(InstancePtr, DestinationBuffer);
	if (Status != XST_SUCCESS){
		xil_printf("Receiving data failed");
		return XST_FAILURE;
	}
	Error = 0;
	xil_printf(" Comparing data ...\n\r");
	for( i=0 ; i<MAX_DATA_BUFFER_SIZE ; i++ ){
		if ( *(SourceBuffer + i) != *(DestinationBuffer + i) ){
			Error = 1;
			break;
		}
	}
	if (Error != 0){
		return XST_FAILURE;
	}
	return Status;
}
int XLlFifoPollingExample ( XLlFifo * InstancePtr , u16 DeviceId ) { XLlFifo_Config * Config ; int Status ; int i ; int Error ; Status = XST_SUCCESS ; #ifdef XPAR_UARTNS550_0_BASEADDR Uart550_Setup ( ) ; #endif Config = XLlFfio_LookupConfig ( DeviceId ) ; if ( ! Config ) { xil_printf ( " \r \n " , DeviceId ) ; return XST_FAILURE ; } Status = XLlFifo_CfgInitialize ( InstancePtr , Config , Config -> BaseAddress ) ; if ( Status != XST_SUCCESS ) { xil_printf ( " \n \r " ) ; return Status ; } Status = XLlFifo_Status ( InstancePtr ) ; XLlFifo_IntClear ( InstancePtr , 0xffffffff ) ; Status = XLlFifo_Status ( InstancePtr ) ; if ( Status != 0x0 ) { xil_printf ( " \n \t " " \n \r " , XLlFifo_Status ( InstancePtr ) ) ; return XST_FAILURE ; } Status = TxSend ( InstancePtr , SourceBuffer ) ; if ( Status != XST_SUCCESS ) { xil_printf ( " \n \r " ) ; return XST_FAILURE ; } Status = RxReceive ( InstancePtr , DestinationBuffer ) ; if ( Status != XST_SUCCESS ) { xil_printf ( " " ) ; return XST_FAILURE ; } Error = 0 ; xil_printf ( " \n \r " ) ; for ( i = 0 ; i < MAX_DATA_BUFFER_SIZE ; i ++ ) { if ( * ( SourceBuffer + i ) != * ( DestinationBuffer + i ) ) { Error = 1 ; break ; } } if ( Error != 0 ) { return XST_FAILURE ; } return Status ; }
This function demonstrates the usage AXI FIFO
It does the following:
 Set up the output terminal if UART16550 is in the hardware build
 Initialize the Axi FIFO Device.
This function demonstrates the usage AXI FIFO It does the following : Set up the output terminal if UART16550 is in the hardware build Initialize the Axi FIFO Device .
/* Initial setup for Uart16550 */ /* Initialize the Device Configuration Interface driver */ /*
	 * This is where the virtual address would be used, this example
	 * uses physical address.
	 */ /* Check for the Reset value */ /* Transmit the Data Stream */ /* Receive the Data Stream */ /* Compare the data send with the data received */