1 /***********************************************************************/
\r
2 /* This file is part of the uVision/ARM development tools */
\r
3 /* Copyright KEIL ELEKTRONIK GmbH 2002-2005 */
\r
4 /***********************************************************************/
\r
6 /* LPC210X.H: Header file for Philips LPC2104 / LPC2105 / LPC2106 */
\r
8 /***********************************************************************/
\r
13 /* Vectored Interrupt Controller (VIC) */
\r
14 #define VICIRQStatus (*((volatile unsigned long *) 0xFFFFF000))
\r
15 #define VICFIQStatus (*((volatile unsigned long *) 0xFFFFF004))
\r
16 #define VICRawIntr (*((volatile unsigned long *) 0xFFFFF008))
\r
17 #define VICIntSelect (*((volatile unsigned long *) 0xFFFFF00C))
\r
18 #define VICIntEnable (*((volatile unsigned long *) 0xFFFFF010))
\r
19 #define VICIntEnClr (*((volatile unsigned long *) 0xFFFFF014))
\r
20 #define VICSoftInt (*((volatile unsigned long *) 0xFFFFF018))
\r
21 #define VICSoftIntClr (*((volatile unsigned long *) 0xFFFFF01C))
\r
22 #define VICProtection (*((volatile unsigned long *) 0xFFFFF020))
\r
23 #define VICVectAddr (*((volatile unsigned long *) 0xFFFFF030))
\r
24 #define VICDefVectAddr (*((volatile unsigned long *) 0xFFFFF034))
\r
25 #define VICVectAddr0 (*((volatile unsigned long *) 0xFFFFF100))
\r
26 #define VICVectAddr1 (*((volatile unsigned long *) 0xFFFFF104))
\r
27 #define VICVectAddr2 (*((volatile unsigned long *) 0xFFFFF108))
\r
28 #define VICVectAddr3 (*((volatile unsigned long *) 0xFFFFF10C))
\r
29 #define VICVectAddr4 (*((volatile unsigned long *) 0xFFFFF110))
\r
30 #define VICVectAddr5 (*((volatile unsigned long *) 0xFFFFF114))
\r
31 #define VICVectAddr6 (*((volatile unsigned long *) 0xFFFFF118))
\r
32 #define VICVectAddr7 (*((volatile unsigned long *) 0xFFFFF11C))
\r
33 #define VICVectAddr8 (*((volatile unsigned long *) 0xFFFFF120))
\r
34 #define VICVectAddr9 (*((volatile unsigned long *) 0xFFFFF124))
\r
35 #define VICVectAddr10 (*((volatile unsigned long *) 0xFFFFF128))
\r
36 #define VICVectAddr11 (*((volatile unsigned long *) 0xFFFFF12C))
\r
37 #define VICVectAddr12 (*((volatile unsigned long *) 0xFFFFF130))
\r
38 #define VICVectAddr13 (*((volatile unsigned long *) 0xFFFFF134))
\r
39 #define VICVectAddr14 (*((volatile unsigned long *) 0xFFFFF138))
\r
40 #define VICVectAddr15 (*((volatile unsigned long *) 0xFFFFF13C))
\r
41 #define VICVectCntl0 (*((volatile unsigned long *) 0xFFFFF200))
\r
42 #define VICVectCntl1 (*((volatile unsigned long *) 0xFFFFF204))
\r
43 #define VICVectCntl2 (*((volatile unsigned long *) 0xFFFFF208))
\r
44 #define VICVectCntl3 (*((volatile unsigned long *) 0xFFFFF20C))
\r
45 #define VICVectCntl4 (*((volatile unsigned long *) 0xFFFFF210))
\r
46 #define VICVectCntl5 (*((volatile unsigned long *) 0xFFFFF214))
\r
47 #define VICVectCntl6 (*((volatile unsigned long *) 0xFFFFF218))
\r
48 #define VICVectCntl7 (*((volatile unsigned long *) 0xFFFFF21C))
\r
49 #define VICVectCntl8 (*((volatile unsigned long *) 0xFFFFF220))
\r
50 #define VICVectCntl9 (*((volatile unsigned long *) 0xFFFFF224))
\r
51 #define VICVectCntl10 (*((volatile unsigned long *) 0xFFFFF228))
\r
52 #define VICVectCntl11 (*((volatile unsigned long *) 0xFFFFF22C))
\r
53 #define VICVectCntl12 (*((volatile unsigned long *) 0xFFFFF230))
\r
54 #define VICVectCntl13 (*((volatile unsigned long *) 0xFFFFF234))
\r
55 #define VICVectCntl14 (*((volatile unsigned long *) 0xFFFFF238))
\r
56 #define VICVectCntl15 (*((volatile unsigned long *) 0xFFFFF23C))
\r
58 /* Pin Connect Block */
\r
59 #define PINSEL0 (*((volatile unsigned long *) 0xE002C000))
\r
60 #define PINSEL1 (*((volatile unsigned long *) 0xE002C004))
\r
62 /* General Purpose Input/Output (GPIO) */
\r
63 #define IOPIN (*((volatile unsigned long *) 0xE0028000))
\r
64 #define IOSET (*((volatile unsigned long *) 0xE0028004))
\r
65 #define IODIR (*((volatile unsigned long *) 0xE0028008))
\r
66 #define IOCLR (*((volatile unsigned long *) 0xE002800C))
\r
68 /* Memory Accelerator Module (MAM) */
\r
69 #define MAMCR (*((volatile unsigned char *) 0xE01FC000))
\r
70 #define MAMTIM (*((volatile unsigned char *) 0xE01FC004))
\r
71 #define MEMMAP (*((volatile unsigned char *) 0xE01FC040))
\r
73 /* Phase Locked Loop (PLL) */
\r
74 #define PLLCON (*((volatile unsigned char *) 0xE01FC080))
\r
75 #define PLLCFG (*((volatile unsigned char *) 0xE01FC084))
\r
76 #define PLLSTAT (*((volatile unsigned short*) 0xE01FC088))
\r
77 #define PLLFEED (*((volatile unsigned char *) 0xE01FC08C))
\r
80 #define VPBDIV (*((volatile unsigned char *) 0xE01FC100))
\r
83 #define PCON (*((volatile unsigned char *) 0xE01FC0C0))
\r
84 #define PCONP (*((volatile unsigned long *) 0xE01FC0C4))
\r
86 /* External Interrupts */
\r
87 #define EXTINT (*((volatile unsigned char *) 0xE01FC140))
\r
88 #define EXTWAKE (*((volatile unsigned char *) 0xE01FC144))
\r
91 #define T0IR (*((volatile unsigned long *) 0xE0004000))
\r
92 #define T0TCR (*((volatile unsigned long *) 0xE0004004))
\r
93 #define T0TC (*((volatile unsigned long *) 0xE0004008))
\r
94 #define T0PR (*((volatile unsigned long *) 0xE000400C))
\r
95 #define T0PC (*((volatile unsigned long *) 0xE0004010))
\r
96 #define T0MCR (*((volatile unsigned long *) 0xE0004014))
\r
97 #define T0MR0 (*((volatile unsigned long *) 0xE0004018))
\r
98 #define T0MR1 (*((volatile unsigned long *) 0xE000401C))
\r
99 #define T0MR2 (*((volatile unsigned long *) 0xE0004020))
\r
100 #define T0MR3 (*((volatile unsigned long *) 0xE0004024))
\r
101 #define T0CCR (*((volatile unsigned long *) 0xE0004028))
\r
102 #define T0CR0 (*((volatile unsigned long *) 0xE000402C))
\r
103 #define T0CR1 (*((volatile unsigned long *) 0xE0004030))
\r
104 #define T0CR2 (*((volatile unsigned long *) 0xE0004034))
\r
105 #define T0CR3 (*((volatile unsigned long *) 0xE0004038))
\r
106 #define T0EMR (*((volatile unsigned long *) 0xE000403C))
\r
109 #define T1IR (*((volatile unsigned long *) 0xE0008000))
\r
110 #define T1TCR (*((volatile unsigned long *) 0xE0008004))
\r
111 #define T1TC (*((volatile unsigned long *) 0xE0008008))
\r
112 #define T1PR (*((volatile unsigned long *) 0xE000800C))
\r
113 #define T1PC (*((volatile unsigned long *) 0xE0008010))
\r
114 #define T1MCR (*((volatile unsigned long *) 0xE0008014))
\r
115 #define T1MR0 (*((volatile unsigned long *) 0xE0008018))
\r
116 #define T1MR1 (*((volatile unsigned long *) 0xE000801C))
\r
117 #define T1MR2 (*((volatile unsigned long *) 0xE0008020))
\r
118 #define T1MR3 (*((volatile unsigned long *) 0xE0008024))
\r
119 #define T1CCR (*((volatile unsigned long *) 0xE0008028))
\r
120 #define T1CR0 (*((volatile unsigned long *) 0xE000802C))
\r
121 #define T1CR1 (*((volatile unsigned long *) 0xE0008030))
\r
122 #define T1CR2 (*((volatile unsigned long *) 0xE0008034))
\r
123 #define T1CR3 (*((volatile unsigned long *) 0xE0008038))
\r
124 #define T1EMR (*((volatile unsigned long *) 0xE000803C))
\r
126 /* Pulse Width Modulator (PWM) */
\r
127 #define PWMIR (*((volatile unsigned long *) 0xE0014000))
\r
128 #define PWMTCR (*((volatile unsigned long *) 0xE0014004))
\r
129 #define PWMTC (*((volatile unsigned long *) 0xE0014008))
\r
130 #define PWMPR (*((volatile unsigned long *) 0xE001400C))
\r
131 #define PWMPC (*((volatile unsigned long *) 0xE0014010))
\r
132 #define PWMMCR (*((volatile unsigned long *) 0xE0014014))
\r
133 #define PWMMR0 (*((volatile unsigned long *) 0xE0014018))
\r
134 #define PWMMR1 (*((volatile unsigned long *) 0xE001401C))
\r
135 #define PWMMR2 (*((volatile unsigned long *) 0xE0014020))
\r
136 #define PWMMR3 (*((volatile unsigned long *) 0xE0014024))
\r
137 #define PWMMR4 (*((volatile unsigned long *) 0xE0014040))
\r
138 #define PWMMR5 (*((volatile unsigned long *) 0xE0014044))
\r
139 #define PWMMR6 (*((volatile unsigned long *) 0xE0014048))
\r
140 #define PWMPCR (*((volatile unsigned long *) 0xE001404C))
\r
141 #define PWMLER (*((volatile unsigned long *) 0xE0014050))
\r
143 /* Universal Asynchronous Receiver Transmitter 0 (UART0) */
\r
144 #define U0RBR (*((volatile unsigned char *) 0xE000C000))
\r
145 #define U0THR (*((volatile unsigned char *) 0xE000C000))
\r
146 #define U0IER (*((volatile unsigned char *) 0xE000C004))
\r
147 #define U0IIR (*((volatile unsigned char *) 0xE000C008))
\r
148 #define U0FCR (*((volatile unsigned char *) 0xE000C008))
\r
149 #define U0LCR (*((volatile unsigned char *) 0xE000C00C))
\r
150 #define U0LSR (*((volatile unsigned char *) 0xE000C014))
\r
151 #define U0SCR (*((volatile unsigned char *) 0xE000C01C))
\r
152 #define U0DLL (*((volatile unsigned char *) 0xE000C000))
\r
153 #define U0DLM (*((volatile unsigned char *) 0xE000C004))
\r
155 /* Universal Asynchronous Receiver Transmitter 1 (UART1) */
\r
156 #define U1RBR (*((volatile unsigned char *) 0xE0010000))
\r
157 #define U1THR (*((volatile unsigned char *) 0xE0010000))
\r
158 #define U1IER (*((volatile unsigned char *) 0xE0010004))
\r
159 #define U1IIR (*((volatile unsigned char *) 0xE0010008))
\r
160 #define U1FCR (*((volatile unsigned char *) 0xE0010008))
\r
161 #define U1LCR (*((volatile unsigned char *) 0xE001000C))
\r
162 #define U1MCR (*((volatile unsigned char *) 0xE0010010))
\r
163 #define U1LSR (*((volatile unsigned char *) 0xE0010014))
\r
164 #define U1MSR (*((volatile unsigned char *) 0xE0010018))
\r
165 #define U1SCR (*((volatile unsigned char *) 0xE001001C))
\r
166 #define U1DLL (*((volatile unsigned char *) 0xE0010000))
\r
167 #define U1DLM (*((volatile unsigned char *) 0xE0010004))
\r
169 /* I2C Interface */
\r
170 #define I2CONSET (*((volatile unsigned char *) 0xE001C000))
\r
171 #define I2STAT (*((volatile unsigned char *) 0xE001C004))
\r
172 #define I2DAT (*((volatile unsigned char *) 0xE001C008))
\r
173 #define I2ADR (*((volatile unsigned char *) 0xE001C00C))
\r
174 #define I2SCLH (*((volatile unsigned short*) 0xE001C010))
\r
175 #define I2SCLL (*((volatile unsigned short*) 0xE001C014))
\r
176 #define I2CONCLR (*((volatile unsigned char *) 0xE001C018))
\r
178 /* SPI (Serial Peripheral Interface) */
\r
179 #define S0SPCR (*((volatile unsigned char *) 0xE0020000))
\r
180 #define S0SPSR (*((volatile unsigned char *) 0xE0020004))
\r
181 #define S0SPDR (*((volatile unsigned char *) 0xE0020008))
\r
182 #define S0SPCCR (*((volatile unsigned char *) 0xE002000C))
\r
183 #define S0SPINT (*((volatile unsigned char *) 0xE002001C))
\r
185 /* Real Time Clock */
\r
186 #define ILR (*((volatile unsigned char *) 0xE0024000))
\r
187 #define CTC (*((volatile unsigned short*) 0xE0024004))
\r
188 #define CCR (*((volatile unsigned char *) 0xE0024008))
\r
189 #define CIIR (*((volatile unsigned char *) 0xE002400C))
\r
190 #define AMR (*((volatile unsigned char *) 0xE0024010))
\r
191 #define CTIME0 (*((volatile unsigned long *) 0xE0024014))
\r
192 #define CTIME1 (*((volatile unsigned long *) 0xE0024018))
\r
193 #define CTIME2 (*((volatile unsigned long *) 0xE002401C))
\r
194 #define SEC (*((volatile unsigned char *) 0xE0024020))
\r
195 #define MIN (*((volatile unsigned char *) 0xE0024024))
\r
196 #define HOUR (*((volatile unsigned char *) 0xE0024028))
\r
197 #define DOM (*((volatile unsigned char *) 0xE002402C))
\r
198 #define DOW (*((volatile unsigned char *) 0xE0024030))
\r
199 #define DOY (*((volatile unsigned short*) 0xE0024034))
\r
200 #define MONTH (*((volatile unsigned char *) 0xE0024038))
\r
201 #define YEAR (*((volatile unsigned short*) 0xE002403C))
\r
202 #define ALSEC (*((volatile unsigned char *) 0xE0024060))
\r
203 #define ALMIN (*((volatile unsigned char *) 0xE0024064))
\r
204 #define ALHOUR (*((volatile unsigned char *) 0xE0024068))
\r
205 #define ALDOM (*((volatile unsigned char *) 0xE002406C))
\r
206 #define ALDOW (*((volatile unsigned char *) 0xE0024070))
\r
207 #define ALDOY (*((volatile unsigned short*) 0xE0024074))
\r
208 #define ALMON (*((volatile unsigned char *) 0xE0024078))
\r
209 #define ALYEAR (*((volatile unsigned short*) 0xE002407C))
\r
210 #define PREINT (*((volatile unsigned short*) 0xE0024080))
\r
211 #define PREFRAC (*((volatile unsigned short*) 0xE0024084))
\r
214 #define WDMOD (*((volatile unsigned char *) 0xE0000000))
\r
215 #define WDTC (*((volatile unsigned long *) 0xE0000004))
\r
216 #define WDFEED (*((volatile unsigned char *) 0xE0000008))
\r
217 #define WDTV (*((volatile unsigned long *) 0xE000000C))
\r
219 #endif // __LPC210x_H
\r