96 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /******************************************************************************
 | |
| * Copyright (C) 2002 - 2022 Xilinx, Inc.  All rights reserved.
 | |
| * SPDX-License-Identifier: MIT
 | |
| ******************************************************************************/
 | |
| 
 | |
| /****************************************************************************/
 | |
| /**
 | |
| *
 | |
| * @file xuartlite_l.c
 | |
| * @addtogroup uartlite_v3_7
 | |
| * @{
 | |
| *
 | |
| * This file contains low-level driver functions that can be used to access the
 | |
| * device.  The user should refer to the hardware device specification for more
 | |
| * details of the device operation.
 | |
| 
 | |
| * <pre>
 | |
| * MODIFICATION HISTORY:
 | |
| *
 | |
| * Ver   Who  Date     Changes
 | |
| * ----- ---- -------- -----------------------------------------------
 | |
| * 1.00b rpm  04/25/02 First release
 | |
| * 1.12a rpm  07/16/07 Fixed arg type for RecvByte
 | |
| * 2.00a ktn  10/20/09 The macros have been renamed to remove _m from the name.
 | |
| * 3.2   sk   11/10/15 Used UINTPTR instead of u32 for Baseaddress CR# 867425.
 | |
| *                     Changed the prototypes of XUartLite_SendByte,
 | |
| *                     XUartLite_RecvByte APIs.
 | |
| * </pre>
 | |
| *
 | |
| ******************************************************************************/
 | |
| 
 | |
| /***************************** Include Files *********************************/
 | |
| 
 | |
| #include "xuartlite_l.h"
 | |
| 
 | |
| /************************** Constant Definitions *****************************/
 | |
| 
 | |
| 
 | |
| /**************************** Type Definitions *******************************/
 | |
| 
 | |
| 
 | |
| /***************** Macros (Inline Functions) Definitions *********************/
 | |
| 
 | |
| 
 | |
| /************************** Function Prototypes ******************************/
 | |
| 
 | |
| 
 | |
| /************************** Variable Prototypes ******************************/
 | |
| 
 | |
| 
 | |
| /****************************************************************************/
 | |
| /**
 | |
| *
 | |
| * This functions sends a single byte using the UART. It is blocking in that it
 | |
| * waits for the transmitter to become non-full before it writes the byte to
 | |
| * the transmit register.
 | |
| *
 | |
| * @param	BaseAddress is the base address of the device
 | |
| * @param	Data is the byte of data to send
 | |
| *
 | |
| * @return	None.
 | |
| *
 | |
| * @note		None.
 | |
| *
 | |
| ******************************************************************************/
 | |
| void XUartLite_SendByte(UINTPTR BaseAddress, u8 Data)
 | |
| {
 | |
| 	while (XUartLite_IsTransmitFull(BaseAddress));
 | |
| 
 | |
| 	XUartLite_WriteReg(BaseAddress, XUL_TX_FIFO_OFFSET, Data);
 | |
| }
 | |
| 
 | |
| 
 | |
| /****************************************************************************/
 | |
| /**
 | |
| *
 | |
| * This functions receives a single byte using the UART. It is blocking in that
 | |
| * it waits for the receiver to become non-empty before it reads from the
 | |
| * receive register.
 | |
| *
 | |
| * @param	BaseAddress is the base address of the device
 | |
| *
 | |
| * @return	The byte of data received.
 | |
| *
 | |
| * @note		None.
 | |
| *
 | |
| ******************************************************************************/
 | |
| u8 XUartLite_RecvByte(UINTPTR BaseAddress)
 | |
| {
 | |
| 	while (XUartLite_IsReceiveEmpty(BaseAddress));
 | |
| 
 | |
| 	return (u8)XUartLite_ReadReg(BaseAddress, XUL_RX_FIFO_OFFSET);
 | |
| }
 | |
| 
 | |
| /** @} */
 |