]> git.sur5r.net Git - freertos/blob - Demo/CORTEX_LM3S102_GCC/hw_include/hw_uart.h
Start to re-arrange files to include FreeRTOS+ in main download.
[freertos] / Demo / CORTEX_LM3S102_GCC / hw_include / hw_uart.h
1 //*****************************************************************************\r
2 //\r
3 // hw_uart.h - Macros and defines used when accessing the UART hardware\r
4 //\r
5 // Copyright (c) 2005,2006 Luminary Micro, Inc.  All rights reserved.\r
6 //\r
7 // Software License Agreement\r
8 //\r
9 // Luminary Micro, Inc. (LMI) is supplying this software for use solely and\r
10 // exclusively on LMI's Stellaris Family of microcontroller products.\r
11 //\r
12 // The software is owned by LMI and/or its suppliers, and is protected under\r
13 // applicable copyright laws.  All rights are reserved.  Any use in violation\r
14 // of the foregoing restrictions may subject the user to criminal sanctions\r
15 // under applicable laws, as well as to civil liability for the breach of the\r
16 // terms and conditions of this license.\r
17 //\r
18 // THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED\r
19 // OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF\r
20 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.\r
21 // LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR\r
22 // CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.\r
23 //\r
24 // This is part of revision 523 of the Stellaris Driver Library.\r
25 //\r
26 //*****************************************************************************\r
27 \r
28 #ifndef __HW_UART_H__\r
29 #define __HW_UART_H__\r
30 \r
31 //*****************************************************************************\r
32 //\r
33 // UART Register Offsets.\r
34 //\r
35 //*****************************************************************************\r
36 #define UART_O_DR               0x00000000  // Data Register\r
37 #define UART_O_RSR              0x00000004  // Receive Status Register (read)\r
38 #define UART_O_ECR              0x00000004  // Error Clear Register (write)\r
39 #define UART_O_FR               0x00000018  // Flag Register (read only)\r
40 #define UART_O_IBRD             0x00000024  // Integer Baud Rate Divisor Reg\r
41 #define UART_O_FBRD             0x00000028  // Fractional Baud Rate Divisor Reg\r
42 #define UART_O_LCR_H            0x0000002C  // Line Control Register, HIGH byte\r
43 #define UART_O_CTL              0x00000030  // Control Register\r
44 #define UART_O_IFLS             0x00000034  // Interrupt FIFO Level Select Reg\r
45 #define UART_O_IM               0x00000038  // Interrupt Mask Set/Clear Reg\r
46 #define UART_O_RIS              0x0000003C  // Raw Interrupt Status Register\r
47 #define UART_O_MIS              0x00000040  // Masked Interrupt Status Register\r
48 #define UART_O_ICR              0x00000044  // Interrupt Clear Register\r
49 \r
50 //*****************************************************************************\r
51 //\r
52 // Data Register bits\r
53 //\r
54 //*****************************************************************************\r
55 #define UART_DR_OE              0x00000800  // Overrun Error\r
56 #define UART_DR_BE              0x00000400  // Break Error\r
57 #define UART_DR_PE              0x00000200  // Parity Error\r
58 #define UART_DR_FE              0x00000100  // Framing Error\r
59 \r
60 //*****************************************************************************\r
61 //\r
62 // Receive Status Register bits\r
63 //\r
64 //*****************************************************************************\r
65 #define UART_RSR_OE             0x00000008  // Overrun Error\r
66 #define UART_RSR_BE             0x00000004  // Break Error\r
67 #define UART_RSR_PE             0x00000002  // Parity Error\r
68 #define UART_RSR_FE             0x00000001  // Framing Error\r
69 \r
70 //*****************************************************************************\r
71 //\r
72 // Flag Register bits\r
73 //\r
74 //*****************************************************************************\r
75 #define UART_FR_RI              0x100       // Ring Indicator\r
76 #define UART_FR_TXFE            0x080       // TX FIFO Empty\r
77 #define UART_FR_RXFF            0x040       // RX FIFO Full\r
78 #define UART_FR_TXFF            0x020       // TX FIFO Full\r
79 #define UART_FR_RXFE            0x010       // RX FIFO Empty\r
80 #define UART_FR_BUSY            0x008       // UART Busy\r
81 \r
82 //*****************************************************************************\r
83 //\r
84 // Line Control Register High bits\r
85 //\r
86 //*****************************************************************************\r
87 #define UART_LCR_H_SPS          0x80        // Stick Parity Select\r
88 #define UART_LCR_H_WLEN         0x60        // Word length\r
89 #define UART_LCR_H_WLEN_8       0x60        // 8 bit data\r
90 #define UART_LCR_H_WLEN_7       0x40        // 7 bit data\r
91 #define UART_LCR_H_WLEN_6       0x20        // 6 bit data\r
92 #define UART_LCR_H_WLEN_5       0x00        // 5 bit data\r
93 #define UART_LCR_H_FEN          0x10        // Enable FIFO\r
94 #define UART_LCR_H_STP2         0x08        // Two Stop Bits Select\r
95 #define UART_LCR_H_EPS          0x04        // Even Parity Select\r
96 #define UART_LCR_H_PEN          0x02        // Parity Enable\r
97 #define UART_LCR_H_BRK          0x01        // Send Break\r
98 \r
99 //*****************************************************************************\r
100 //\r
101 // Control Register bits\r
102 //\r
103 //*****************************************************************************\r
104 #define UART_CTL_CTSEN          0x8000      // CTS Hardware Flow Control\r
105 #define UART_CTL_RTSEN          0x4000      // RTS Hardware Flow Control\r
106 #define UART_CTL_OUT2           0x2000      // OUT2\r
107 #define UART_CTL_OUT1           0x1000      // OUT1\r
108 #define UART_CTL_RTS            0x0800      // Request To Send\r
109 #define UART_CTL_DTR            0x0400      // Data Terminal Ready\r
110 #define UART_CTL_RXE            0x0200      // Receive Enable\r
111 #define UART_CTL_TXE            0x0100      // Transmit Enable\r
112 #define UART_CTL_LBE            0x0080      // Loopback Enable\r
113 #define UART_CTL_IIRLP          0x0004      // IrDA SIR low power mode\r
114 #define UART_CTL_SIREN          0x0002      // SIR Enable\r
115 #define UART_CTL_UARTEN         0x0001      // UART Enable\r
116 \r
117 //*****************************************************************************\r
118 //\r
119 // Interrupt FIFO Level Select Register bits\r
120 //\r
121 //*****************************************************************************\r
122 #define UART_IFLS_RX1_8         0x00        // 1/8 Full\r
123 #define UART_IFLS_RX2_8         0x10        // 1/4 Full\r
124 #define UART_IFLS_RX4_8         0x20        // 1/2 Full\r
125 #define UART_IFLS_RX6_8         0x30        // 3/4 Full\r
126 #define UART_IFLS_RX7_8         0x40        // 7/8 Full\r
127 #define UART_IFLS_TX1_8         0x00        // 1/8 Full\r
128 #define UART_IFLS_TX2_8         0x01        // 1/4 Full\r
129 #define UART_IFLS_TX4_8         0x02        // 1/2 Full\r
130 #define UART_IFLS_TX6_8         0x03        // 3/4 Full\r
131 #define UART_IFLS_TX7_8         0x04        // 7/8 Full\r
132 \r
133 //*****************************************************************************\r
134 //\r
135 // Interrupt Mask Set/Clear Register bits\r
136 //\r
137 //*****************************************************************************\r
138 #define UART_IM_OEIM            0x400       // Overrun Error Interrupt Mask\r
139 #define UART_IM_BEIM            0x200       // Break Error Interrupt Mask\r
140 #define UART_IM_PEIM            0x100       // Parity Error Interrupt Mask\r
141 #define UART_IM_FEIM            0x080       // Framing Error Interrupt Mask\r
142 #define UART_IM_RTIM            0x040       // Receive Timeout Interrupt Mask\r
143 #define UART_IM_TXIM            0x020       // Transmit Interrupt Mask\r
144 #define UART_IM_RXIM            0x010       // Receive Interrupt Mask\r
145 #define UART_IM_DSRMIM          0x008       // DSR Interrupt Mask\r
146 #define UART_IM_DCDMIM          0x004       // DCD Interrupt Mask\r
147 #define UART_IM_CTSMIM          0x002       // CTS Interrupt Mask\r
148 #define UART_IM_RIMIM           0x001       // RI Interrupt Mask\r
149 \r
150 //*****************************************************************************\r
151 //\r
152 // Raw Interrupt Status Register\r
153 //\r
154 //*****************************************************************************\r
155 #define UART_RIS_OERIS          0x400       // Overrun Error Interrupt Status\r
156 #define UART_RIS_BERIS          0x200       // Break Error Interrupt Status\r
157 #define UART_RIS_PERIS          0x100       // Parity Error Interrupt Status\r
158 #define UART_RIS_FERIS          0x080       // Framing Error Interrupt Status\r
159 #define UART_RIS_RTRIS          0x040       // Receive Timeout Interrupt Status\r
160 #define UART_RIS_TXRIS          0x020       // Transmit Interrupt Status\r
161 #define UART_RIS_RXRIS          0x010       // Receive Interrupt Status\r
162 #define UART_RIS_DSRRMIS        0x008       // DSR Interrupt Status\r
163 #define UART_RIS_DCDRMIS        0x004       // DCD Interrupt Status\r
164 #define UART_RIS_CTSRMIS        0x002       // CTS Interrupt Status\r
165 #define UART_RIS_RIRMIS         0x001       // RI Interrupt Status\r
166 \r
167 //*****************************************************************************\r
168 //\r
169 // Masked Interrupt Status Register\r
170 //\r
171 //*****************************************************************************\r
172 #define UART_MIS_OEMIS          0x400       // Overrun Error Interrupt Status\r
173 #define UART_MIS_BEMIS          0x200       // Break Error Interrupt Status\r
174 #define UART_MIS_PEMIS          0x100       // Parity Error Interrupt Status\r
175 #define UART_MIS_FEMIS          0x080       // Framing Error Interrupt Status\r
176 #define UART_MIS_RTMIS          0x040       // Receive Timeout Interrupt Status\r
177 #define UART_MIS_TXMIS          0x020       // Transmit Interrupt Status\r
178 #define UART_MIS_RXMIS          0x010       // Receive Interrupt Status\r
179 #define UART_MIS_DSRMMIS        0x008       // DSR Interrupt Status\r
180 #define UART_MIS_DCDMMIS        0x004       // DCD Interrupt Status\r
181 #define UART_MIS_CTSMMIS        0x002       // CTS Interrupt Status\r
182 #define UART_MIS_RIMMIS         0x001       // RI Interrupt Status\r
183 \r
184 //*****************************************************************************\r
185 //\r
186 // Interrupt Clear Register bits\r
187 //\r
188 //*****************************************************************************\r
189 #define UART_ICR_OEIC           0x200       // Overrun Error Interrupt Clear\r
190 #define UART_ICR_BEIC           0x200       // Break Error Interrupt Clear\r
191 #define UART_ICR_PEIC           0x200       // Parity Error Interrupt Clear\r
192 #define UART_ICR_FEIC           0x200       // Framing Error Interrupt Clear\r
193 #define UART_ICR_RTIC           0x200       // Receive Timeout Interrupt Clear\r
194 #define UART_ICR_TXIC           0x200       // Transmit Interrupt Clear\r
195 #define UART_ICR_RXIC           0x200       // Receive Interrupt Clear\r
196 #define UART_ICR_DSRMIC         0x200       // DSR Interrupt Clear\r
197 #define UART_ICR_DCDMIC         0x200       // DCD Interrupt Clear\r
198 #define UART_ICR_CTSMIC         0x200       // CTS Interrupt Clear\r
199 #define UART_ICR_RIMIC          0x200       // RI Interrupt Clear\r
200 \r
201 //*****************************************************************************\r
202 //\r
203 // DMA Control Register bits\r
204 //\r
205 //*****************************************************************************\r
206 #define UART_DMACRDMAONERR      0x04        // Disable DMA On Error\r
207 #define UART_DMACRTXDMAE        0x02        // Enable Transmit DMA\r
208 #define UART_DMACRRXDMAE        0x01        // Enable Receive DMA\r
209 \r
210 #define UART_RSR_ANY            (UART_RSR_OE |                                \\r
211                                  UART_RSR_BE |                                \\r
212                                  UART_RSR_PE |                                \\r
213                                  UART_RSR_FE)\r
214 \r
215 //*****************************************************************************\r
216 //\r
217 // Reset Values for UART Registers.\r
218 //\r
219 //*****************************************************************************\r
220 #define UART_RV_DR              0\r
221 #define UART_RV_RSR             0x0\r
222 #define UART_RV_ECR             0\r
223 #define UART_RV_FR              0x90\r
224 #define UART_RV_IBRD            0x0000\r
225 #define UART_RV_FBRD            0x00\r
226 #define UART_RV_LCR_H           0x00\r
227 #define UART_RV_CTL             0x0300\r
228 #define UART_RV_IFLS            0x12\r
229 #define UART_RV_IM              0x000\r
230 #define UART_RV_RIS             0x000\r
231 #define UART_RV_MIS             0x000\r
232 #define UART_RV_ICR             0x000\r
233 \r
234 #endif // __HW_UART_H__\r