initial commit
[armstart-ibdap] / inc / LPC11Uxx.h
1 \r
2 /****************************************************************************************************//**\r
3  * @file     LPC11Uxx.h\r
4  *\r
5  *\r
6  * @brief    CMSIS Cortex-M0 Core Peripheral Access Layer Header File for\r
7  *           default LPC11Uxx Device Series\r
8  *\r
9  * @version  V0.1\r
10  * @date     21. March 2011\r
11  *\r
12  * @note     Generated with SFDGen V2.6 Build 3j (beta) on Thursday, 17.03.2011 13:19:45\r
13  *\r
14  *           from CMSIS SVD File 'LPC11U1x_svd.xml' Version 0.1,\r
15  *           created on Wednesday, 16.03.2011 20:30:42, last modified on Thursday, 17.03.2011 20:19:40\r
16  *\r
17  *******************************************************************************************************/\r
18 \r
19 // ################################################################################\r
20 // Minor fix 8 April 2011 - changed LPC_CT32B1_BASE from 0x40014000 to 0x40018000\r
21 // ################################################################################\r
22 \r
23 /** @addtogroup NXP\r
24   * @{\r
25   */\r
26 \r
27 /** @addtogroup LPC11Uxx\r
28   * @{\r
29   */\r
30 \r
31 #ifndef __LPC11UXX_H__\r
32 #define __LPC11UXX_H__\r
33 \r
34 #ifdef __cplusplus\r
35 extern "C" {\r
36 #endif \r
37 \r
38 \r
39 #if defined ( __CC_ARM   )\r
40   #pragma anon_unions\r
41 #endif\r
42 \r
43  /* Interrupt Number Definition */\r
44 \r
45 typedef enum {\r
46 // -------------------------  Cortex-M0 Processor Exceptions Numbers  -----------------------------\r
47   Reset_IRQn                        = -15,  /*!<   1  Reset Vector, invoked on Power up and warm reset */\r
48   NonMaskableInt_IRQn               = -14,  /*!<   2  Non maskable Interrupt, cannot be stopped or preempted */\r
49   HardFault_IRQn                    = -13,  /*!<   3  Hard Fault, all classes of Fault */\r
50   SVCall_IRQn                       = -5,   /*!<  11  System Service Call via SVC instruction */\r
51   DebugMonitor_IRQn                 = -4,   /*!<  12  Debug Monitor                    */\r
52   PendSV_IRQn                       = -2,   /*!<  14  Pendable request for system service */\r
53   SysTick_IRQn                      = -1,   /*!<  15  System Tick Timer                */\r
54 // ---------------------------  LPC11Uxx Specific Interrupt Numbers  ------------------------------\r
55 FLEX_INT0_IRQn                = 0,        /*!< All I/O pins can be routed to below 8 interrupts. */\r
56   FLEX_INT1_IRQn                = 1,\r
57   FLEX_INT2_IRQn                = 2,\r
58   FLEX_INT3_IRQn                = 3,\r
59   FLEX_INT4_IRQn                = 4,   \r
60   FLEX_INT5_IRQn                = 5,        \r
61   FLEX_INT6_IRQn                = 6,        \r
62   FLEX_INT7_IRQn                = 7,        \r
63   GINT0_IRQn                    = 8,        /*!< Grouped Interrupt 0                              */\r
64   GINT1_IRQn                    = 9,        /*!< Grouped Interrupt 1                              */\r
65   Reserved0_IRQn                = 10,       /*!< Reserved Interrupt                               */\r
66   Reserved1_IRQn                = 11,       \r
67   Reserved2_IRQn                = 12,       \r
68   Reserved3_IRQn                = 13,       \r
69   SSP1_IRQn                     = 14,       /*!< SSP1 Interrupt                                   */\r
70   I2C_IRQn                      = 15,       /*!< I2C Interrupt                                    */\r
71   TIMER_16_0_IRQn               = 16,       /*!< 16-bit Timer0 Interrupt                          */\r
72   TIMER_16_1_IRQn               = 17,       /*!< 16-bit Timer1 Interrupt                          */\r
73   TIMER_32_0_IRQn               = 18,       /*!< 32-bit Timer0 Interrupt                          */\r
74   TIMER_32_1_IRQn               = 19,       /*!< 32-bit Timer1 Interrupt                          */\r
75   SSP0_IRQn                     = 20,       /*!< SSP0 Interrupt                                   */\r
76   UART_IRQn                     = 21,       /*!< UART Interrupt                                   */\r
77   USB_IRQn                      = 22,       /*!< USB IRQ Interrupt                                */\r
78   USB_FIQn                      = 23,       /*!< USB FIQ Interrupt                                */\r
79   ADC_IRQn                      = 24,       /*!< A/D Converter Interrupt                          */\r
80   WDT_IRQn                      = 25,       /*!< Watchdog timer Interrupt                         */  \r
81   BOD_IRQn                      = 26,       /*!< Brown Out Detect(BOD) Interrupt                  */\r
82   FMC_IRQn                      = 27,       /*!< Flash Memory Controller Interrupt                */\r
83   Reserved4_IRQn                = 28,       /*!< Reserved Interrupt                               */\r
84   Reserved5_IRQn                = 29,       /*!< Reserved Interrupt                               */\r
85   USBWakeup_IRQn                = 30,       /*!< USB wakeup Interrupt                             */\r
86   Reserved6_IRQn                = 31,       /*!< Reserved Interrupt                               */\r
87 } IRQn_Type;\r
88 \r
89 \r
90 /** @addtogroup Configuration_of_CMSIS\r
91   * @{\r
92   */\r
93 \r
94 /* Processor and Core Peripheral Section */ /* Configuration of the Cortex-M0 Processor and Core Peripherals */\r
95 \r
96 #define __MPU_PRESENT             0         /*!< MPU present or not                    */\r
97 #define __NVIC_PRIO_BITS          3         /*!< Number of Bits used for Priority Levels */\r
98 #define __Vendor_SysTickConfig    0         /*!< Set to 1 if different SysTick Config is used */\r
99 /** @} */ /* End of group Configuration_of_CMSIS */\r
100 \r
101 #include "core_cm0.h"                       /*!< Cortex-M0 processor and core peripherals */\r
102 #include "system_LPC11Uxx.h"                /*!< LPC11Uxx System                       */\r
103 \r
104 /** @addtogroup Device_Peripheral_Registers\r
105   * @{\r
106   */\r
107 \r
108 \r
109 // ------------------------------------------------------------------------------------------------\r
110 // -----                                          I2C                                         -----\r
111 // ------------------------------------------------------------------------------------------------\r
112 \r
113 \r
114 /**\r
115   * @brief Product name title=UM10462 Chapter title=LPC11U1x I2C-bus controller Modification date=3/16/2011 Major revision=0 Minor revision=3  (I2C)\r
116   */\r
117 \r
118 typedef struct {                            /*!< (@ 0x40000000) I2C Structure          */\r
119   __IO uint32_t CONSET;                     /*!< (@ 0x40000000) I2C Control Set Register */\r
120   __I  uint32_t STAT;                       /*!< (@ 0x40000004) I2C Status Register */\r
121   __IO uint32_t DAT;                        /*!< (@ 0x40000008) I2C Data Register.  */\r
122   __IO uint32_t ADR0;                       /*!< (@ 0x4000000C) I2C Slave Address Register 0 */\r
123   __IO uint32_t SCLH;                       /*!< (@ 0x40000010) SCH Duty Cycle Register High Half Word */\r
124   __IO uint32_t SCLL;                       /*!< (@ 0x40000014) SCL Duty Cycle Register Low Half Word */\r
125   __IO uint32_t CONCLR;                     /*!< (@ 0x40000018) I2C Control Clear Register*/\r
126   __IO uint32_t MMCTRL;                     /*!< (@ 0x4000001C) Monitor mode control register*/\r
127   __IO uint32_t ADR1;                       /*!< (@ 0x40000020) I2C Slave Address Register 1*/\r
128   __IO uint32_t ADR2;                       /*!< (@ 0x40000024) I2C Slave Address Register 2*/\r
129   __IO uint32_t ADR3;                       /*!< (@ 0x40000028) I2C Slave Address Register 3*/\r
130   __I  uint32_t DATA_BUFFER;                /*!< (@ 0x4000002C) Data buffer register */\r
131 union{\r
132   __IO uint32_t MASK[4];                    /*!< (@ 0x40000030) I2C Slave address mask register */\r
133   struct{\r
134   __IO uint32_t MASK0;\r
135   __IO uint32_t MASK1;\r
136   __IO uint32_t MASK2;\r
137   __IO uint32_t MASK3;\r
138   };\r
139   };\r
140 } LPC_I2C_Type;\r
141 \r
142 \r
143 // ------------------------------------------------------------------------------------------------\r
144 // -----                                         WWDT                                         -----\r
145 // ------------------------------------------------------------------------------------------------\r
146 \r
147 \r
148 /**\r
149   * @brief Product name title=UM10462 Chapter title=LPC11U1x Windowed Watchdog Timer (WWDT) Modification date=3/16/2011 Major revision=0 Minor revision=3  (WWDT)\r
150   */\r
151 \r
152 typedef struct {                            /*!< (@ 0x40004000) WWDT Structure         */\r
153   __IO uint32_t MOD;                        /*!< (@ 0x40004000) Watchdog mode register*/\r
154   __IO uint32_t TC;                         /*!< (@ 0x40004004) Watchdog timer constant register */\r
155   __IO uint32_t FEED;                       /*!< (@ 0x40004008) Watchdog feed sequence register */\r
156   __I  uint32_t TV;                         /*!< (@ 0x4000400C) Watchdog timer value register */\r
157   __IO uint32_t CLKSEL;                     /*!< (@ 0x40004010) Watchdog clock select register. */\r
158   __IO uint32_t WARNINT;                    /*!< (@ 0x40004014) Watchdog Warning Interrupt compare value. */\r
159   __IO uint32_t WINDOW;                     /*!< (@ 0x40004018) Watchdog Window compare value. */\r
160 } LPC_WWDT_Type;\r
161 \r
162 \r
163 // ------------------------------------------------------------------------------------------------\r
164 // -----                                         USART                                        -----\r
165 // ------------------------------------------------------------------------------------------------\r
166 \r
167 \r
168 /**\r
169   * @brief Product name title=UM10462 Chapter title=LPC11U1x USART Modification date=3/16/2011 Major revision=0 Minor revision=3  (USART)\r
170   */\r
171 \r
172 typedef struct {                            /*!< (@ 0x40008000) USART Structure        */\r
173   \r
174   union {\r
175     __IO uint32_t DLL;                      /*!< (@ 0x40008000) Divisor Latch LSB. Least significant byte of the baud rate divisor value. The full divisor is used to generate a baud rate from the fractional rate divider. (DLAB=1) */\r
176     __O  uint32_t THR;                      /*!< (@ 0x40008000) Transmit Holding Register. The next character to be transmitted is written here. (DLAB=0) */\r
177     __I  uint32_t RBR;                      /*!< (@ 0x40008000) Receiver Buffer Register. Contains the next received character to be read. (DLAB=0) */\r
178   };\r
179   \r
180   union {\r
181     __IO uint32_t IER;                      /*!< (@ 0x40008004) Interrupt Enable Register. Contains individual interrupt enable bits for the 7 potential USART interrupts. (DLAB=0) */\r
182     __IO uint32_t DLM;                      /*!< (@ 0x40008004) Divisor Latch MSB. Most significant byte of the baud rate divisor value. The full divisor is used to generate a baud rate from the fractional rate divider. (DLAB=1) */\r
183   };\r
184   \r
185   union {\r
186     __O  uint32_t FCR;                      /*!< (@ 0x40008008) FIFO Control Register. Controls USART FIFO usage and modes. */\r
187     __I  uint32_t IIR;                      /*!< (@ 0x40008008) Interrupt ID Register. Identifies which interrupt(s) are pending. */\r
188   };\r
189   __IO uint32_t LCR;                        /*!< (@ 0x4000800C) Line Control Register. Contains controls for frame formatting and break generation. */\r
190   __IO uint32_t MCR;                        /*!< (@ 0x40008010) Modem Control Register. */\r
191   __I  uint32_t LSR;                        /*!< (@ 0x40008014) Line Status Register. Contains flags for transmit and receive status, including line errors. */\r
192   __I  uint32_t MSR;                        /*!< (@ 0x40008018) Modem Status Register. */\r
193   __IO uint32_t SCR;                        /*!< (@ 0x4000801C) Scratch Pad Register. Eight-bit temporary storage for software. */\r
194   __IO uint32_t ACR;                        /*!< (@ 0x40008020) Auto-baud Control Register. Contains controls for the auto-baud feature. */\r
195   __IO uint32_t ICR;                        /*!< (@ 0x40008024) IrDA Control Register. Enables and configures the IrDA (remote control) mode. */\r
196   __IO uint32_t FDR;                        /*!< (@ 0x40008028) Fractional Divider Register. Generates a clock input for the baud rate divider. */\r
197   __IO uint32_t OSR;                        /*!< (@ 0x4000802C) Oversampling Register. Controls the degree of oversampling during each bit time. */\r
198   __IO uint32_t TER;                        /*!< (@ 0x40008030) Transmit Enable Register. Turns off USART transmitter for use with software flow control. */\r
199   __I  uint32_t RESERVED0[3];\r
200   __IO uint32_t HDEN;                       /*!< (@ 0x40008040) Half duplex enable register. */\r
201   __I  uint32_t RESERVED1;\r
202   __IO uint32_t SCICTRL;                    /*!< (@ 0x40008048) Smart Card Interface Control register. Enables and configures the Smart Card Interface feature. */\r
203   __IO uint32_t RS485CTRL;                  /*!< (@ 0x4000804C) RS-485/EIA-485 Control. Contains controls to configure various aspects of RS-485/EIA-485 modes. */\r
204   __IO uint32_t RS485ADRMATCH;              /*!< (@ 0x40008050) RS-485/EIA-485 address match. Contains the address match value for RS-485/EIA-485 mode. */\r
205   __IO uint32_t RS485DLY;                   /*!< (@ 0x40008054) RS-485/EIA-485 direction control delay. */\r
206   __IO uint32_t SYNCCTRL; \r
207 } LPC_USART_Type;\r
208 \r
209 \r
210 // ------------------------------------------------------------------------------------------------\r
211 // -----                                        Timer                                       -----\r
212 // ------------------------------------------------------------------------------------------------\r
213 \r
214 \r
215 /**\r
216   * @brief Product name title=UM10462 Chapter title=LPC11U1x 32-bitcounter/timers CT32B0/1 Modification date=3/16/2011 Major revision=0 Minor revision=3  \r
217   */\r
218 \r
219 typedef struct {                            /*!< (@ 0x40014000) CT32B0 Structure        */\r
220   __IO uint32_t IR;                         /*!< (@ 0x40014000) Interrupt Register      */\r
221   __IO uint32_t TCR;                        /*!< (@ 0x40014004) Timer Control Register  */\r
222   __IO uint32_t TC;                         /*!< (@ 0x40014008) Timer Counter           */\r
223   __IO uint32_t PR;                         /*!< (@ 0x4001400C) Prescale Register       */\r
224   __IO uint32_t PC;                         /*!< (@ 0x40014010) Prescale Counter         */\r
225   __IO uint32_t MCR;                        /*!< (@ 0x40014014) Match Control Register */\r
226   union {\r
227   __IO uint32_t MR[4];                      /*!< (@ 0x40014018) Match Register */\r
228   struct{\r
229   __IO uint32_t MR0;                        /*!< (@ 0x40018018) Match Register. MR0 */\r
230   __IO uint32_t MR1;                        /*!< (@ 0x4001801C) Match Register. MR1 */\r
231   __IO uint32_t MR2;                        /*!< (@ 0x40018020) Match Register. MR2 */\r
232   __IO uint32_t MR3;                        /*!< (@ 0x40018024) Match Register. MR3 */\r
233   };\r
234   };\r
235   __IO uint32_t CCR;                        /*!< (@ 0x40014028) Capture Control Register */\r
236   union{\r
237   __I  uint32_t CR[4];                      /*!< (@ 0x4001402C) Capture Register  */\r
238     struct{\r
239   __I  uint32_t CR0;                        /*!< (@ 0x4001802C) Capture Register. CR 0 */\r
240   __I  uint32_t CR1;                        /*!< (@ 0x40018030) Capture Register. CR 1 */\r
241   __I  uint32_t CR2;                        /*!< (@ 0x40018034) Capture Register. CR 2 */\r
242   __I  uint32_t CR3;                        /*!< (@ 0x40018038) Capture Register. CR 3 */\r
243   };\r
244   };\r
245 __IO uint32_t EMR;                        /*!< (@ 0x4001403C) External Match Register */\r
246   __I  uint32_t RESERVED0[12];\r
247   __IO uint32_t CTCR;                       /*!< (@ 0x40014070) Count Control Register */\r
248   __IO uint32_t PWMC;                       /*!< (@ 0x40014074) PWM Control Register */\r
249 } LPC_CTxxBx_Type;\r
250 \r
251 \r
252 \r
253 // ------------------------------------------------------------------------------------------------\r
254 // -----                                          ADC                                         -----\r
255 // ------------------------------------------------------------------------------------------------\r
256 \r
257 \r
258 /**\r
259   * @brief Product name title=UM10462 Chapter title=LPC11U1x ADC Modification date=3/16/2011 Major revision=0 Minor revision=3  (ADC)\r
260   */\r
261 \r
262 typedef struct {                            /*!< (@ 0x4001C000) ADC Structure          */\r
263   __IO uint32_t CR;                         /*!< (@ 0x4001C000) A/D Control Register */\r
264   __IO uint32_t GDR;                        /*!< (@ 0x4001C004) A/D Global Data Register */\r
265   __I  uint32_t RESERVED0[1];\r
266   __IO uint32_t INTEN;                      /*!< (@ 0x4001C00C) A/D Interrupt Enable Register */\r
267   union{\r
268   __I  uint32_t DR[8];                      /*!< (@ 0x4001C010) A/D Channel Data Register*/\r
269     struct{\r
270   __IO uint32_t DR0;                            /*!< (@ 0x40020010) A/D Channel Data Register 0*/\r
271   __IO uint32_t DR1;                            /*!< (@ 0x40020014) A/D Channel Data Register 1*/\r
272   __IO uint32_t DR2;                            /*!< (@ 0x40020018) A/D Channel Data Register 2*/\r
273   __IO uint32_t DR3;                            /*!< (@ 0x4002001C) A/D Channel Data Register 3*/\r
274   __IO uint32_t DR4;                            /*!< (@ 0x40020020) A/D Channel Data Register 4*/\r
275   __IO uint32_t DR5;                            /*!< (@ 0x40020024) A/D Channel Data Register 5*/\r
276   __IO uint32_t DR6;                            /*!< (@ 0x40020028) A/D Channel Data Register 6*/\r
277   __IO uint32_t DR7;                            /*!< (@ 0x4002002C) A/D Channel Data Register 7*/\r
278   };\r
279   };\r
280   __I  uint32_t STAT;                       /*!< (@ 0x4001C030) A/D Status Register.  */\r
281 } LPC_ADC_Type;\r
282 \r
283 \r
284 // ------------------------------------------------------------------------------------------------\r
285 // -----                                          PMU                                         -----\r
286 // ------------------------------------------------------------------------------------------------\r
287 \r
288 \r
289 /**\r
290   * @brief Product name title=UM10462 Chapter title=LPC11U1x Power Management Unit (PMU) Modification date=3/16/2011 Major revision=0 Minor revision=3  (PMU)\r
291   */\r
292 \r
293 typedef struct {                            /*!< (@ 0x40038000) PMU Structure          */\r
294   __IO uint32_t PCON;                       /*!< (@ 0x40038000) Power control register */\r
295   union{\r
296   __IO uint32_t GPREG[4];                   /*!< (@ 0x40038004) General purpose register 0 */\r
297   struct{\r
298   __IO uint32_t GPREG0;                         /*!< (@ 0x40038004) General purpose register 0 */\r
299   __IO uint32_t GPREG1;                         /*!< (@ 0x40038008) General purpose register 1 */\r
300   __IO uint32_t GPREG2;                         /*!< (@ 0x4003800C) General purpose register 2 */\r
301   __IO uint32_t GPREG3;                         /*!< (@ 0x40038010) General purpose register 3 */\r
302   };\r
303   };\r
304 } LPC_PMU_Type;\r
305 \r
306 \r
307 // ------------------------------------------------------------------------------------------------\r
308 // -----                                       FLASHCTRL                                      -----\r
309 // ------------------------------------------------------------------------------------------------\r
310 \r
311 \r
312 /**\r
313   * @brief Product name title=UM10462 Chapter title=LPC11U1x Flash programming firmware Modification date=3/17/2011 Major revision=0 Minor revision=3  (FLASHCTRL)\r
314   */\r
315 \r
316 typedef struct {                            /*!< (@ 0x4003C000) FLASHCTRL Structure    */\r
317   __I  uint32_t RESERVED0[4];\r
318   __IO uint32_t FLASHCFG;                   /*!< (@ 0x4003C010) Flash memory access time configuration register */\r
319   __I  uint32_t RESERVED1[3];\r
320   __IO uint32_t FMSSTART;                   /*!< (@ 0x4003C020) Signature start address register */\r
321   __IO uint32_t FMSSTOP;                    /*!< (@ 0x4003C024) Signature stop-address register */\r
322   __I  uint32_t RESERVED2[1];\r
323   __I  uint32_t FMSW0;                      /*!< (@ 0x4003C02C) Word 0 [31:0]          */\r
324   __I  uint32_t FMSW1;                      /*!< (@ 0x4003C030) Word 1 [63:32]         */\r
325   __I  uint32_t FMSW2;                      /*!< (@ 0x4003C034) Word 2 [95:64]         */\r
326   __I  uint32_t FMSW3;                      /*!< (@ 0x4003C038) Word 3 [127:96]        */\r
327   __I  uint32_t RESERVED3[1001];\r
328   __I  uint32_t FMSTAT;                     /*!< (@ 0x4003CFE0) Signature generation status register */\r
329   __I  uint32_t RESERVED4[1];\r
330   __IO uint32_t FMSTATCLR;                  /*!< (@ 0x4003CFE8) Signature generation status clear register */\r
331 } LPC_FLASHCTRL_Type;\r
332 \r
333 \r
334 #define FLASHCFG_20MHZ_CPU      0               /*!< Flash accesses use 1 CPU clocks. Use for up to 20 MHz CPU clock*/\r
335 #define FLASHCFG_40MHZ_CPU      1               /*!< Flash accesses use 2 CPU clocks. Use for up to 40 MHz CPU clock*/\r
336 #define FLASHCFG_50MHZ_CPU      2               /*!< Flash accesses use 3 CPU clocks. Use for up to 50 MHz CPU clock*/\r
337 \r
338 \r
339 \r
340 // ------------------------------------------------------------------------------------------------\r
341 // -----                                         SSP0/1                                         -----\r
342 // ------------------------------------------------------------------------------------------------\r
343 \r
344 \r
345 /**\r
346   * @brief Product name title=UM10462 Chapter title=LPC11U1x SSP/SPI Modification date=3/16/2011 Major revision=0 Minor revision=3  (SSP0)\r
347   */\r
348 \r
349 typedef struct {                            /*!< (@ 0x40040000) SSP0 Structure         */\r
350   __IO uint32_t CR0;                        /*!< (@ 0x40040000) Control Register 0. Selects the serial clock rate, bus type, and data size. */\r
351   __IO uint32_t CR1;                        /*!< (@ 0x40040004) Control Register 1. Selects master/slave and other modes. */\r
352   __IO uint32_t DR;                         /*!< (@ 0x40040008) Data Register. Writes fill the transmit FIFO, and reads empty the receive FIFO. */\r
353   __I  uint32_t SR;                         /*!< (@ 0x4004000C) Status Register        */\r
354   __IO uint32_t CPSR;                       /*!< (@ 0x40040010) Clock Prescale Register */\r
355   __IO uint32_t IMSC;                       /*!< (@ 0x40040014) Interrupt Mask Set and Clear Register */\r
356   __I  uint32_t RIS;                        /*!< (@ 0x40040018) Raw Interrupt Status Register */\r
357   __I  uint32_t MIS;                        /*!< (@ 0x4004001C) Masked Interrupt Status Register */\r
358   __IO uint32_t ICR;                        /*!< (@ 0x40040020) SSPICR Interrupt Clear Register */\r
359 } LPC_SSPx_Type;\r
360 \r
361 \r
362 \r
363 // ------------------------------------------------------------------------------------------------\r
364 // -----                                       IOCONFIG                                       -----\r
365 // ------------------------------------------------------------------------------------------------\r
366 \r
367 \r
368 /**\r
369   * @brief Product name title=UM10462 Chapter title=LPC11U1x I/O configuration Modification date=3/16/2011 Major revision=0 Minor revision=3  (IOCONFIG)\r
370   */\r
371 \r
372 typedef struct {                            /*!< (@ 0x40044000) IOCONFIG Structure     */\r
373   __IO uint32_t RESET_PIO0_0;               /*!< (@ 0x40044000) I/O configuration for pin RESET/PIO0_0 */\r
374   __IO uint32_t PIO0_1;                     /*!< (@ 0x40044004) I/O configuration for pin PIO0_1/CLKOUT/CT32B0_MAT2/USB_FTOGGLE */\r
375   __IO uint32_t PIO0_2;                     /*!< (@ 0x40044008) I/O configuration for pin PIO0_2/SSEL0/CT16B0_CAP0 */\r
376   __IO uint32_t PIO0_3;                     /*!< (@ 0x4004400C) I/O configuration for pin PIO0_3/USB_VBUS */\r
377   __IO uint32_t PIO0_4;                     /*!< (@ 0x40044010) I/O configuration for pin PIO0_4/SCL */\r
378   __IO uint32_t PIO0_5;                     /*!< (@ 0x40044014) I/O configuration for pin PIO0_5/SDA */\r
379   __IO uint32_t PIO0_6;                     /*!< (@ 0x40044018) I/O configuration for pin PIO0_6/USB_CONNECT/SCK0 */\r
380   __IO uint32_t PIO0_7;                     /*!< (@ 0x4004401C) I/O configuration for pin PIO0_7/CTS */\r
381   __IO uint32_t PIO0_8;                     /*!< (@ 0x40044020) I/O configuration for pin PIO0_8/MISO0/CT16B0_MAT0 */\r
382   __IO uint32_t PIO0_9;                     /*!< (@ 0x40044024) I/O configuration for pin PIO0_9/MOSI0/CT16B0_MAT1 */\r
383   __IO uint32_t SWCLK_PIO0_10;              /*!< (@ 0x40044028) I/O configuration for pin SWCLK/PIO0_10/ SCK0/CT16B0_MAT2 */\r
384   __IO uint32_t TDI_PIO0_11;                /*!< (@ 0x4004402C) I/O configuration for pin TDI/PIO0_11/AD0/CT32B0_MAT3 */\r
385   __IO uint32_t TMS_PIO0_12;                /*!< (@ 0x40044030) I/O configuration for pin TMS/PIO0_12/AD1/CT32B1_CAP0 */\r
386   __IO uint32_t TDO_PIO0_13;                /*!< (@ 0x40044034) I/O configuration for pin TDO/PIO0_13/AD2/CT32B1_MAT0 */\r
387   __IO uint32_t TRST_PIO0_14;               /*!< (@ 0x40044038) I/O configuration for pin TRST/PIO0_14/AD3/CT32B1_MAT1 */\r
388   __IO uint32_t SWDIO_PIO0_15;              /*!< (@ 0x4004403C) I/O configuration for pin SWDIO/PIO0_15/AD4/CT32B1_MAT2 */\r
389   __IO uint32_t PIO0_16;                    /*!< (@ 0x40044040) I/O configuration for pin PIO0_16/AD5/CT32B1_MAT3/ WAKEUP */\r
390   __IO uint32_t PIO0_17;                    /*!< (@ 0x40044044) I/O configuration for pin PIO0_17/RTS/CT32B0_CAP0/SCLK */\r
391   __IO uint32_t PIO0_18;                    /*!< (@ 0x40044048) I/O configuration for pin PIO0_18/RXD/CT32B0_MAT0 */\r
392   __IO uint32_t PIO0_19;                    /*!< (@ 0x4004404C) I/O configuration for pin PIO0_19/TXD/CT32B0_MAT1 */\r
393   __IO uint32_t PIO0_20;                    /*!< (@ 0x40044050) I/O configuration for pin PIO0_20/CT16B1_CAP0 */\r
394   __IO uint32_t PIO0_21;                    /*!< (@ 0x40044054) I/O configuration for pin PIO0_21/CT16B1_MAT0/MOSI1 */\r
395   __IO uint32_t PIO0_22;                    /*!< (@ 0x40044058) I/O configuration for pin PIO0_22/AD6/CT16B1_MAT1/MISO1 */\r
396   __IO uint32_t PIO0_23;                    /*!< (@ 0x4004405C) I/O configuration for pin PIO0_23/AD7 */\r
397   __IO uint32_t PIO1_0;                 /*!< Offset: 0x060 */\r
398   __IO uint32_t PIO1_1;         \r
399   __IO uint32_t PIO1_2;       \r
400   __IO uint32_t PIO1_3;      \r
401   __IO uint32_t PIO1_4;                 /*!< Offset: 0x070 */\r
402   __IO uint32_t PIO1_5;                     /*!< (@ 0x40044074) I/O configuration for pin PIO1_5/CT32B1_CAP1 */\r
403   __IO uint32_t PIO1_6;     \r
404   __IO uint32_t PIO1_7;       \r
405   __IO uint32_t PIO1_8;                 /*!< Offset: 0x080 */\r
406   __IO uint32_t PIO1_9;        \r
407   __IO uint32_t PIO1_10;        \r
408   __IO uint32_t PIO1_11;       \r
409   __IO uint32_t PIO1_12;                /*!< Offset: 0x090 */\r
410   __IO uint32_t PIO1_13;                    /*!< (@ 0x40044094) I/O configuration for pin PIO1_13/DTR/CT16B0_MAT0/TXD */\r
411   __IO uint32_t PIO1_14;                    /*!< (@ 0x40044098) I/O configuration for pin PIO1_14/DSR/CT16B0_MAT1/RXD */\r
412   __IO uint32_t PIO1_15;                    /*!< (@ 0x4004409C) I/O configuration for pin PIO1_15/DCD/ CT16B0_MAT2/SCK1 */\r
413   __IO uint32_t PIO1_16;                    /*!< (@ 0x400440A0) I/O configuration for pin PIO1_16/RI/CT16B0_CAP0 */\r
414   __IO uint32_t PIO1_17;\r
415   __IO uint32_t PIO1_18;\r
416   __IO uint32_t PIO1_19;                    /*!< (@ 0x400440AC) I/O configuration for pin PIO1_19/DTR/SSEL1 */\r
417   __IO uint32_t PIO1_20;                    /*!< (@ 0x400440B0) I/O configuration for pin PIO1_20/DSR/SCK1 */\r
418   __IO uint32_t PIO1_21;                    /*!< (@ 0x400440B4) I/O configuration for pin PIO1_21/DCD/MISO1 */\r
419   __IO uint32_t PIO1_22;                    /*!< (@ 0x400440B8) I/O configuration for pin PIO1_22/RI/MOSI1 */\r
420   __IO uint32_t PIO1_23;                    /*!< (@ 0x400440BC) I/O configuration for pin PIO1_23/CT16B1_MAT1/SSEL1 */\r
421   __IO uint32_t PIO1_24;                    /*!< (@ 0x400440C0) I/O configuration for pin PIO1_24/ CT32B0_MAT0 */\r
422   __IO uint32_t PIO1_25;                    /*!< (@ 0x400440C4) I/O configuration for pin PIO1_25/CT32B0_MAT1 */\r
423   __IO uint32_t PIO1_26;                    /*!< (@ 0x400440C8) I/O configuration for pin PIO1_26/CT32B0_MAT2/ RXD */\r
424   __IO uint32_t PIO1_27;                    /*!< (@ 0x400440CC) I/O configuration for pin PIO1_27/CT32B0_MAT3/ TXD */\r
425   __IO uint32_t PIO1_28;                    /*!< (@ 0x400440D0) I/O configuration for pin PIO1_28/CT32B0_CAP0/ SCLK */\r
426   __IO uint32_t PIO1_29;                    /*!< (@ 0x400440D4) I/O configuration for pin PIO1_29/SCK0/ CT32B0_CAP1 */\r
427   __IO uint32_t PIO1_30;\r
428   __IO uint32_t PIO1_31;                    /*!< (@ 0x400440DC) I/O configuration for pin PIO1_31 */\r
429 } LPC_IOCON_Type;\r
430 \r
431 \r
432 // ------------------------------------------------------------------------------------------------\r
433 // -----                                        SYSCON                                        -----\r
434 // ------------------------------------------------------------------------------------------------\r
435 \r
436 \r
437 /**\r
438   * @brief Product name title=UM10462 Chapter title=LPC11U1x System control block Modification date=3/16/2011 Major revision=0 Minor revision=3  (SYSCON)\r
439   */\r
440 \r
441 typedef struct {                            //*!< (@ 0x40048000) SYSCON Structure\r
442         __IO uint32_t  SYSMEMREMAP;             /*!< System Memory remap register */\r
443         __IO uint32_t  PRESETCTRL;              /*!< Peripheral reset Control register */\r
444         __IO uint32_t  SYSPLLCTRL;              /*!< System PLL control register */\r
445         __I  uint32_t  SYSPLLSTAT;              /*!< System PLL status register */\r
446         __IO uint32_t  USBPLLCTRL;              /*!< USB PLL control register, LPC11UXX only*/\r
447         __I  uint32_t  USBPLLSTAT;              /*!< USB PLL status register, LPC11UXX only */\r
448         __I  uint32_t  RESERVED1[2];\r
449         __IO uint32_t  SYSOSCCTRL;              /*!< System Oscillator control register */\r
450         __IO uint32_t  WDTOSCCTRL;              /*!< Watchdog Oscillator control register */\r
451         __IO uint32_t  IRCCTRL;                 /*!< IRC control register, not on LPC11UXX and LPC11EXX */\r
452         __IO uint32_t  LFOSCCTRL;               /*!< LF oscillator control, LPC11AXX only */\r
453         __IO uint32_t  SYSRSTSTAT;              /*!< System Reset Status register           */\r
454         __I  uint32_t  RESERVED2[3];\r
455         __IO uint32_t  SYSPLLCLKSEL;    /*!< System PLL clock source select register */\r
456         __IO uint32_t  SYSPLLCLKUEN;    /*!< System PLL clock source update enable register*/\r
457         __IO uint32_t  USBPLLCLKSEL;    /*!< USB PLL clock source select register, LPC11UXX only */\r
458         __IO uint32_t  USBPLLCLKUEN;    /*!< USB PLL clock source update enable register, LPC11UXX only */\r
459         __I  uint32_t  RESERVED3[8];\r
460         __IO uint32_t  MAINCLKSEL;      /*!< Main clock source select register          */\r
461         __IO uint32_t  MAINCLKUEN;      /*!< Main clock source update enable register   */\r
462         __IO uint32_t  SYSAHBCLKDIV;    /*!< System Clock divider register */\r
463         __I  uint32_t  RESERVED4;\r
464         __IO uint32_t  SYSAHBCLKCTRL;   /*!< System clock control register */\r
465         __I  uint32_t  RESERVED5[4];\r
466         __IO uint32_t  SSP0CLKDIV;      /*!< SSP0 clock divider register   */\r
467         __IO uint32_t  USARTCLKDIV;     /*!< UART clock divider register   */\r
468         __IO uint32_t  SSP1CLKDIV;      /*!< SSP1 clock divider register, not on CHIP_LPC110X, CHIP_LPC11XXLV */\r
469         __I  uint32_t  RESERVED6[8];\r
470         __IO uint32_t  USBCLKSEL;       /*!< USB clock source select register, LPC11UXX only */\r
471         __IO uint32_t  USBCLKUEN;       /*!< USB clock source update enable register, LPC11UXX only */\r
472         __IO uint32_t  USBCLKDIV;       /*!< USB clock source divider register, LPC11UXX only */\r
473         __I  uint32_t  RESERVED7;\r
474         __IO uint32_t  WDTCLKSEL;       /*!< WDT clock source select register, some parts only */\r
475         __IO uint32_t  WDTCLKUEN;       /*!< WDT clock source update enable register, some parts only */\r
476         __IO uint32_t  WDTCLKDIV;       /*!< WDT clock divider register, some parts only */\r
477         __I  uint32_t  RESERVED8;\r
478         __IO uint32_t  CLKOUTSEL;       /*!< Clock out source select register, not on LPC1102/04 */\r
479         __IO uint32_t  CLKOUTUEN;       /*!< Clock out source update enable register, not on LPC1102/04 */\r
480         __IO uint32_t  CLKOUTDIV;       /*!< Clock out divider register, not on LPC1102/04 */\r
481         __I  uint32_t  RESERVED9[5];\r
482         __I  uint32_t  PIOPORCAP[2];/*!< POR captured PIO status registers, index 1 on LPC1102/04 */\r
483         __I  uint32_t  RESERVED10[18];\r
484         __IO uint32_t  BODCTRL;         /*!< Brown Out Detect register */\r
485         __IO uint32_t  SYSTCKCAL;       /*!< System tick counter calibration register */\r
486         __I  uint32_t  RESERVED11[6];\r
487         __IO uint32_t  IRQLATENCY;      /*!< IRQ delay register, on LPC11UXX and LPC11EXX only */\r
488         __IO uint32_t  NMISRC;          /*!< NMI source control register,some parts only */\r
489         __IO uint32_t  PINTSEL[8];      /*!< GPIO pin interrupt select register 0-7, not on CHIP_LPC110X, CHIP_LPC11XXLV, CHIP_LPC11CXX */\r
490         __IO uint32_t  USBCLKCTRL;      /*!< USB clock control register, LPC11UXX only */\r
491         __I  uint32_t  USBCLKST;        /*!< USB clock status register, LPC11UXX only */\r
492         __I  uint32_t  RESERVED12[24];\r
493         __IO uint32_t  STARTAPRP0;      /*!< Start loigc 0 interrupt wake up enable register 0, on CHIP_LPC110X, CHIP_LPC11XXLV, CHIP_LPC11CXX */\r
494         __IO uint32_t  STARTERP0;       /*!< Start loigc signal enable register 0, not on LPC11AXX */\r
495         __IO uint32_t  STARTRSRP0CLR;   /*!< Start loigc reset register 0, on CHIP_LPC110X, CHIP_LPC11XXLV, CHIP_LPC11CXX */\r
496         __IO uint32_t  STARTSRP0;               /*!< Start loigc status register 0, on CHIP_LPC110X, CHIP_LPC11XXLV, CHIP_LPC11CXX */\r
497         __I  uint32_t  RESERVED13;\r
498         __IO uint32_t  STARTERP1;       /*!< Start logic 1 interrupt wake up enable register 1, on LPC11UXX and LPC11EXX only */\r
499         __I  uint32_t  RESERVED14[6];\r
500         __IO uint32_t  PDSLEEPCFG;      /*!< Power down states in deep sleep mode register, not on LPC11AXX */\r
501         __IO uint32_t  PDWAKECFG;       /*!< Power down states in wake up from deep sleep register, not on LPC11AXX */\r
502         __IO uint32_t  PDRUNCFG;        /*!< Power configuration register*/\r
503         __I  uint32_t  RESERVED15[110];\r
504         __I  uint32_t  DEVICEID;        /*!< Device ID register */\r
505         /*\r
506   __IO uint32_t SYSMEMREMAP;                //!< (@ 0x40048000) System memory remap\r
507   __IO uint32_t PRESETCTRL;                 //!< (@ 0x40048004) Peripheral reset control\r
508   __IO uint32_t SYSPLLCTRL;                 //!< (@ 0x40048008) System PLL control\r
509   __I  uint32_t SYSPLLSTAT;                 //!< (@ 0x4004800C) System PLL status\r
510   __IO uint32_t USBPLLCTRL;                 //!< (@ 0x40048010) USB PLL control\r
511   __I  uint32_t USBPLLSTAT;                 //!< (@ 0x40048014) USB PLL status\r
512   __I  uint32_t RESERVED0[2];\r
513   __IO uint32_t SYSOSCCTRL;                 //!< (@ 0x40048020) System oscillator control\r
514   __IO uint32_t WDTOSCCTRL;                 //!< (@ 0x40048024) Watchdog oscillator control\r
515   __I  uint32_t RESERVED1[2];\r
516   __IO uint32_t SYSRSTSTAT;                 //!< (@ 0x40048030) System reset status register\r
517   __I  uint32_t RESERVED2[3];\r
518   __IO uint32_t SYSPLLCLKSEL;               //!< (@ 0x40048040) System PLL clock source select\r
519   __IO uint32_t SYSPLLCLKUEN;               //!< (@ 0x40048044) System PLL clock source update enable\r
520   __IO uint32_t USBPLLCLKSEL;               //!< (@ 0x40048048) USB PLL clock source select\r
521   __IO uint32_t USBPLLCLKUEN;               //!< (@ 0x4004804C) USB PLL clock source update enable\r
522   __I  uint32_t RESERVED3[8];\r
523   __IO uint32_t MAINCLKSEL;                 //!< (@ 0x40048070) Main clock source select\r
524   __IO uint32_t MAINCLKUEN;                 //!< (@ 0x40048074) Main clock source update enable\r
525   __IO uint32_t SYSAHBCLKDIV;               //!< (@ 0x40048078) System clock divider\r
526   __I  uint32_t RESERVED4[1];\r
527   __IO uint32_t SYSAHBCLKCTRL;              //!< (@ 0x40048080) System clock control\r
528   __I  uint32_t RESERVED5[4];\r
529   __IO uint32_t SSP0CLKDIV;                 //!< (@ 0x40048094) SSP0 clock divider\r
530   __IO uint32_t UARTCLKDIV;                 //!< (@ 0x40048098) UART clock divider\r
531   __IO uint32_t SSP1CLKDIV;                 //!< (@ 0x4004809C) SSP1 clock divider\r
532   __I  uint32_t RESERVED6[8];\r
533   __IO uint32_t USBCLKSEL;                  //!< (@ 0x400480C0) USB clock source select\r
534   __IO uint32_t USBCLKUEN;                  //!< (@ 0x400480C4) USB clock source update enable\r
535   __IO uint32_t USBCLKDIV;                  //!< (@ 0x400480C8) USB clock source divider\r
536   __I  uint32_t RESERVED7[5];\r
537   __IO uint32_t CLKOUTSEL;                  //!< (@ 0x400480E0) CLKOUT clock source select\r
538   __IO uint32_t CLKOUTUEN;                  //!< (@ 0x400480E4) CLKOUT clock source update enable\r
539   __IO uint32_t CLKOUTDIV;                  //!< (@ 0x400480E8) CLKOUT clock divider\r
540   __I  uint32_t RESERVED8[5];\r
541   __I  uint32_t PIOPORCAP0;                 //!< (@ 0x40048100) POR captured PIO status 0\r
542   __I  uint32_t PIOPORCAP1;                 //!< (@ 0x40048104) POR captured PIO status 1\r
543   __I  uint32_t RESERVED9[18];\r
544   __IO uint32_t BODCTRL;                    //!< (@ 0x40048150) Brown-Out Detect\r
545   __IO uint32_t SYSTCKCAL;                  //!< (@ 0x40048154) System tick counter calibration\r
546   __I  uint32_t RESERVED10[6];\r
547   __IO uint32_t IRQLATENCY;                 //!< (@ 0x40048170) IQR delay\r
548   __IO uint32_t NMISRC;                     //!< (@ 0x40048174) NMI Source Control\r
549   __IO uint32_t PINTSEL[8];                 //!< (@ 0x40048178) GPIO Pin Interrupt Select register 0\r
550   __IO uint32_t USBCLKCTRL;                 //!< (@ 0x40048198) USB clock control\r
551   __I  uint32_t USBCLKST;                   //!< (@ 0x4004819C) USB clock status\r
552   __I  uint32_t RESERVED11[25];\r
553   __IO uint32_t STARTERP0;                  //!< (@ 0x40048204) Start logic 0 interrupt wake-up enable register 0\r
554   __I  uint32_t RESERVED12[3];\r
555   __IO uint32_t STARTERP1;                  //!< (@ 0x40048214) Start logic 1 interrupt wake-up enable register 1\r
556   __I  uint32_t RESERVED13[6];\r
557   __IO uint32_t PDSLEEPCFG;                 //!< (@ 0x40048230) Power-down states in deep-sleep mode\r
558   __IO uint32_t PDAWAKECFG;                 //!< (@ 0x40048234) Power-down states for wake-up from deep-sleep\r
559   __IO uint32_t PDRUNCFG;                   //!< (@ 0x40048238) Power configuration register\r
560   __I  uint32_t RESERVED14[110];\r
561   __I  uint32_t DEVICE_ID;                  //!< (@ 0x400483F4) Device ID\r
562   */\r
563 } LPC_SYSCON_Type;\r
564 \r
565 \r
566 // ------------------------------------------------------------------------------------------------\r
567 // -----                                     GPIO_PIN_INT                                     -----\r
568 // ------------------------------------------------------------------------------------------------\r
569 \r
570 \r
571 /**\r
572   * @brief Product name title=UM10462 Chapter title=LPC11U1x GPIO Modification date=3/17/2011 Major revision=0 Minor revision=3  (GPIO_PIN_INT)\r
573   */\r
574 \r
575 typedef struct {                            /*!< (@ 0x4004C000) GPIO_PIN_INT Structure */\r
576   __IO uint32_t ISEL;                       /*!< (@ 0x4004C000) Pin Interrupt Mode register */\r
577   __IO uint32_t IENR;                       /*!< (@ 0x4004C004) Pin Interrupt Enable (Rising) register */\r
578   __IO uint32_t SIENR;                      /*!< (@ 0x4004C008) Set Pin Interrupt Enable (Rising) register */\r
579   __IO uint32_t CIENR;                      /*!< (@ 0x4004C00C) Clear Pin Interrupt Enable (Rising) register */\r
580   __IO uint32_t IENF;                       /*!< (@ 0x4004C010) Pin Interrupt Enable Falling Edge / Active Level register */\r
581   __IO uint32_t SIENF;                      /*!< (@ 0x4004C014) Set Pin Interrupt Enable Falling Edge / Active Level register */\r
582   __IO uint32_t CIENF;                      /*!< (@ 0x4004C018) Clear Pin Interrupt Enable Falling Edge / Active Level address */\r
583   __IO uint32_t RISE;                       /*!< (@ 0x4004C01C) Pin Interrupt Rising Edge register */\r
584   __IO uint32_t FALL;                       /*!< (@ 0x4004C020) Pin Interrupt Falling Edge register */\r
585   __IO uint32_t IST;                        /*!< (@ 0x4004C024) Pin Interrupt Status register */\r
586 } LPC_GPIO_PIN_INT_Type;\r
587 \r
588 \r
589 // ------------------------------------------------------------------------------------------------\r
590 // -----                                    GPIO_GROUP_INT0/1                                   -----\r
591 // ------------------------------------------------------------------------------------------------\r
592 \r
593 \r
594 /**\r
595   * @brief Product name title=UM10462 Chapter title=LPC11U1x GPIO Modification date=3/17/2011 Major revision=0 Minor revision=3  (GPIO_GROUP_INT0)\r
596   */\r
597 \r
598 typedef struct {                            /*!< (@ 0x4005C000) GPIO_GROUP_INT0 Structure */\r
599   __IO uint32_t CTRL;                       /*!< (@ 0x4005C000) GPIO grouped interrupt control register */\r
600   __I  uint32_t RESERVED0[7];\r
601   __IO uint32_t PORT_POL[2];                /*!< (@ 0x4005C020) GPIO grouped interrupt port 0 polarity register */\r
602   __I  uint32_t RESERVED1[6];\r
603   __IO uint32_t PORT_ENA[2];                /*!< (@ 0x4005C040) GPIO grouped interrupt port 0/1 enable register */\r
604 } LPC_GPIO_GROUP_INTx_Type;\r
605 \r
606 \r
607 \r
608 // ------------------------------------------------------------------------------------------------\r
609 // -----                                          USB                                         -----\r
610 // ------------------------------------------------------------------------------------------------\r
611 \r
612 \r
613 /**\r
614   * @brief Product name title=UM10462 Chapter title=LPC11U1x USB2.0device controller Modification date=3/16/2011 Major revision=0 Minor revision=3  (USB)\r
615   */\r
616 \r
617 typedef struct {                            /*!< (@ 0x40080000) USB Structure          */\r
618   __IO uint32_t DEVCMDSTAT;                 /*!< (@ 0x40080000) USB Device Command/Status register */\r
619   __IO uint32_t INFO;                       /*!< (@ 0x40080004) USB Info register      */\r
620   __IO uint32_t EPLISTSTART;                /*!< (@ 0x40080008) USB EP Command/Status List start address */\r
621   __IO uint32_t DATABUFSTART;               /*!< (@ 0x4008000C) USB Data buffer start address */\r
622   __IO uint32_t LPM;                        /*!< (@ 0x40080010) Link Power Management register */\r
623   __IO uint32_t EPSKIP;                     /*!< (@ 0x40080014) USB Endpoint skip      */\r
624   __IO uint32_t EPINUSE;                    /*!< (@ 0x40080018) USB Endpoint Buffer in use */\r
625   __IO uint32_t EPBUFCFG;                   /*!< (@ 0x4008001C) USB Endpoint Buffer Configuration register */\r
626   __IO uint32_t INTSTAT;                    /*!< (@ 0x40080020) USB interrupt status register */\r
627   __IO uint32_t INTEN;                      /*!< (@ 0x40080024) USB interrupt enable register */\r
628   __IO uint32_t INTSETSTAT;                 /*!< (@ 0x40080028) USB set interrupt status register */\r
629   __IO uint32_t INTROUTING;                 /*!< (@ 0x4008002C) USB interrupt routing register */\r
630   __I  uint32_t RESERVED0[1];\r
631   __I  uint32_t EPTOGGLE;                   /*!< (@ 0x40080034) USB Endpoint toggle register */\r
632 } LPC_USB_Type;\r
633 \r
634 \r
635 // ------------------------------------------------------------------------------------------------\r
636 // -----                                       GPIO_PORT                                      -----\r
637 // ------------------------------------------------------------------------------------------------\r
638 \r
639 \r
640 /**\r
641   * @brief Product name title=UM10462 Chapter title=LPC11U1x GPIO Modification date=3/17/2011 Major revision=0 Minor revision=3  (GPIO_PORT)\r
642   */\r
643 \r
644 typedef struct {                            \r
645   union {\r
646     struct {\r
647       __IO uint8_t B0[32];                       /*!< (@ 0x50000000) Byte pin registers port 0; pins PIO0_0 to PIO0_31 */\r
648       __IO uint8_t B1[32];                       /*!< (@ 0x50000020) Byte pin registers port 1 */\r
649     };\r
650     __IO uint8_t B[64];                       /*!< (@ 0x50000000) Byte pin registers port 0/1 */\r
651   };\r
652   __I  uint32_t RESERVED0[1008];\r
653   union {\r
654     struct {\r
655       __IO uint32_t W0[32];                      /*!< (@ 0x50001000) Word pin registers port 0 */\r
656       __IO uint32_t W1[32];                      /*!< (@ 0x50001080) Word pin registers port 1 */\r
657     };\r
658     __IO uint32_t W[64];                       /*!< (@ 0x50001000) Word pin registers port 0/1 */\r
659   };\r
660        uint32_t RESERVED1[960];\r
661   __IO uint32_t DIR[2];                 /* 0x2000 */\r
662        uint32_t RESERVED2[30];\r
663   __IO uint32_t MASK[2];                /* 0x2080 */\r
664        uint32_t RESERVED3[30];\r
665   __IO uint32_t PIN[2];                 /* 0x2100 */\r
666        uint32_t RESERVED4[30];\r
667   __IO uint32_t MPIN[2];                /* 0x2180 */\r
668        uint32_t RESERVED5[30];\r
669   __IO uint32_t SET[2];                 /* 0x2200 */\r
670        uint32_t RESERVED6[30];\r
671   __O  uint32_t CLR[2];                 /* 0x2280 */\r
672        uint32_t RESERVED7[30];\r
673   __O  uint32_t NOT[2];                 /* 0x2300 */\r
674 } LPC_GPIO_Type;\r
675 \r
676 \r
677 #if defined ( __CC_ARM   )\r
678   #pragma no_anon_unions\r
679 #endif\r
680 \r
681 \r
682 // ------------------------------------------------------------------------------------------------\r
683 // -----                                 Peripheral memory map                                -----\r
684 // ------------------------------------------------------------------------------------------------\r
685 \r
686 #define LPC_I2C_BASE              (0x40000000)\r
687 #define LPC_WWDT_BASE             (0x40004000)\r
688 #define LPC_USART_BASE            (0x40008000)\r
689 #define LPC_CT16B0_BASE           (0x4000C000)\r
690 #define LPC_CT16B1_BASE           (0x40010000)\r
691 #define LPC_CT32B0_BASE           (0x40014000)\r
692 #define LPC_CT32B1_BASE           (0x40018000)\r
693 #define LPC_ADC_BASE              (0x4001C000)\r
694 #define LPC_PMU_BASE              (0x40038000)\r
695 #define LPC_FLASHCTRL_BASE        (0x4003C000)\r
696 #define LPC_SSP0_BASE             (0x40040000)\r
697 #define LPC_SSP1_BASE             (0x40058000)\r
698 #define LPC_IOCON_BASE            (0x40044000)\r
699 #define LPC_SYSCON_BASE           (0x40048000)\r
700 #define LPC_GPIO_PIN_INT_BASE     (0x4004C000)\r
701 #define LPC_GPIO_GROUP_INT0_BASE  (0x4005C000)\r
702 #define LPC_GPIO_GROUP_INT1_BASE  (0x40060000)\r
703 #define LPC_USB_BASE              (0x40080000)\r
704 #define LPC_GPIO_BASE             (0x50000000)\r
705 \r
706 \r
707 // ------------------------------------------------------------------------------------------------\r
708 // -----                                Peripheral declaration                                -----\r
709 // ------------------------------------------------------------------------------------------------\r
710 \r
711 #define LPC_I2C                   ((LPC_I2C_Type            *) LPC_I2C_BASE)\r
712 #define LPC_WWDT                  ((LPC_WWDT_Type           *) LPC_WWDT_BASE)\r
713 #define LPC_USART                 ((LPC_USART_Type          *) LPC_USART_BASE)\r
714 #define LPC_CT16B0                ((LPC_CTxxBx_Type         *) LPC_CT16B0_BASE)\r
715 #define LPC_CT16B1                ((LPC_CTxxBx_Type         *) LPC_CT16B1_BASE)\r
716 #define LPC_CT32B0                ((LPC_CTxxBx_Type         *) LPC_CT32B0_BASE)\r
717 #define LPC_CT32B1                ((LPC_CTxxBx_Type         *) LPC_CT32B1_BASE)\r
718 #define LPC_ADC                   ((LPC_ADC_Type            *) LPC_ADC_BASE)\r
719 #define LPC_PMU                   ((LPC_PMU_Type            *) LPC_PMU_BASE)\r
720 #define LPC_FLASHCTRL             ((LPC_FLASHCTRL_Type      *) LPC_FLASHCTRL_BASE)\r
721 #define LPC_SSP0                  ((LPC_SSPx_Type           *) LPC_SSP0_BASE)\r
722 #define LPC_SSP1                  ((LPC_SSPx_Type           *) LPC_SSP1_BASE)\r
723 #define LPC_IOCON                 ((LPC_IOCON_Type          *) LPC_IOCON_BASE)\r
724 #define LPC_SYSCON                ((LPC_SYSCON_Type         *) LPC_SYSCON_BASE)\r
725 #define LPC_GPIO_PIN_INT          ((LPC_GPIO_PIN_INT_Type   *) LPC_GPIO_PIN_INT_BASE)\r
726 #define LPC_GPIO_GROUP_INT0       ((LPC_GPIO_GROUP_INTx_Type*) LPC_GPIO_GROUP_INT0_BASE)\r
727 #define LPC_GPIO_GROUP_INT1       ((LPC_GPIO_GROUP_INTx_Type*) LPC_GPIO_GROUP_INT1_BASE)\r
728 #define LPC_USB                   ((LPC_USB_Type            *) LPC_USB_BASE)\r
729 #define LPC_GPIO                  ((LPC_GPIO_Type           *) LPC_GPIO_BASE)\r
730 \r
731 \r
732 /** @} */ /* End of group Device_Peripheral_Registers */\r
733 /** @} */ /* End of group (null) */\r
734 /** @} */ /* End of group LPC11Uxx */\r
735 \r
736 #ifdef __cplusplus\r
737 }\r
738 #endif \r
739 \r
740 \r
741 #endif  // __LPC11UXX_H__\r