/******************************************************************************/<br />/* */<br />/* UART.H: Header file for UART */<br />/* Samsung S3C44B0X */<br />/* */<br />/******************************************************************************/<br /><br />#ifndef __UART_H<br />#define __UART_H<br /><br /><br />#define UART0_BASE 0x01D00000 // UART0 Base Address<br />#define UART1_BASE 0x01D04000 // UART1 Base Address<br /><br /><br />// UART Registers<br />typedef struct {<br /> reg32 ULCON; // UART Line Control<br /> reg32 UCON; // UART Control<br /> reg32 UFCON; // UART FIFO Control<br /> reg32 UMCON; // UART MODEM Control<br /> reg32 UTRSTAT; // UART Tx/Rx Status<br /> reg32 UERSTAT; // UART Error Status<br /> reg32 UFSTAT; // UART FIFO Status<br /> reg32 UMSTAT; // UART MODEM Status<br /> reg8 UTXH; // UART Tx Hold<br /> reg8 pad0[3];<br /> reg8 URXH; // UART RX Buffer<br /> reg8 pad1[3];<br /> reg32 UBRDIV; // UART Baud Rate Divisor<br />} regUART;<br /><br />#define pUART0 ((regUART *)UART0_BASE)<br />#define pUART1 ((regUART *)UART1_BASE)<br /><br /><br />// ULCON: UART Line Control Register<br />#define DATA_5 0x00<br />#define DATA_6 0x01<br />#define DATA_7 0x02<br />#define DATA_8 0x03<br />#define STOP_ONE 0x00<br />#define STOP_TWO 0x04<br />#define PARITY_NONE 0x00<br />#define PARITY_ODD 0x20<br />#define PARITY_EVEN 0x28<br />#define PARITY_FC1 0x30<br />#define PARITY_FC0 0x38<br />#define NORMAL_MODE 0x00<br />#define IRDA_MODE 0x40<br /><br />// UCON: UART Control Register<br />#define RXM_INTPOL 0x0001<br />#define RXM_BDMA0 0x0002 // UART0 Only<br />#define RXM_BDMA1 0x0003 // UART1 Only<br />#define TXM_INTPOL 0x0004<br />#define TXM_BDMA0 0x0008 // UART0 Only<br />#define TXM_BDMA1 0x000C // UART1 Only<br />#define SEND_BREAK_SIG 0x0010<br />#define LOOPBACK_MODE 0x0020<br />#define RXINT_ERRSTAT 0x0040<br />#define RX_TIMEOUT 0x0080<br />#define RXINTTYP_LEVEL 0x0100<br />#define TXINTTYP_LEVEL 0x0200<br /><br />// UFCON: UART FIFO Control Register<br />#define FIFO_EN 0x01<br />#define RXF_RST 0x02<br />#define TXF_RST 0x04<br />#define RXF_TRIG4B 0x00<br />#define RXF_TRIG8B 0x10<br />#define RXF_TRIG12B 0x20<br />#define RXF_TRIG16B 0x30<br />#define TXF_TRIG4B 0x40<br />#define TXF_TRIG8B 0x80<br />#define TXF_TRIG12B 0xC0<br /><br />// UMCON: UART MODEM Control Register<br />#define RTS_ACTIVE 0x01<br />#define AFC_EN 0x10<br /><br />// UTRSTAT: UART Tx/Rx Status Register<br />#define RX_BUF_READY 0x01<br />#define TX_BUF_EMPTY 0x02<br />#define TX_EMPTY 0x04<br /><br />// UERSTAT: UART Error Status Register<br />#define OVERRUN_ERR 0x01<br />#define PARITY_ERR 0x02<br />#define FRAME_ERR 0x04<br />#define BREAK 0x08<br /><br />// UFSTAT: UART FIFO Status Register<br />#define RXF_SHIFT 0<br />#define TXF_SHIFT 4<br />#define RXF_CMASK 0x000F<br />#define TXF_CMASK 0x00F0<br />#define RXF_FULL 0x0100<br />#define TXF_FULL 0x0200<br /><br />// UMSTAT: UART MODEM Status Register<br />#define CTS_ACTIVE 0x01 // CTS Pin is Low<br />#define CTS_CHANGED 0x10<br />//******************************************************************************<br />extern regUART *UART_Get(unsigned char com);<br />extern void UART_Printf(unsigned char com,char *fmt,...);<br />extern void UART_FIFO_Get_Buf(unsigned char com,unsigned char *pBuf,unsigned int Long);<br />extern void UART_FIFO_Send_Buf(unsigned char com,unsigned char *pBuf,unsigned int Long);<br />extern void UART_Send_Buf(unsigned char com,unsigned char *p,unsigned int Long);<br />extern void UART_Get_Buf(unsigned char com,unsigned char *p,unsigned int Long);<br />extern void UART_Send_Byte (unsigned char com,unsigned char Dat);<br />extern unsigned char UART_Get_Byte (unsigned char com);<br />extern void UART_Init(unsigned char com,unsigned int BPS);<br />#endif /* __UART_H */<br />
|