?? uart.h
字號:
#ifndef _uart_h
#define _uart_h
/*
*******************************************************************************
* CONSTANTS
*******************************************************************************
*/
#define UART0REG_BASE 0x01D00000
#define UART1REG_BASE 0x01D04000
/*
*******************************************************************************
* DATA TYPES
*******************************************************************************
*/
typedef struct UartRegsS
{
VUINT ULCON; //0x00, UART LINE CONTROL
VUINT UCON; //0x04, UART CONTROL
VUINT UFCON; //0x08, FIFO CONTROL
VUINT UMCON; //0x0c, MODEM CONTROL
VUINT UTRSTAT; //0x10, UART TX/RX STATUS
VUINT UERSTAT; //0x14, ERROR STATUS
VUINT UFSTAT; //0x18, FIFO STATUS
VUINT UMSTAT; //0x1c, MODEM STATUS
#ifdef __BIG_ENDIAN
VUCHAR RESERVED1[3];
VUCHAR UTXH; //0x23
VUCHAR RESERVED2[3];
VUCHAR URXH; //0x27
#else
VUCHAR UTXH; //0x20, TRANSMIT HOLDING(BUFFER) & FIFO REGISTER
VUCHAR RESERVED1[3];
VUCHAR URXH; //0x24, RECEIVE HOLDING(BUFFER) & FIFO REGISTER
VUCHAR RESERVED2[3];
#endif
VUINT UBRDIV; //0x28, UART BAUD RATE DIVISION
} UartRegsT;
typedef struct UartCfgS
{
UINT rate; // used to configure the baud rate generator
} UartCfgT;
// UART Interface
typedef UINT32 (*UartSetupT) (void *ctxP, UartCfgT *cfgP);
typedef void (*UartWriteT) (void *ctxP, CHAR *buf, INT len);
typedef INT (*UartReadT) (void *ctxP, CHAR *ch);
typedef INT (*UartCheckT) (void *ctxP, CHAR *ch);
typedef INT (*UartClearRxT) (void *ctxP);
// UART Context Structure
typedef struct UartContextS
{
PVOID regsP; // Pointer to UART's register base
UartSetupT setupUartFnP; // Pointer to UART's hardware setup function
UartWriteT writeUartFnP; // Pointer to UART's write function
UartReadT readUartFnP; // Pointer to UART's read function
UartCheckT checkUartFnP; // Pointer to UART's check function
UartClearRxT clearRxUartFnP; // Pointer to UART's clear Rx. FIFO function
} UartContextT;
/*
*******************************************************************************
* GLOBAL VARIABLES
*******************************************************************************
*/
extern UartContextT Uart0, Uart1;
/*
*******************************************************************************
* FUNCTION PROTOTYPES
*******************************************************************************
*/
void UartSWInit (void);
#endif /* _uart_h */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -