]> git.sur5r.net Git - freertos/blob - Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/LPC43xx.h
Add two Cortex-M4F demo applications.
[freertos] / Demo / CORTEX_M4F_M0_LPC43xx_Keil / system / LPC43xx.h
1  \r
2 /****************************************************************************************************//**\r
3  * @file     LPC43xx.h\r
4  *\r
5  * @status   EXPERIMENTAL\r
6  *\r
7  * @brief    CMSIS Cortex-M4 Core Peripheral Access Layer Header File for\r
8  *           default LPC43xx Device Series\r
9  *\r
10  * @version  V0.10\r
11  * @date     10. June 2011\r
12  *\r
13  * @note     Generated with SFDGen V2.6 Build 4f  on Friday, 10.06.2011 14:32:01\r
14  *\r
15  *\r
16  *******************************************************************************************************/\r
17 \r
18 \r
19 \r
20 /** @addtogroup (null)\r
21   * @{\r
22   */\r
23 \r
24 /** @addtogroup LPC43xx\r
25   * @{\r
26   */\r
27 \r
28 #ifndef __LPC43XX_H__\r
29 #define __LPC43XX_H__\r
30 \r
31 #ifdef __cplusplus\r
32 extern "C" {\r
33 #endif \r
34 \r
35 \r
36 #if defined ( __CC_ARM   )\r
37   #pragma anon_unions\r
38 #endif\r
39 \r
40  /* Interrupt Number Definition */\r
41 \r
42 #if defined CORE_M4\r
43 \r
44 typedef enum {\r
45 // -------------------------  Cortex-M4 Processor Exceptions Numbers  -----------------------------\r
46   Reset_IRQn                        = -15,  /*!<   1  Reset Vector, invoked on Power up and warm reset */\r
47   NonMaskableInt_IRQn               = -14,  /*!<   2  Non maskable Interrupt, cannot be stopped or preempted */\r
48   HardFault_IRQn                    = -13,  /*!<   3  Hard Fault, all classes of Fault */\r
49   MemoryManagement_IRQn             = -12,  /*!<   4  Memory Management, MPU mismatch, including Access Violation and No Match */\r
50   BusFault_IRQn                     = -11,  /*!<   5  Bus Fault, Pre-Fetch-, Memory Access Fault, other address/memory related Fault */\r
51   UsageFault_IRQn                   = -10,  /*!<   6  Usage Fault, i.e. Undef Instruction, Illegal State Transition */\r
52   SVCall_IRQn                       = -5,   /*!<  11  System Service Call via SVC instruction */\r
53   DebugMonitor_IRQn                 = -4,   /*!<  12  Debug Monitor                    */\r
54   PendSV_IRQn                       = -2,   /*!<  14  Pendable request for system service */\r
55   SysTick_IRQn                      = -1,   /*!<  15  System Tick Timer                */\r
56 // ---------------------------  LPC43xx Specific Interrupt Numbers  -------------------------------\r
57   DAC_IRQn                          = 0,    /*!<   0  DAC                              */\r
58   M0_IRQn                           = 1,    /*!<   1  M0                               */\r
59   DMA_IRQn                          = 2,    /*!<   2  DMA                              */\r
60   RESERVED0_IRQn                    = 3,    \r
61   RESERVED1_IRQn                    = 4,\r
62   ETH_IRQn                          = 5,    /*!<   5  ETHERNET                         */\r
63   SDIO_IRQn                         = 6,    /*!<   6  SDIO                             */\r
64   LCD_IRQn                          = 7,    /*!<   7  LCD                              */\r
65   USB0_IRQn                         = 8,    /*!<   8  USB0                             */\r
66   USB1_IRQn                         = 9,    /*!<   9  USB1                             */\r
67   SCT_IRQn                          = 10,   /*!<  10  SCT                              */\r
68   RITIMER_IRQn                      = 11,   /*!<  11  RITIMER                          */\r
69   TIMER0_IRQn                       = 12,   /*!<  12  TIMER0                           */\r
70   TIMER1_IRQn                       = 13,   /*!<  13  TIMER1_INT                       */\r
71   TIMER2_IRQn                       = 14,   /*!<  14  TIMER2_INT                       */\r
72   TIMER3_IRQn                       = 15,   /*!<  15  TIMER3_INT                       */\r
73   MCPWM_IRQn                        = 16,   /*!<  16  MCPWM                            */\r
74   ADC0_IRQn                         = 17,   /*!<  17  ADC0                             */\r
75   I2C0_IRQn                         = 18,   /*!<  18  I2C0                             */\r
76   I2C1_IRQn                         = 19,   /*!<  19  I2C1                             */\r
77   SPI_IRQn                          = 20,   /*!<  20  SPI                              */\r
78   ADC1_IRQn                         = 21,   /*!<  21  ADC1                             */\r
79   SSP0_IRQn                         = 22,   /*!<  22  SSP0                             */\r
80   SSP1_IRQn                         = 23,   /*!<  23  SSP1                             */\r
81   USART0_IRQn                       = 24,   /*!<  24  USART0                           */\r
82   UART1_IRQn                        = 25,   /*!<  25  UART1                            */\r
83   USART2_IRQn                       = 26,   /*!<  26  USART2                           */\r
84   USART3_IRQn                       = 27,   /*!<  27  USART3                           */\r
85   I2S0_IRQn                         = 28,   /*!<  28  I2S0                             */\r
86   I2S1_IRQn                         = 29,   /*!<  29  I2S1                             */\r
87   SPIFI_IRQn                        = 30,   /*!<  30  SPIFI                            */\r
88   SGPIO_IRQn                        = 31,   /*!<  31  SGPIO                            */\r
89   PIN_INT0_IRQn                     = 32,   /*!<  32  PIN_INT0                         */\r
90   PIN_INT1_IRQn                     = 33,   /*!<  33  PIN_INT1                         */\r
91   PIN_INT2_IRQn                     = 34,   /*!<  34  PIN_INT2                         */\r
92   PIN_INT3_IRQn                     = 35,   /*!<  35  PIN_INT3                         */\r
93   PIN_INT4_IRQn                     = 36,   /*!<  36  PIN_INT4                         */\r
94   PIN_INT5_IRQn                     = 37,   /*!<  37  PIN_INT5                         */\r
95   PIN_INT6_IRQn                     = 38,   /*!<  38  PIN_INT6                         */\r
96   PIN_INT7_IRQn                     = 39,   /*!<  39  PIN_INT7                         */\r
97   GINT0_IRQn                        = 40,   /*!<  40  GINT0                            */\r
98   GINT1_IRQn                        = 41,   /*!<  41  GINT1                            */\r
99   EVENTROUTER_INT_IRQn              = 42,   /*!<  42  EVENTROUTER_INT                  */\r
100   C_CAN1_IRQn                       = 43,   /*!<  43  C_CAN1                           */\r
101   RESERVED3_IRQn                    = 44,\r
102   VADC_IRQn                         = 45,   /*!<  45  VADC                             */\r
103   ATIMER_IRQn                       = 46,   /*!<  46  ATIMER                           */\r
104   RTC_IRQn                          = 47,   /*!<  47  RTC                              */\r
105   RESERVED4_IRQn                    = 48,\r
106   WWDT_IRQn                         = 49,   /*!<  49  WDT                              */\r
107   RESERVED5_IRQn                    = 50,   \r
108   C_CAN0_IRQn                       = 51,   /*!<  51  C_CAN0                           */\r
109   QEI_IRQn                          = 52,   /*!<  52  QEI                              */\r
110 } IRQn_Type;\r
111 \r
112 #endif\r
113 \r
114 #if defined CORE_M0\r
115 #include "LPC43xx_M0.h"\r
116 #endif\r
117 \r
118  /* Event Router Input (ERI) Number Definitions */\r
119 typedef enum {\r
120   WAKEUP0_ERIn                      = 0,\r
121   WAKEUP1_ERIn                      = 1,\r
122   WAKEUP2_ERIn                      = 2,\r
123   WAKEUP3_ERIn                      = 3,\r
124   ATIMER_ERIn                       = 4,\r
125   RTC_ERIn                          = 5,\r
126   BOD1_ERIn                         = 6,  /* Bod trip 1 */\r
127   WWDT_ERIn                         = 7,\r
128   ETH_ERIn                          = 8,\r
129   USB0_ERIn                         = 9,\r
130   USB1_ERIn                         = 10,\r
131   SDIO_ERIn                         = 11,\r
132   CAN_ERIn                          = 12, /* CAN0/1 or'ed */\r
133   TIM2_ERIn                         = 13,\r
134   TIM6_ERIn                         = 14,\r
135   QEI_ERIn                          = 15,\r
136   TIM14_ERIn                        = 16,\r
137   RESERVED1_ERI                     = 17, \r
138   M4_ERIn                           = 18, /* M4 */ \r
139   RESET_ERIn                        = 19,\r
140   BOD2_ERIn                         = 20, /* Bod trip 2 */\r
141   PMC_ERIn                          = 21, /* Vd1_rst_req */\r
142   REG_VD1_OK_ERIn                   = 22,\r
143   REG_VD2_OK_ERIn                   = 23,\r
144   REG_VD3_OK_ERIn                   = 24,\r
145   REG_VD8_OK_ERIn                   = 25\r
146 }ERIn_Type;\r
147 \r
148 \r
149 /** @addtogroup Configuration_of_CMSIS\r
150   * @{\r
151   */\r
152 \r
153 /* Processor and Core Peripheral Section */ \r
154 /* Configuration of the Cortex-M4 Processor and Core Peripherals */\r
155 \r
156 #if defined CORE_M0\r
157 #define __CM0_REV              0x0101       /*!< Cortex-M0 Core Revision               */\r
158 #define __MPU_PRESENT             0         /*!< MPU present or not                    */\r
159 #define __NVIC_PRIO_BITS          2         /*!< Number of Bits used for Priority Levels */\r
160 #define __Vendor_SysTickConfig    0         /*!< Set to 1 if different SysTick Config is used */\r
161 #endif\r
162 \r
163 #ifdef CORE_M4\r
164 #define __CM4_REV              0x0001       /*!< Cortex-M4 Core Revision               */\r
165 #define __MPU_PRESENT             0         /*!< MPU present or not                    */\r
166 #define __NVIC_PRIO_BITS          3         /*!< Number of Bits used for Priority Levels */\r
167 #define __Vendor_SysTickConfig    0         /*!< Set to 1 if different SysTick Config is used */\r
168 #endif\r
169 \r
170 /** @} */ /* End of group Configuration_of_CMSIS */\r
171 \r
172 #ifdef CORE_M0\r
173 #include "core_cm0.h"                       /*!< Cortex-M0 processor and core peripherals */\r
174 #include "system_LPC43xx_M0.h"             /*!< LPC43xx System                           */\r
175 #endif\r
176 \r
177 #ifdef CORE_M4\r
178 #include "core_cm4.h"                       /*!< Cortex-M4 processor and core peripherals */\r
179 #include "system_LPC43xx.h"                 /*!< LPC43xx System                        */\r
180 #endif\r
181 \r
182 /** @addtogroup Device_Peripheral_Registers\r
183   * @{\r
184   */\r
185 \r
186 \r
187 // ------------------------------------------------------------------------------------------------\r
188 // -----                                          SCT                                         -----\r
189 // ------------------------------------------------------------------------------------------------\r
190 \r
191 \r
192 /**\r
193   * @brief Product name title=UM10430 Chapter title=LPC43xx State Configurable Timer (SCT) Modification date=1/18/2011 Major revision=0 Minor revision=7  (SCT)\r
194   */\r
195 \r
196 #define CONFIG_SCT_nEV   (16)            /* Number of events */\r
197 #define CONFIG_SCT_nRG   (16)            /* Number of match/compare registers */\r
198 #define CONFIG_SCT_nOU   (16)            /* Number of outputs */\r
199 \r
200 typedef struct\r
201 {\r
202     __IO  uint32_t CONFIG;              /* 0x000 Configuration Register */\r
203     union {\r
204         __IO uint32_t CTRL_U;           /* 0x004 Control Register */\r
205         struct {\r
206             __IO uint16_t CTRL_L;       /* 0x004 low control register */\r
207             __IO uint16_t CTRL_H;       /* 0x006 high control register */\r
208         };\r
209     };\r
210     __IO uint16_t LIMIT_L;              /* 0x008 limit register for counter L */\r
211     __IO uint16_t LIMIT_H;              /* 0x00A limit register for counter H */\r
212     __IO uint16_t HALT_L;               /* 0x00C halt register for counter L */\r
213     __IO uint16_t HALT_H;               /* 0x00E halt register for counter H */\r
214     __IO uint16_t STOP_L;               /* 0x010 stop register for counter L */\r
215     __IO uint16_t STOP_H;               /* 0x012 stop register for counter H */\r
216     __IO uint16_t START_L;              /* 0x014 start register for counter L */\r
217     __IO uint16_t START_H;              /* 0x016 start register for counter H */\r
218          uint32_t RESERVED1[10];        /* 0x018-0x03C reserved */\r
219     union {\r
220         __IO uint32_t COUNT_U;          /* 0x040 counter register */\r
221         struct {\r
222             __IO uint16_t COUNT_L;      /* 0x040 counter register for counter L */\r
223             __IO uint16_t COUNT_H;      /* 0x042 counter register for counter H */\r
224         };\r
225     };\r
226     __IO uint16_t STATE_L;              /* 0x044 state register for counter L */\r
227     __IO uint16_t STATE_H;              /* 0x046 state register for counter H */\r
228     __I  uint32_t INPUT;                /* 0x048 input register */\r
229     __IO uint16_t REGMODE_L;            /* 0x04C match - capture registers mode register L */\r
230     __IO uint16_t REGMODE_H;            /* 0x04E match - capture registers mode register H */\r
231     __IO uint32_t OUTPUT;               /* 0x050 output register */\r
232     __IO uint32_t OUTPUTDIRCTRL;        /* 0x054 Output counter direction Control Register */\r
233     __IO uint32_t RES;                  /* 0x058 conflict resolution register */\r
234     __IO uint32_t DMA0REQUEST;          /* 0x05C DMA0 Request Register */\r
235     __IO uint32_t DMA1REQUEST;          /* 0x060 DMA1 Request Register */\r
236          uint32_t RESERVED2[35];        /* 0x064-0x0EC reserved */\r
237     __IO uint32_t EVEN;                 /* 0x0F0 event enable register */\r
238     __IO uint32_t EVFLAG;               /* 0x0F4 event flag register */\r
239     __IO uint32_t CONEN;                /* 0x0F8 conflict enable register */\r
240     __IO uint32_t CONFLAG;              /* 0x0FC conflict flag register */\r
241 \r
242     union {\r
243         __IO union {                    /* 0x100-... Match / Capture value */\r
244             uint32_t U;                 /*       SCTMATCH[i].U  Unified 32-bit register */\r
245             struct {\r
246                 uint16_t L;             /*       SCTMATCH[i].L  Access to L value */\r
247                 uint16_t H;             /*       SCTMATCH[i].H  Access to H value */\r
248             };\r
249         } MATCH[CONFIG_SCT_nRG];\r
250         __I union {\r
251             uint32_t U;                 /*       SCTCAP[i].U  Unified 32-bit register */\r
252             struct {\r
253                 uint16_t L;             /*       SCTCAP[i].L  Access to H value */\r
254                 uint16_t H;             /*       SCTCAP[i].H  Access to H value */\r
255             };\r
256         } CAP[CONFIG_SCT_nRG];\r
257     };\r
258 \r
259          uint32_t RESERVED3[32-CONFIG_SCT_nRG];      /* ...-0x17C reserved */\r
260 \r
261     union {\r
262         __IO uint16_t MATCH_L[CONFIG_SCT_nRG];       /* 0x180-... Match Value L counter */\r
263         __I  uint16_t CAP_L[CONFIG_SCT_nRG];         /* 0x180-... Capture Value L counter */\r
264     };\r
265          uint16_t RESERVED4[32-CONFIG_SCT_nRG];      /* ...-0x1BE reserved */\r
266     union {\r
267         __IO uint16_t MATCH_H[CONFIG_SCT_nRG];       /* 0x1C0-... Match Value H counter */\r
268         __I  uint16_t CAP_H[CONFIG_SCT_nRG];         /* 0x1C0-... Capture Value H counter */\r
269     };\r
270          uint16_t RESERVED5[32-CONFIG_SCT_nRG];      /* ...-0x1FE reserved */\r
271 \r
272     union {\r
273         __IO union {                    /* 0x200-... Match Reload / Capture Control value */\r
274             uint32_t U;                 /*       SCTMATCHREL[i].U  Unified 32-bit register */\r
275             struct {\r
276                 uint16_t L;             /*       SCTMATCHREL[i].L  Access to L value */\r
277                 uint16_t H;             /*       SCTMATCHREL[i].H  Access to H value */\r
278             };\r
279         } MATCHREL[CONFIG_SCT_nRG];\r
280         __IO union {\r
281             uint32_t U;                 /*       SCTCAPCTRL[i].U  Unified 32-bit register */\r
282             struct {\r
283                 uint16_t L;             /*       SCTCAPCTRL[i].L  Access to H value */\r
284                 uint16_t H;             /*       SCTCAPCTRL[i].H  Access to H value */\r
285             };\r
286         } CAPCTRL[CONFIG_SCT_nRG];\r
287     };\r
288 \r
289          uint32_t RESERVED6[32-CONFIG_SCT_nRG];      /* ...-0x27C reserved */\r
290 \r
291     union {\r
292         __IO uint16_t MATCHREL_L[CONFIG_SCT_nRG];    /* 0x280-... Match Reload value L counter */\r
293         __IO uint16_t CAPCTRL_L[CONFIG_SCT_nRG];     /* 0x280-... Capture Control value L counter */\r
294     };\r
295          uint16_t RESERVED7[32-CONFIG_SCT_nRG];      /* ...-0x2BE reserved */\r
296     union {\r
297         __IO uint16_t MATCHREL_H[CONFIG_SCT_nRG];    /* 0x2C0-... Match Reload value H counter */\r
298         __IO uint16_t CAPCTRL_H[CONFIG_SCT_nRG];     /* 0x2C0-... Capture Control value H counter */\r
299     };\r
300          uint16_t RESERVED8[32-CONFIG_SCT_nRG];      /* ...-0x2FE reserved */\r
301 \r
302     __IO struct {                       /* 0x300-0x3FC  SCTEVENT[i].STATE / SCTEVENT[i].CTRL*/\r
303         uint32_t STATE;                 /* Event State Register */\r
304         uint32_t CTRL;                  /* Event Control Register */\r
305     } EVENT[CONFIG_SCT_nEV];\r
306 \r
307          uint32_t RESERVED9[128-2*CONFIG_SCT_nEV];   /* ...-0x4FC reserved */\r
308 \r
309     __IO struct {                       /* 0x500-0x57C  SCTOUT[i].SET / SCTOUT[i].CLR */\r
310         uint32_t SET;                   /* Output n Set Register */\r
311         uint32_t CLR;                   /* Output n Clear Register */\r
312     } OUT[CONFIG_SCT_nOU];\r
313 \r
314          uint32_t RESERVED10[191-2*CONFIG_SCT_nOU];  /* ...-0x7F8 reserved */\r
315 \r
316     __I  uint32_t MODULECONTENT;        /* 0x7FC Module Content */\r
317 \r
318 } LPC_SCT_Type;\r
319 \r
320 // ------------------------------------------------------------------------------------------------\r
321 // -----                                         GPDMA                                        -----\r
322 // ------------------------------------------------------------------------------------------------\r
323 \r
324 \r
325 /**\r
326   * @brief Product name title=UM10430 Chapter title=LPC43xx General Purpose DMA (GPDMA) controller Modification date=1/19/2011 Major revision=0 Minor revision=7  (GPDMA)\r
327   */\r
328 \r
329 typedef struct {                            /*!< (@ 0x40002000) GPDMA Structure        */\r
330   __I  uint32_t INTSTAT;                    /*!< (@ 0x40002000) DMA Interrupt Status Register */\r
331   __I  uint32_t INTTCSTAT;                  /*!< (@ 0x40002004) DMA Interrupt Terminal Count Request Status Register */\r
332   __O  uint32_t INTTCCLEAR;                 /*!< (@ 0x40002008) DMA Interrupt Terminal Count Request Clear Register */\r
333   __I  uint32_t INTERRSTAT;                 /*!< (@ 0x4000200C) DMA Interrupt Error Status Register */\r
334   __O  uint32_t INTERRCLR;                  /*!< (@ 0x40002010) DMA Interrupt Error Clear Register */\r
335   __I  uint32_t RAWINTTCSTAT;               /*!< (@ 0x40002014) DMA Raw Interrupt Terminal Count Status Register */\r
336   __I  uint32_t RAWINTERRSTAT;              /*!< (@ 0x40002018) DMA Raw Error Interrupt Status Register */\r
337   __I  uint32_t ENBLDCHNS;                  /*!< (@ 0x4000201C) DMA Enabled Channel Register */\r
338   __IO uint32_t SOFTBREQ;                   /*!< (@ 0x40002020) DMA Software Burst Request Register */\r
339   __IO uint32_t SOFTSREQ;                   /*!< (@ 0x40002024) DMA Software Single Request Register */\r
340   __IO uint32_t SOFTLBREQ;                  /*!< (@ 0x40002028) DMA Software Last Burst Request Register */\r
341   __IO uint32_t SOFTLSREQ;                  /*!< (@ 0x4000202C) DMA Software Last Single Request Register */\r
342   __IO uint32_t CONFIG;                     /*!< (@ 0x40002030) DMA Configuration Register */\r
343   __IO uint32_t SYNC;                       /*!< (@ 0x40002034) DMA Synchronization Register */\r
344   __I  uint32_t RESERVED0[50];\r
345   __IO uint32_t C0SRCADDR;                  /*!< (@ 0x40002100) DMA Channel Source Address Register */\r
346   __IO uint32_t C0DESTADDR;                 /*!< (@ 0x40002104) DMA Channel Destination Address Register */\r
347   __IO uint32_t C0LLI;                      /*!< (@ 0x40002108) DMA Channel Linked List Item Register */\r
348   __IO uint32_t C0CONTROL;                  /*!< (@ 0x4000210C) DMA Channel Control Register */\r
349   __IO uint32_t C0CONFIG;                   /*!< (@ 0x40002110) DMA Channel Configuration Register */\r
350   __I  uint32_t RESERVED1[3];\r
351   __IO uint32_t C1SRCADDR;                  /*!< (@ 0x40002120) DMA Channel Source Address Register */\r
352   __IO uint32_t C1DESTADDR;                 /*!< (@ 0x40002124) DMA Channel Destination Address Register */\r
353   __IO uint32_t C1LLI;                      /*!< (@ 0x40002128) DMA Channel Linked List Item Register */\r
354   __IO uint32_t C1CONTROL;                  /*!< (@ 0x4000212C) DMA Channel Control Register */\r
355   __IO uint32_t C1CONFIG;                   /*!< (@ 0x40002130) DMA Channel Configuration Register */\r
356   __I  uint32_t RESERVED2[3];\r
357   __IO uint32_t C2SRCADDR;                  /*!< (@ 0x40002140) DMA Channel Source Address Register */\r
358   __IO uint32_t C2DESTADDR;                 /*!< (@ 0x40002144) DMA Channel Destination Address Register */\r
359   __IO uint32_t C2LLI;                      /*!< (@ 0x40002148) DMA Channel Linked List Item Register */\r
360   __IO uint32_t C2CONTROL;                  /*!< (@ 0x4000214C) DMA Channel Control Register */\r
361   __IO uint32_t C2CONFIG;                   /*!< (@ 0x40002150) DMA Channel Configuration Register */\r
362   __I  uint32_t RESERVED3[3];\r
363   __IO uint32_t C3SRCADDR;                  /*!< (@ 0x40002160) DMA Channel Source Address Register */\r
364   __IO uint32_t C3DESTADDR;                 /*!< (@ 0x40002164) DMA Channel Destination Address Register */\r
365   __IO uint32_t C3LLI;                      /*!< (@ 0x40002168) DMA Channel Linked List Item Register */\r
366   __IO uint32_t C3CONTROL;                  /*!< (@ 0x4000216C) DMA Channel Control Register */\r
367   __IO uint32_t C3CONFIG;                   /*!< (@ 0x40002170) DMA Channel Configuration Register */\r
368   __I  uint32_t RESERVED4[3];\r
369   __IO uint32_t C4SRCADDR;                  /*!< (@ 0x40002180) DMA Channel Source Address Register */\r
370   __IO uint32_t C4DESTADDR;                 /*!< (@ 0x40002184) DMA Channel Destination Address Register */\r
371   __IO uint32_t C4LLI;                      /*!< (@ 0x40002188) DMA Channel Linked List Item Register */\r
372   __IO uint32_t C4CONTROL;                  /*!< (@ 0x4000218C) DMA Channel Control Register */\r
373   __IO uint32_t C4CONFIG;                   /*!< (@ 0x40002190) DMA Channel Configuration Register */\r
374   __I  uint32_t RESERVED5[3];\r
375   __IO uint32_t C5SRCADDR;                  /*!< (@ 0x400021A0) DMA Channel Source Address Register */\r
376   __IO uint32_t C5DESTADDR;                 /*!< (@ 0x400021A4) DMA Channel Destination Address Register */\r
377   __IO uint32_t C5LLI;                      /*!< (@ 0x400021A8) DMA Channel Linked List Item Register */\r
378   __IO uint32_t C5CONTROL;                  /*!< (@ 0x400021AC) DMA Channel Control Register */\r
379   __IO uint32_t C5CONFIG;                   /*!< (@ 0x400021B0) DMA Channel Configuration Register */\r
380   __I  uint32_t RESERVED6[3];\r
381   __IO uint32_t C6SRCADDR;                  /*!< (@ 0x400021C0) DMA Channel Source Address Register */\r
382   __IO uint32_t C6DESTADDR;                 /*!< (@ 0x400021C4) DMA Channel Destination Address Register */\r
383   __IO uint32_t C6LLI;                      /*!< (@ 0x400021C8) DMA Channel Linked List Item Register */\r
384   __IO uint32_t C6CONTROL;                  /*!< (@ 0x400021CC) DMA Channel Control Register */\r
385   __IO uint32_t C6CONFIG;                   /*!< (@ 0x400021D0) DMA Channel Configuration Register */\r
386   __I  uint32_t RESERVED7[3];\r
387   __IO uint32_t C7SRCADDR;                  /*!< (@ 0x400021E0) DMA Channel Source Address Register */\r
388   __IO uint32_t C7DESTADDR;                 /*!< (@ 0x400021E4) DMA Channel Destination Address Register */\r
389   __IO uint32_t C7LLI;                      /*!< (@ 0x400021E8) DMA Channel Linked List Item Register */\r
390   __IO uint32_t C7CONTROL;                  /*!< (@ 0x400021EC) DMA Channel Control Register */\r
391   __IO uint32_t C7CONFIG;                   /*!< (@ 0x400021F0) DMA Channel Configuration Register */\r
392 } LPC_GPDMA_Type;\r
393 \r
394 \r
395 // ------------------------------------------------------------------------------------------------\r
396 // -----                                         SPIFI                                        -----\r
397 // ------------------------------------------------------------------------------------------------\r
398 \r
399 \r
400 /**\r
401   * @brief Product name title=UM10430 Chapter title=LPC43xx SPI Flash Interface (SPIFI) Modification date=1/19/2011 Major revision=0 Minor revision=7  (SPIFI)\r
402   */\r
403 \r
404 typedef struct {                            /*!< (@ 0x40003000) SPIFI Structure        */\r
405   __IO uint32_t CTRL;                       /*!< (@ 0x40003000) SPIFI control register */\r
406   __IO uint32_t CMD;                        /*!< (@ 0x40003004) SPIFI command register */\r
407   __IO uint32_t ADDR;                       /*!< (@ 0x40003008) SPIFI address register */\r
408   __IO uint32_t DATINTM;                    /*!< (@ 0x4000300C) SPIFI intermediate data register */\r
409   __IO uint32_t ADDRINTM;                   /*!< (@ 0x40003010) SPIFI address and intermediate data register */\r
410   __IO uint32_t DAT;                        /*!< (@ 0x40003014) SPIFI data register    */\r
411   __IO uint32_t MEMCMD;                     /*!< (@ 0x40003018) SPIFI memory command register */\r
412   __I  uint32_t STAT;                       /*!< (@ 0x4000301C) SPIFI status register  */\r
413 } LPC_SPIFI_Type;\r
414 \r
415 \r
416 // ------------------------------------------------------------------------------------------------\r
417 // -----                                         SDMMC                                        -----\r
418 // ------------------------------------------------------------------------------------------------\r
419 \r
420 \r
421 /**\r
422   * @brief Product name title=UM10462 Chapter title=LPC43xx SD/MMC Modification date=n/a Major revision=n/a Minor revision=n/a  (SDMMC)\r
423   */\r
424 \r
425 typedef struct {                            /*!< (@ 0x40004000) SDMMC Structure        */\r
426   __IO uint32_t CTRL;                       /*!< (@ 0x40004000) Control Register       */\r
427   __IO uint32_t PWREN;                      /*!< (@ 0x40004004) Power Enable Register  */\r
428   __IO uint32_t CLKDIV;                     /*!< (@ 0x40004008) Clock Divider Register */\r
429   __IO uint32_t CLKSRC;                     /*!< (@ 0x4000400C) SD Clock Source Register */\r
430   __IO uint32_t CLKENA;                     /*!< (@ 0x40004010) Clock Enable Register  */\r
431   __IO uint32_t TMOUT;                      /*!< (@ 0x40004014) Timeout Register       */\r
432   __IO uint32_t CTYPE;                      /*!< (@ 0x40004018) Card Type Register     */\r
433   __IO uint32_t BLKSIZ;                     /*!< (@ 0x4000401C) Block Size Register    */\r
434   __IO uint32_t BYTCNT;                     /*!< (@ 0x40004020) Byte Count Register    */\r
435   __IO uint32_t INTMASK;                    /*!< (@ 0x40004024) Interrupt Mask Register */\r
436   __IO uint32_t CMDARG;                     /*!< (@ 0x40004028) Command Argument Register */\r
437   __IO uint32_t CMD;                        /*!< (@ 0x4000402C) Command Register       */\r
438   __I  uint32_t RESP0;                      /*!< (@ 0x40004030) Response Register 0    */\r
439   __I  uint32_t RESP1;                      /*!< (@ 0x40004034) Response Register 1    */\r
440   __I  uint32_t RESP2;                      /*!< (@ 0x40004038) Response Register 2    */\r
441   __I  uint32_t RESP3;                      /*!< (@ 0x4000403C) Response Register 3    */\r
442   __I  uint32_t MINTSTS;                    /*!< (@ 0x40004040) Masked Interrupt Status Register */\r
443   __IO uint32_t RINTSTS;                    /*!< (@ 0x40004044) Raw Interrupt Status Register */\r
444   __I  uint32_t STATUS;                     /*!< (@ 0x40004048) Status Register        */\r
445   __IO uint32_t FIFOTH;                     /*!< (@ 0x4000404C) FIFO Threshold Watermark Register */\r
446   __I  uint32_t CDETECT;                    /*!< (@ 0x40004050) Card Detect Register   */\r
447   __I  uint32_t WRTPRT;                     /*!< (@ 0x40004054) Write Protect Register */\r
448   __IO uint32_t GPIO;                       /*!< (@ 0x40004058) General Purpose Input/Output Register */\r
449   __I  uint32_t TCBCNT;                     /*!< (@ 0x4000405C) Transferred CIU Card Byte Count Register */\r
450   __I  uint32_t TBBCNT;                     /*!< (@ 0x40004060) Transferred Host to BIU-FIFO Byte Count Register */\r
451   __IO uint32_t DEBNCE;                     /*!< (@ 0x40004064) Debounce Count Register */\r
452   __IO uint32_t USRID;                      /*!< (@ 0x40004068) User ID Register       */\r
453   __I  uint32_t VERID;                      /*!< (@ 0x4000406C) Version ID Register    */\r
454   __I  uint32_t RESERVED0;\r
455   __IO uint32_t UHS_REG;                    /*!< (@ 0x40004074) UHS-1 Register         */\r
456   __IO uint32_t RST_N;                      /*!< (@ 0x40004078) Hardware Reset         */\r
457   __I  uint32_t RESERVED1;\r
458   __IO uint32_t BMOD;                       /*!< (@ 0x40004080) Bus Mode Register      */\r
459   __O  uint32_t PLDMND;                     /*!< (@ 0x40004084) Poll Demand Register   */\r
460   __IO uint32_t DBADDR;                     /*!< (@ 0x40004088) Descriptor List Base Address Register */\r
461   __IO uint32_t IDSTS;                      /*!< (@ 0x4000408C) Internal DMAC Status Register */\r
462   __IO uint32_t IDINTEN;                    /*!< (@ 0x40004090) Internal DMAC Interrupt Enable Register */\r
463   __I  uint32_t DSCADDR;                    /*!< (@ 0x40004094) Current Host Descriptor Address Register */\r
464   __I  uint32_t BUFADDR;                    /*!< (@ 0x40004098) Current Buffer Descriptor Address Register */\r
465 } LPC_SDMMC_Type;\r
466 \r
467 \r
468 // ------------------------------------------------------------------------------------------------\r
469 // -----                                          EMC                                         -----\r
470 // ------------------------------------------------------------------------------------------------\r
471 \r
472 \r
473 /**\r
474   * @brief Product name title=UM10430 Chapter title=LPC43xx External Memory Controller (EMC) Modification date=1/19/2011 Major revision=0 Minor revision=7  (EMC)\r
475   */\r
476 \r
477 typedef struct {                            /*!< (@ 0x40005000) EMC Structure          */\r
478   __IO uint32_t CONTROL;                    /*!< (@ 0x40005000) Controls operation of the memory controller. */\r
479   __I  uint32_t STATUS;                     /*!< (@ 0x40005004) Provides EMC status information. */\r
480   __IO uint32_t CONFIG;                     /*!< (@ 0x40005008) Configures operation of the memory controller. */\r
481   __I  uint32_t RESERVED0[5];\r
482   __IO uint32_t DYNAMICCONTROL;             /*!< (@ 0x40005020) Controls dynamic memory operation. */\r
483   __IO uint32_t DYNAMICREFRESH;             /*!< (@ 0x40005024) Configures dynamic memory refresh operation. */\r
484   __IO uint32_t DYNAMICREADCONFIG;          /*!< (@ 0x40005028) Configures the dynamic memory read strategy. */\r
485   __I  uint32_t RESERVED1;\r
486   __IO uint32_t DYNAMICRP;                  /*!< (@ 0x40005030) Selects the precharge command period. */\r
487   __IO uint32_t DYNAMICRAS;                 /*!< (@ 0x40005034) Selects the active to precharge command period. */\r
488   __IO uint32_t DYNAMICSREX;                /*!< (@ 0x40005038) Selects the self-refresh exit time. */\r
489   __IO uint32_t DYNAMICAPR;                 /*!< (@ 0x4000503C) Selects the last-data-out to active command time. */\r
490   __IO uint32_t DYNAMICDAL;                 /*!< (@ 0x40005040) Selects the data-in to active command time. */\r
491   __IO uint32_t DYNAMICWR;                  /*!< (@ 0x40005044) Selects the write recovery time. */\r
492   __IO uint32_t DYNAMICRC;                  /*!< (@ 0x40005048) Selects the active to active command period. */\r
493   __IO uint32_t DYNAMICRFC;                 /*!< (@ 0x4000504C) Selects the auto-refresh period. */\r
494   __IO uint32_t DYNAMICXSR;                 /*!< (@ 0x40005050) Selects the exit self-refresh to active command time. */\r
495   __IO uint32_t DYNAMICRRD;                 /*!< (@ 0x40005054) Selects the active bank A to active bank B latency. */\r
496   __IO uint32_t DYNAMICMRD;                 /*!< (@ 0x40005058) Selects the load mode register to active command time. */\r
497   __I  uint32_t RESERVED2[9];\r
498   __IO uint32_t STATICEXTENDEDWAIT;         /*!< (@ 0x40005080) Selects time for long static memory read and write transfers. */\r
499   __I  uint32_t RESERVED3[31];\r
500   __IO uint32_t DYNAMICCONFIG0;             /*!< (@ 0x40005100) Selects the configuration information for dynamic memory chip select n. */\r
501   __IO uint32_t DYNAMICRASCAS0;             /*!< (@ 0x40005104) Selects the RAS and CAS latencies for dynamic memory chip select n. */\r
502   __I  uint32_t RESERVED4[6];\r
503   __IO uint32_t DYNAMICCONFIG1;             /*!< (@ 0x40005120) Selects the configuration information for dynamic memory chip select n. */\r
504   __IO uint32_t DYNAMICRASCAS1;             /*!< (@ 0x40005124) Selects the RAS and CAS latencies for dynamic memory chip select n. */\r
505   __I  uint32_t RESERVED5[6];\r
506   __IO uint32_t DYNAMICCONFIG2;             /*!< (@ 0x40005140) Selects the configuration information for dynamic memory chip select n. */\r
507   __IO uint32_t DYNAMICRASCAS2;             /*!< (@ 0x40005144) Selects the RAS and CAS latencies for dynamic memory chip select n. */\r
508   __I  uint32_t RESERVED6[6];\r
509   __IO uint32_t DYNAMICCONFIG3;             /*!< (@ 0x40005160) Selects the configuration information for dynamic memory chip select n. */\r
510   __IO uint32_t DYNAMICRASCAS3;             /*!< (@ 0x40005164) Selects the RAS and CAS latencies for dynamic memory chip select n. */\r
511   __I  uint32_t RESERVED7[38];\r
512   __IO uint32_t STATICCONFIG0;              /*!< (@ 0x40005200) Selects the memory configuration for static chip select n. */\r
513   __IO uint32_t STATICWAITWEN0;             /*!< (@ 0x40005204) Selects the delay from chip select n to write enable. */\r
514   __IO uint32_t STATICWAITOEN0;             /*!< (@ 0x40005208) Selects the delay from chip select n or address change, whichever is later, to output enable. */\r
515   __IO uint32_t STATICWAITRD0;              /*!< (@ 0x4000520C) Selects the delay from chip select n to a read access. */\r
516   __IO uint32_t STATICWAITPAG0;             /*!< (@ 0x40005210) Selects the delay for asynchronous page mode sequential accesses for chip select n. */\r
517   __IO uint32_t STATICWAITWR0;              /*!< (@ 0x40005214) Selects the delay from chip select n to a write access. */\r
518   __IO uint32_t STATICWAITTURN0;            /*!< (@ 0x40005218) Selects bus turnaround cycles */\r
519   __I  uint32_t RESERVED8[1];\r
520   __IO uint32_t STATICCONFIG1;              /*!< (@ 0x40005220) Selects the memory configuration for static chip select n. */\r
521   __IO uint32_t STATICWAITWEN1;             /*!< (@ 0x40005224) Selects the delay from chip select n to write enable. */\r
522   __IO uint32_t STATICWAITOEN1;             /*!< (@ 0x40005228) Selects the delay from chip select n or address change, whichever is later, to output enable. */\r
523   __IO uint32_t STATICWAITRD1;              /*!< (@ 0x4000522C) Selects the delay from chip select n to a read access. */\r
524   __IO uint32_t STATICWAITPAG1;             /*!< (@ 0x40005230) Selects the delay for asynchronous page mode sequential accesses for chip select n. */\r
525   __IO uint32_t STATICWAITWR1;              /*!< (@ 0x40005234) Selects the delay from chip select n to a write access. */\r
526   __I  uint32_t STATICWAITTURN1;            /*!< (@ 0x40005238) read-write             */\r
527   __I  uint32_t RESERVED9[1];\r
528   __IO uint32_t STATICCONFIG2;              /*!< (@ 0x40005240) Selects the memory configuration for static chip select n. */\r
529   __IO uint32_t STATICWAITWEN2;             /*!< (@ 0x40005244) Selects the delay from chip select n to write enable. */\r
530   __IO uint32_t STATICWAITOEN2;             /*!< (@ 0x40005248) Selects the delay from chip select n or address change, whichever is later, to output enable. */\r
531   __IO uint32_t STATICWAITRD2;              /*!< (@ 0x4000524C) Selects the delay from chip select n to a read access. */\r
532   __IO uint32_t STATICWAITPAG2;             /*!< (@ 0x40005250) Selects the delay for asynchronous page mode sequential accesses for chip select n. */\r
533   __IO uint32_t STATICWAITWR2;              /*!< (@ 0x40005254) Selects the delay from chip select n to a write access. */\r
534   __I  uint32_t STATICWAITTURN2;            /*!< (@ 0x40005258) read-write             */\r
535   __I  uint32_t RESERVED10[1];\r
536   __IO uint32_t STATICCONFIG3;              /*!< (@ 0x40005260) Selects the memory configuration for static chip select n. */\r
537   __IO uint32_t STATICWAITWEN3;             /*!< (@ 0x40005264) Selects the delay from chip select n to write enable. */\r
538   __IO uint32_t STATICWAITOEN3;             /*!< (@ 0x40005268) Selects the delay from chip select n or address change, whichever is later, to output enable. */\r
539   __IO uint32_t STATICWAITRD3;              /*!< (@ 0x4000526C) Selects the delay from chip select n to a read access. */\r
540   __IO uint32_t STATICWAITPAG3;             /*!< (@ 0x40005270) Selects the delay for asynchronous page mode sequential accesses for chip select n. */\r
541   __IO uint32_t STATICWAITWR3;              /*!< (@ 0x40005274) Selects the delay from chip select n to a write access. */\r
542   __I  uint32_t STATICWAITTURN3;            /*!< (@ 0x40005278) read-write             */\r
543 } LPC_EMC_Type;\r
544 \r
545 \r
546 // ------------------------------------------------------------------------------------------------\r
547 // -----                                         USB0                                         -----\r
548 // ------------------------------------------------------------------------------------------------\r
549 \r
550 \r
551 /**\r
552   * @brief Product name title=UM10430 Chapter title=LPC43xx USB0 Host/Device/OTG controller Modification date=1/19/2011 Major revision=0 Minor revision=7  (USB0)\r
553   */\r
554 \r
555 typedef struct {                            /*!< (@ 0x40006000) USB0 Structure         */\r
556   __I  uint32_t RESERVED0[64];\r
557   __I  uint32_t CAPLENGTH;                  /*!< (@ 0x40006100) Capability register length */\r
558   __I  uint32_t HCSPARAMS;                  /*!< (@ 0x40006104) Host controller structural parameters */\r
559   __I  uint32_t HCCPARAMS;                  /*!< (@ 0x40006108) Host controller capability parameters */\r
560   __I  uint32_t RESERVED1[5];\r
561   __I  uint32_t DCIVERSION;                 /*!< (@ 0x40006120) Device interface version number */\r
562   __I  uint32_t RESERVED2[7];\r
563   \r
564   union {\r
565     __IO uint32_t USBCMD_H;                 /*!< (@ 0x40006140) USB command (host mode) */\r
566     __IO uint32_t USBCMD_D;                 /*!< (@ 0x40006140) USB command (device mode) */\r
567   };\r
568   \r
569   union {\r
570     __IO uint32_t USBSTS_H;                 /*!< (@ 0x40006144) USB status (host mode) */\r
571     __IO uint32_t USBSTS_D;                 /*!< (@ 0x40006144) USB status (device mode) */\r
572   };\r
573   \r
574   union {\r
575     __IO uint32_t USBINTR_H;                /*!< (@ 0x40006148) USB interrupt enable (host mode) */\r
576     __IO uint32_t USBINTR_D;                /*!< (@ 0x40006148) USB interrupt enable (device mode) */\r
577   };\r
578   \r
579   union {\r
580     __IO uint32_t FRINDEX_H;                /*!< (@ 0x4000614C) USB frame index (host mode) */\r
581     __IO uint32_t FRINDEX_D;                /*!< (@ 0x4000614C) USB frame index (device mode) */\r
582   };\r
583   __I  uint32_t RESERVED3;\r
584   \r
585   union {\r
586     __IO uint32_t PERIODICLISTBASE;         /*!< (@ 0x40006154) Frame list base address (host mode) */\r
587     __IO uint32_t DEVICEADDR;               /*!< (@ 0x40006154) USB device address (device mode) */\r
588   };\r
589   \r
590   union {\r
591     __IO uint32_t ASYNCLISTADDR;            /*!< (@ 0x40006158) Address of endpoint list in memory */\r
592     __IO uint32_t ENDPOINTLISTADDR;         /*!< (@ 0x40006158) Address of endpoint list in memory */\r
593   };\r
594   __IO uint32_t TTCTRL;                     /*!< (@ 0x4000615C) Asynchronous buffer status for embedded TT (host mode) */\r
595   __IO uint32_t BURSTSIZE;                  /*!< (@ 0x40006160) Programmable burst size */\r
596   __IO uint32_t TXFILLTUNING;               /*!< (@ 0x40006164) Host transmit pre-buffer packet tuning (host mode) */\r
597   __I  uint32_t RESERVED4[3];\r
598   __IO uint32_t BINTERVAL;                  /*!< (@ 0x40006174) Length of virtual frame */\r
599   __IO uint32_t ENDPTNAK;                   /*!< (@ 0x40006178) Endpoint NAK (device mode) */\r
600   __IO uint32_t ENDPTNAKEN;                 /*!< (@ 0x4000617C) Endpoint NAK Enable (device mode) */\r
601   __I  uint32_t RESERVED5;\r
602   \r
603   union {\r
604     __IO uint32_t PORTSC1_H;                /*!< (@ 0x40006184) Port 1 status/control (host mode) */\r
605     __IO uint32_t PORTSC1_D;                /*!< (@ 0x40006184) Port 1 status/control (device mode) */\r
606   };\r
607   __I  uint32_t RESERVED6[7];\r
608   __IO uint32_t OTGSC;                      /*!< (@ 0x400061A4) OTG status and control */\r
609   \r
610   union {\r
611     __IO uint32_t USBMODE_H;                /*!< (@ 0x400061A8) USB mode (host mode)   */\r
612     __IO uint32_t USBMODE_D;                /*!< (@ 0x400061A8) USB device mode (device mode) */\r
613   };\r
614   __IO uint32_t ENDPTSETUPSTAT;             /*!< (@ 0x400061AC) Endpoint setup status  */\r
615   __IO uint32_t ENDPTPRIME;                 /*!< (@ 0x400061B0) Endpoint initialization */\r
616   __IO uint32_t ENDPTFLUSH;                 /*!< (@ 0x400061B4) Endpoint de-initialization */\r
617   __I  uint32_t ENDPTSTAT;                  /*!< (@ 0x400061B8) Endpoint status        */\r
618   __IO uint32_t ENDPTCOMPLETE;              /*!< (@ 0x400061BC) Endpoint complete      */\r
619   __IO uint32_t ENDPTCTRL0;                 /*!< (@ 0x400061C0) Endpoint control 0     */\r
620   __IO uint32_t ENDPTCTRL[5];               /*!< (@ 0x400061C4) Endpoint control       */\r
621 } LPC_USB0_Type;\r
622 \r
623 \r
624 // ------------------------------------------------------------------------------------------------\r
625 // -----                                         USB1                                         -----\r
626 // ------------------------------------------------------------------------------------------------\r
627 \r
628 \r
629 /**\r
630   * @brief Product name title=UM10430 Chapter title=LPC43xx USB1 Host/Device controller Modification date=1/19/2011 Major revision=0 Minor revision=7  (USB1)\r
631   */\r
632 \r
633 typedef struct {                            /*!< (@ 0x40007000) USB1 Structure         */\r
634   __I  uint32_t RESERVED0[64];\r
635   __I  uint32_t CAPLENGTH;                  /*!< (@ 0x40007100) Capability register length */\r
636   __I  uint32_t HCSPARAMS;                  /*!< (@ 0x40007104) Host controller structural parameters */\r
637   __I  uint32_t HCCPARAMS;                  /*!< (@ 0x40007108) Host controller capability parameters */\r
638   __I  uint32_t RESERVED1[5];\r
639   __I  uint32_t DCIVERSION;                 /*!< (@ 0x40007120) Device interface version number */\r
640   __I  uint32_t RESERVED2[7];\r
641   \r
642   union {\r
643     __IO uint32_t USBCMD_H;                 /*!< (@ 0x40007140) USB command (host mode) */\r
644     __IO uint32_t USBCMD_D;                 /*!< (@ 0x40007140) USB command (device mode) */\r
645   };\r
646   \r
647   union {\r
648     __IO uint32_t USBSTS_H;                 /*!< (@ 0x40007144) USB status (host mode) */\r
649     __IO uint32_t USBSTS_D;                 /*!< (@ 0x40007144) USB status (device mode) */\r
650   };\r
651   \r
652   union {\r
653     __IO uint32_t USBINTR_H;                /*!< (@ 0x40007148) USB interrupt enable (host mode) */\r
654     __IO uint32_t USBINTR_D;                /*!< (@ 0x40007148) USB interrupt enable (device mode) */\r
655   };\r
656   \r
657   union {\r
658     __IO uint32_t FRINDEX_H;                /*!< (@ 0x4000714C) USB frame index (host mode) */\r
659     __I  uint32_t FRINDEX_D;                /*!< (@ 0x4000714C) USB frame index (device mode) */\r
660   };\r
661   __I  uint32_t RESERVED3;\r
662   \r
663   union {\r
664     __IO uint32_t PERIODICLISTBASE;         /*!< (@ 0x40007154) Frame list base address */\r
665     __IO uint32_t DEVICEADDR;               /*!< (@ 0x40007154) USB device address     */\r
666   };\r
667   \r
668   union {\r
669     __IO uint32_t ASYNCLISTADDR;            /*!< (@ 0x40007158) Address of endpoint list in memory (host mode) */\r
670     __IO uint32_t ENDPOINTLISTADDR;         /*!< (@ 0x40007158) Address of endpoint list in memory (device mode) */\r
671   };\r
672   __IO uint32_t TTCTRL;                     /*!< (@ 0x4000715C) Asynchronous buffer status for embedded TT (host mode) */\r
673   __IO uint32_t BURSTSIZE;                  /*!< (@ 0x40007160) Programmable burst size */\r
674   __IO uint32_t TXFILLTUNING;               /*!< (@ 0x40007164) Host transmit pre-buffer packet tuning (host mode) */\r
675   __I  uint32_t RESERVED4[2];\r
676   __IO uint32_t ULPIVIEWPORT;               /*!< (@ 0x40007170) ULPI viewport          */\r
677   __IO uint32_t BINTERVAL;                  /*!< (@ 0x40007174) Length of virtual frame */\r
678   __IO uint32_t ENDPTNAK;                   /*!< (@ 0x40007178) Endpoint NAK (device mode) */\r
679   __IO uint32_t ENDPTNAKEN;                 /*!< (@ 0x4000717C) Endpoint NAK Enable (device mode) */\r
680   __I  uint32_t RESERVED5;\r
681   \r
682   union {\r
683     __IO uint32_t PORTSC1_H;                /*!< (@ 0x40007184) Port 1 status/control (host mode) */\r
684     __IO uint32_t PORTSC1_D;                /*!< (@ 0x40007184) Port 1 status/control (device mode) */\r
685   };\r
686   __I  uint32_t RESERVED6[8];\r
687   \r
688   union {\r
689     __IO uint32_t USBMODE_H;                /*!< (@ 0x400071A8) USB mode (host mode)   */\r
690     __IO uint32_t USBMODE_D;                /*!< (@ 0x400071A8) USB mode (device mode) */\r
691   };\r
692   __IO uint32_t ENDPTSETUPSTAT;             /*!< (@ 0x400071AC) Endpoint setup status  */\r
693   __IO uint32_t ENDPTPRIME;                 /*!< (@ 0x400071B0) Endpoint initialization */\r
694   __IO uint32_t ENDPTFLUSH;                 /*!< (@ 0x400071B4) Endpoint de-initialization */\r
695   __I  uint32_t ENDPTSTAT;                  /*!< (@ 0x400071B8) Endpoint status        */\r
696   __IO uint32_t ENDPTCOMPLETE;              /*!< (@ 0x400071BC) Endpoint complete      */\r
697   __IO uint32_t ENDPTCTRL0;                 /*!< (@ 0x400071C0) Endpoint control 0     */\r
698   __IO uint32_t ENDPTCTRL[3];               /*!< (@ 0x400071C4) Endpoint control       */\r
699 } LPC_USB1_Type;\r
700 \r
701 \r
702 // ------------------------------------------------------------------------------------------------\r
703 // -----                                          LCD                                         -----\r
704 // ------------------------------------------------------------------------------------------------\r
705 \r
706 \r
707 /**\r
708   * @brief Product name title=UM10430 Chapter title=LPC43xx LCD Modification date=1/19/2011 Major revision=0 Minor revision=7  (LCD)\r
709   */\r
710 \r
711 typedef struct {                            /*!< (@ 0x40008000) LCD Structure          */\r
712   __IO uint32_t TIMH;                       /*!< (@ 0x40008000) Horizontal Timing Control register */\r
713   __IO uint32_t TIMV;                       /*!< (@ 0x40008004) Vertical Timing Control register */\r
714   __IO uint32_t POL;                        /*!< (@ 0x40008008) Clock and Signal Polarity Control register */\r
715   __IO uint32_t LE;                         /*!< (@ 0x4000800C) Line End Control register */\r
716   __IO uint32_t UPBASE;                     /*!< (@ 0x40008010) Upper Panel Frame Base Address register */\r
717   __IO uint32_t LPBASE;                     /*!< (@ 0x40008014) Lower Panel Frame Base Address register */\r
718   __IO uint32_t CTRL;                       /*!< (@ 0x40008018) LCD Control register   */\r
719   __IO uint32_t INTMSK;                     /*!< (@ 0x4000801C) Interrupt Mask register */\r
720   __I  uint32_t INTRAW;                     /*!< (@ 0x40008020) Raw Interrupt Status register */\r
721   __I  uint32_t INTSTAT;                    /*!< (@ 0x40008024) Masked Interrupt Status register */\r
722   __O  uint32_t INTCLR;                     /*!< (@ 0x40008028) Interrupt Clear register */\r
723   __I  uint32_t UPCURR;                     /*!< (@ 0x4000802C) Upper Panel Current Address Value register */\r
724   __I  uint32_t LPCURR;                     /*!< (@ 0x40008030) Lower Panel Current Address Value register */\r
725   __I  uint32_t RESERVED0[115];\r
726   __IO uint32_t PAL[256];                   /*!< (@ 0x40008200) 256x16-bit Color Palette registers */\r
727   __I  uint32_t RESERVED1[128];\r
728   __IO uint32_t CRSR_IMG[256];              /*!< (@ 0x40008800) Cursor Image registers */\r
729   __IO uint32_t CRSR_CTRL;                  /*!< (@ 0x40008C00) Cursor Control register */\r
730   __IO uint32_t CRSR_CFG;                   /*!< (@ 0x40008C04) Cursor Configuration register */\r
731   __IO uint32_t CRSR_PAL0;                  /*!< (@ 0x40008C08) Cursor Palette register 0 */\r
732   __IO uint32_t CRSR_PAL1;                  /*!< (@ 0x40008C0C) Cursor Palette register 1 */\r
733   __IO uint32_t CRSR_XY;                    /*!< (@ 0x40008C10) Cursor XY Position register */\r
734   __IO uint32_t CRSR_CLIP;                  /*!< (@ 0x40008C14) Cursor Clip Position register */\r
735   __I  uint32_t RESERVED2[2];\r
736   __IO uint32_t CRSR_INTMSK;                /*!< (@ 0x40008C20) Cursor Interrupt Mask register */\r
737   __O  uint32_t CRSR_INTCLR;                /*!< (@ 0x40008C24) Cursor Interrupt Clear register */\r
738   __I  uint32_t CRSR_INTRAW;                /*!< (@ 0x40008C28) Cursor Raw Interrupt Status register */\r
739   __I  uint32_t CRSR_INTSTAT;               /*!< (@ 0x40008C2C) Cursor Masked Interrupt Status register */\r
740 } LPC_LCD_Type;\r
741 \r
742 \r
743 // ------------------------------------------------------------------------------------------------\r
744 // -----                                       ETHERNET                                       -----\r
745 // ------------------------------------------------------------------------------------------------\r
746 \r
747 \r
748 /**\r
749   * @brief Product name title=UM10430 Chapter title=LPC43xx Ethernet Modification date=1/20/2011 Major revision=0 Minor revision=7  (ETHERNET)\r
750   */\r
751 \r
752 typedef struct {                            /*!< (@ 0x40010000) ETHERNET Structure     */\r
753   __IO uint32_t MAC_CONFIG;                 /*!< (@ 0x40010000) MAC configuration register */\r
754   __IO uint32_t MAC_FRAME_FILTER;           /*!< (@ 0x40010004) MAC frame filter       */\r
755   __IO uint32_t MAC_HASHTABLE_HIGH;         /*!< (@ 0x40010008) Hash table high register */\r
756   __IO uint32_t MAC_HASHTABLE_LOW;          /*!< (@ 0x4001000C) Hash table low register */\r
757   __IO uint32_t MAC_MII_ADDR;               /*!< (@ 0x40010010) MII address register   */\r
758   __IO uint32_t MAC_MII_DATA;               /*!< (@ 0x40010014) MII data register      */\r
759   __IO uint32_t MAC_FLOW_CTRL;              /*!< (@ 0x40010018) Flow control register  */\r
760   __IO uint32_t MAC_VLAN_TAG;               /*!< (@ 0x4001001C) VLAN tag register      */\r
761   __I  uint32_t RESERVED0;\r
762   __IO uint32_t MAC_DEBUG;                  /*!< (@ 0x40010024) Debug register         */\r
763   __IO uint32_t MAC_RWAKE_FRFLT;            /*!< (@ 0x40010028) Remote wake-up frame filter */\r
764   __IO uint32_t MAC_PMT_CTRL_STAT;          /*!< (@ 0x4001002C) PMT control and status */\r
765   __I  uint32_t RESERVED1[2];\r
766   __IO uint32_t MAC_INTR;                   /*!< (@ 0x40010038) Interrupt status register */\r
767   __IO uint32_t MAC_INTR_MASK;              /*!< (@ 0x4001003C) Interrupt mask register */\r
768   __IO uint32_t MAC_ADDR0_HIGH;             /*!< (@ 0x40010040) MAC address 0 high register */\r
769   __IO uint32_t MAC_ADDR0_LOW;              /*!< (@ 0x40010044) MAC address 0 low register */\r
770   __I  uint32_t RESERVED2[430];\r
771   __IO uint32_t MAC_TIMESTP_CTRL;           /*!< (@ 0x40010700) Time stamp control register */\r
772   __I  uint32_t RESERVED3[575];\r
773   __IO uint32_t DMA_BUS_MODE;               /*!< (@ 0x40011000) Bus Mode Register      */\r
774   __IO uint32_t DMA_TRANS_POLL_DEMAND;      /*!< (@ 0x40011004) Transmit poll demand register */\r
775   __IO uint32_t DMA_REC_POLL_DEMAND;        /*!< (@ 0x40011008) Receive poll demand register */\r
776   __IO uint32_t DMA_REC_DES_ADDR;           /*!< (@ 0x4001100C) Receive descriptor list address register */\r
777   __IO uint32_t DMA_TRANS_DES_ADDR;         /*!< (@ 0x40011010) Transmit descriptor list address register */\r
778   __IO uint32_t DMA_STAT;                   /*!< (@ 0x40011014) Status register        */\r
779   __IO uint32_t DMA_OP_MODE;                /*!< (@ 0x40011018) Operation mode register */\r
780   __IO uint32_t DMA_INT_EN;                 /*!< (@ 0x4001101C) Interrupt enable register */\r
781   __IO uint32_t DMA_MFRM_BUFOF;             /*!< (@ 0x40011020) Missed frame and buffer overflow register */\r
782   __IO uint32_t DMA_REC_INT_WDT;            /*!< (@ 0x40011024) Receive interrupt watchdog timer register */\r
783   __I  uint32_t RESERVED4[8];\r
784   __IO uint32_t DMA_CURHOST_TRANS_DES;      /*!< (@ 0x40011048) Current host transmit descriptor register */\r
785   __IO uint32_t DMA_CURHOST_REC_DES;        /*!< (@ 0x4001104C) Current host receive descriptor register */\r
786   __IO uint32_t DMA_CURHOST_TRANS_BUF;      /*!< (@ 0x40011050) Current host transmit buffer address register */\r
787   __IO uint32_t DMA_CURHOST_REC_BUF;        /*!< (@ 0x40011054) Current host receive buffer address register */\r
788 } LPC_ETHERNET_Type;\r
789 \r
790 \r
791 // ------------------------------------------------------------------------------------------------\r
792 // -----                                        ATIMER                                        -----\r
793 // ------------------------------------------------------------------------------------------------\r
794 \r
795 \r
796 /**\r
797   * @brief Product name title=UM10430 Chapter title=LPC43xx Alarm timer Modification date=1/7/2011 Major revision=0 Minor revision=6  (ATIMER)\r
798   */\r
799 \r
800 typedef struct {                            /*!< (@ 0x40040000) ATIMER Structure       */\r
801   __IO uint32_t DOWNCOUNTER;                /*!< (@ 0x40040000) Downcounter register   */\r
802   __IO uint32_t PRESET;                     /*!< (@ 0x40040004) Preset value register  */\r
803   __I  uint32_t RESERVED0[1012];\r
804   __O  uint32_t CLR_EN;                     /*!< (@ 0x40040FD8) Interrupt clear enable register */\r
805   __O  uint32_t SET_EN;                     /*!< (@ 0x40040FDC) Interrupt set enable register */\r
806   __I  uint32_t STATUS;                     /*!< (@ 0x40040FE0) Status register        */\r
807   __I  uint32_t ENABLE;                     /*!< (@ 0x40040FE4) Enable register        */\r
808   __O  uint32_t CLR_STAT;                   /*!< (@ 0x40040FE8) Clear register         */\r
809   __O  uint32_t SET_STAT;                   /*!< (@ 0x40040FEC) Set register           */\r
810 } LPC_ATIMER_Type;\r
811 \r
812 \r
813 // ------------------------------------------------------------------------------------------------\r
814 // -----                                        REGFILE                                       -----\r
815 // ------------------------------------------------------------------------------------------------\r
816 \r
817 \r
818 /**\r
819   * @brief Product name title=UM10430 Chapter title=LPC43xx rtc/REGFILE date=1/20/2011 Major revision=0 Minor revision=7  (REGFILE)\r
820   */\r
821 \r
822 typedef struct {                            /*!< (@ 0x40041000) REGFILE Structure      */\r
823   __IO uint32_t REGFILE[64];                /*!< (@ 0x40041000) General purpose storage register */\r
824 } LPC_REGFILE_Type;\r
825 \r
826 \r
827 // ------------------------------------------------------------------------------------------------\r
828 // -----                                          PMC                                         -----\r
829 // ------------------------------------------------------------------------------------------------\r
830 \r
831 \r
832 /**\r
833   * @brief Product name title=UM10430 Chapter title=LPC43xx Power Management Controller (PMC) Modification date=1/20/2011 Major revision=0 Minor revision=7  (PMC)\r
834   */\r
835 \r
836 typedef struct {                            /*!< (@ 0x40042000) PMC Structure          */\r
837   __IO uint32_t PD0_SLEEP0_HW_ENA;          /*!< (@ 0x40042000) Hardware sleep event enable register */\r
838        uint32_t RESERVED0;\r
839   __IO uint32_t PD0_SLEEP0_HW_EDG_LVL;      /* 0x008 */\r
840        uint32_t RESERVED1[3];\r
841   __IO uint32_t PD0_SLEEP0_CONFIG;          /* 0x018 */\r
842   __IO uint32_t PD0_SLEEP0_MODE;            /*!< (@ 0x4004201C) Sleep power mode register */\r
843        uint32_t RESERVED2[24];\r
844   __IO uint32_t PD0_WAKE0_HW_ENA;           /* 0x080 */\r
845        uint32_t RESERVED3;\r
846   __IO uint32_t PD0_WAKE0_HW_EDG_LVL;       /* 0x088 */\r
847        uint32_t RESERVED4[67];\r
848   __IO uint32_t PD0_PSU_OPT;                /* 0x198 */\r
849        uint32_t RESERVED5[2];\r
850   __IO uint32_t PD0_PSU_DELAY;              /* 0x1A4 */\r
851        uint32_t RESERVED6;\r
852   __IO uint32_t PD0_POST_PSU_DELAY;                     /* 0x1AC */\r
853 } LPC_PMC_Type;\r
854 \r
855 \r
856 // ------------------------------------------------------------------------------------------------\r
857 // -----                                         CREG                                         -----\r
858 // ------------------------------------------------------------------------------------------------\r
859 \r
860 \r
861 /**\r
862   * @brief Product name title=UM10430 Chapter title=LPC43xx Configuration Registers (CREG) Modification date=1/20/2011 Major revision=0 Minor revision=7  (CREG)\r
863   */\r
864 \r
865 typedef struct {                            /*!< (@ 0x40043000) CREG Structure         */\r
866   __IO uint32_t IRCTRM;                     /*!< (@ 0x40043000) IRC trim register      */\r
867   __IO uint32_t CREG0;                      /*!< (@ 0x40043004) Chip configuration register 32 kHz oscillator output and BOD control register. */\r
868   __IO uint32_t PMUCON;                     /*!< (@ 0x40043008) Power mode control register. */\r
869   __I  uint32_t RESERVED0[61];\r
870   __IO uint32_t M4MEMMAP;                   /*!< (@ 0x40043100) ARM Cortex-M4 memory mapping */\r
871   __I  uint32_t RESERVED1[5];\r
872   __IO uint32_t CREG5;                      /*!< (@ 0x40043118) Chip configuration register 5. Controls JTAG access. */\r
873   __IO uint32_t DMAMUX;                     /*!< (@ 0x4004311C) DMA muxing control     */\r
874   __I  uint32_t RESERVED2[2];\r
875   __IO uint32_t ETBCFG;                     /*!< (@ 0x40043128) ETB RAM configuration  */\r
876   __IO uint32_t CREG6;                      /*!< (@ 0x4004312C) tbd.                   */\r
877   __I  uint32_t RESERVED3[52];\r
878   __I  uint32_t CHIPID;                     /*!< (@ 0x40043200) Part ID                */\r
879 } LPC_CREG_Type;\r
880 \r
881 \r
882 // ------------------------------------------------------------------------------------------------\r
883 // -----                                      EVENTROUTER                                     -----\r
884 // ------------------------------------------------------------------------------------------------\r
885 \r
886 \r
887 /**\r
888   * @brief Product name title=UM10430 Chapter title=LPC43xx Event router Modification date=1/20/2011 Major revision=0 Minor revision=7  (EVENTROUTER)\r
889   */\r
890 \r
891 typedef struct {                            /*!< (@ 0x40044000) EVENTROUTER Structure  */\r
892   __IO uint32_t HILO;                       /*!< (@ 0x40044000) Level configuration register */\r
893   __IO uint32_t EDGE;                       /*!< (@ 0x40044004) Edge configuration     */\r
894   __I  uint32_t RESERVED0[1012];\r
895   __O  uint32_t CLR_EN;                     /*!< (@ 0x40044FD8) Event clear enable register */\r
896   __O  uint32_t SET_EN;                     /*!< (@ 0x40044FDC) Event set enable register */\r
897   __I  uint32_t STATUS;                     /*!< (@ 0x40044FE0) Status register        */\r
898   __I  uint32_t ENABLE;                     /*!< (@ 0x40044FE4) Enable register        */\r
899   __O  uint32_t CLR_STAT;                   /*!< (@ 0x40044FE8) Clear register         */\r
900   __O  uint32_t SET_STAT;                   /*!< (@ 0x40044FEC) Set register           */\r
901 } LPC_EVENTROUTER_Type;\r
902 \r
903 \r
904 // ------------------------------------------------------------------------------------------------\r
905 // -----                                          RTC                                         -----\r
906 // ------------------------------------------------------------------------------------------------\r
907 \r
908 \r
909 /**\r
910   * @brief Product name title=UM10430 Chapter title=LPC43xx Real-Time Clock (RTC) Modification date=1/20/2011 Major revision=0 Minor revision=7  (RTC)\r
911   */\r
912 \r
913 typedef struct {                            /*!< (@ 0x40046000) RTC Structure          */\r
914   __O  uint32_t ILR;                        /*!< (@ 0x40046000) Interrupt Location Register */\r
915   __I  uint32_t RESERVED0;\r
916   __IO uint32_t CCR;                        /*!< (@ 0x40046008) Clock Control Register */\r
917   __IO uint32_t CIIR;                       /*!< (@ 0x4004600C) Counter Increment Interrupt Register */\r
918   __IO uint32_t AMR;                        /*!< (@ 0x40046010) Alarm Mask Register    */\r
919   __I  uint32_t CTIME0;                     /*!< (@ 0x40046014) Consolidated Time Register 0 */\r
920   __I  uint32_t CTIME1;                     /*!< (@ 0x40046018) Consolidated Time Register 1 */\r
921   __I  uint32_t CTIME2;                     /*!< (@ 0x4004601C) Consolidated Time Register 2 */\r
922   __IO uint32_t SEC;                        /*!< (@ 0x40046020) Seconds Register       */\r
923   __IO uint32_t MIN;                        /*!< (@ 0x40046024) Minutes Register       */\r
924   __IO uint32_t HRS;                        /*!< (@ 0x40046028) Hours Register         */\r
925   __IO uint32_t DOM;                        /*!< (@ 0x4004602C) Day of Month Register  */\r
926   __IO uint32_t DOW;                        /*!< (@ 0x40046030) Day of Week Register   */\r
927   __IO uint32_t DOY;                        /*!< (@ 0x40046034) Day of Year Register   */\r
928   __IO uint32_t MONTH;                      /*!< (@ 0x40046038) Months Register        */\r
929   __IO uint32_t YEAR;                       /*!< (@ 0x4004603C) Years Register         */\r
930   __IO uint32_t CALIBRATION;                /*!< (@ 0x40046040) Calibration Value Register */\r
931   __I  uint32_t RESERVED1[7];\r
932   __IO uint32_t ASEC;                       /*!< (@ 0x40046060) Alarm value for Seconds */\r
933   __IO uint32_t AMIN;                       /*!< (@ 0x40046064) Alarm value for Minutes */\r
934   __IO uint32_t AHRS;                       /*!< (@ 0x40046068) Alarm value for Hours  */\r
935   __IO uint32_t ADOM;                       /*!< (@ 0x4004606C) Alarm value for Day of Month */\r
936   __IO uint32_t ADOW;                       /*!< (@ 0x40046070) Alarm value for Day of Week */\r
937   __IO uint32_t ADOY;                       /*!< (@ 0x40046074) Alarm value for Day of Year */\r
938   __IO uint32_t AMON;                       /*!< (@ 0x40046078) Alarm value for Months */\r
939   __IO uint32_t AYRS;                       /*!< (@ 0x4004607C) Alarm value for Year   */\r
940 } LPC_RTC_Type;\r
941 \r
942 \r
943 // ------------------------------------------------------------------------------------------------\r
944 // -----                                          CGU                                         -----\r
945 // ------------------------------------------------------------------------------------------------\r
946 \r
947 \r
948 /**\r
949   * @brief Product name title=UM10462 Chapter title=LPC43xx Clock Generation Unit (CGU) Modification date=6/1/2011 Major revision=0 Minor revision=1  (CGU)\r
950   */\r
951 \r
952 typedef struct {                            /*!< (@ 0x40050000) CGU Structure          */\r
953   __I  uint32_t RESERVED0[5];\r
954   __IO uint32_t FREQ_MON;                   /*!< (@ 0x40050014) Frequency monitor register */\r
955   __IO uint32_t XTAL_OSC_CTRL;              /*!< (@ 0x40050018) Crystal oscillator control register */\r
956   __I  uint32_t PLL0USB_STAT;               /*!< (@ 0x4005001C) PLL0 (USB) status register */\r
957   __IO uint32_t PLL0USB_CTRL;               /*!< (@ 0x40050020) PLL0 (USB) control register */\r
958   __IO uint32_t PLL0USB_MDIV;               /*!< (@ 0x40050024) PLL0 (USB) M-divider register */\r
959   __IO uint32_t PLL0USB_NP_DIV;             /*!< (@ 0x40050028) PLL0 (USB) N/P-divider register */\r
960   __I  uint32_t PLL0AUDIO_STAT;             /*!< (@ 0x4005002C) PLL0 (audio) status register */\r
961   __IO uint32_t PLL0AUDIO_CTRL;             /*!< (@ 0x40050030) PLL0 (audio) control register */\r
962   __IO uint32_t PLL0AUDIO_MDIV;             /*!< (@ 0x40050034) PLL0 (audio) M-divider register */\r
963   __IO uint32_t PLL0AUDIO_NP_DIV;           /*!< (@ 0x40050038) PLL0 (audio) N/P-divider register */\r
964   __IO uint32_t PLL0AUDIO_FRAC;             /*!< (@ 0x4005003C) PLL0 (audio)           */\r
965   __I  uint32_t PLL1_STAT;                  /*!< (@ 0x40050040) PLL1 status register   */\r
966   __IO uint32_t PLL1_CTRL;                  /*!< (@ 0x40050044) PLL1 control register  */\r
967   __IO uint32_t IDIVA_CTRL;                 /*!< (@ 0x40050048) Integer divider A control register */\r
968   __IO uint32_t IDIVB_CTRL;                 /*!< (@ 0x4005004C) Integer divider B control register */\r
969   __IO uint32_t IDIVC_CTRL;                 /*!< (@ 0x40050050) Integer divider C control register */\r
970   __IO uint32_t IDIVD_CTRL;                 /*!< (@ 0x40050054) Integer divider D control register */\r
971   __IO uint32_t IDIVE_CTRL;                 /*!< (@ 0x40050058) Integer divider E control register */\r
972   __IO uint32_t BASE_SAFE_CLK;              /*!< (@ 0x4005005C) Output stage 0 control register for base clock BASE_SAFE_CLK */\r
973   __IO uint32_t BASE_USB0_CLK;              /*!< (@ 0x40050060) Output stage 1 control register for base clock BASE_USB0_CLK */\r
974   __IO uint32_t BASE_M0_CLK;                /*!< (@ 0x40050064) */\r
975   __IO uint32_t BASE_USB1_CLK;              /*!< (@ 0x40050068) Output stage 3 control register for base clock BASE_USB1_CLK */\r
976   __IO uint32_t BASE_M4_CLK;                /*!< (@ 0x4005006C) Output stage control register  */\r
977   __IO uint32_t BASE_SPIFI0_CLK;            /*!< (@ 0x40050070) Output stage control register  */\r
978   __IO uint32_t BASE_SPI_CLK;               /*!< (@ 0x40050074) Output stage control register  */\r
979   __IO uint32_t BASE_PHY_RX_CLK;            /*!< (@ 0x40050078) Output stage control register  */\r
980   __IO uint32_t BASE_PHY_TX_CLK;            /*!< (@ 0x4005007C) Output stage control register  */\r
981   __IO uint32_t BASE_APB1_CLK;              /*!< (@ 0x40050080) Output stage control register  */\r
982   __IO uint32_t BASE_APB3_CLK;              /*!< (@ 0x40050084) Output stage control register  */\r
983   __IO uint32_t BASE_LCD_CLK;               /*!< (@ 0x40050088) Output stage control register  */\r
984   __IO uint32_t BASE_VADC_CLK;                  /*!< (@ 0x4005008C) Output stage control register  */\r
985   __IO uint32_t BASE_SDIO_CLK;              /*!< (@ 0x40050090) Output stage control register  */\r
986   __IO uint32_t BASE_SSP0_CLK;              /*!< (@ 0x40050094) Output stage control register  */\r
987   __IO uint32_t BASE_SSP1_CLK;              /*!< (@ 0x40050098) Output stage control register  */\r
988   __IO uint32_t BASE_UART0_CLK;             /*!< (@ 0x4005009C) Output stage control register  */\r
989   __IO uint32_t BASE_UART1_CLK;             /*!< (@ 0x400500A0) Output stage control register  */\r
990   __IO uint32_t BASE_UART2_CLK;             /*!< (@ 0x400500A4) Output stage control register  */\r
991   __IO uint32_t BASE_UART3_CLK;             /*!< (@ 0x400500A8) Output stage control register  */\r
992   __IO uint32_t BASE_OUT_CLK;               /*!< (@ 0x400500AC) Output stage 20 control register for base clock BASE_OUT_CLK */\r
993   __IO uint32_t BASE_AOTEST_CLK;            /*!< (@ 0x400500B0) */\r
994   __IO uint32_t BASE_ISO_TCK;               /*!< (@ 0x400500B4) */\r
995   __IO uint32_t BASE_BSR_TCK;               /*!< (@ 0x400500B8) */\r
996   __IO uint32_t BASE_CLK_TESTSHELL;         /*!< (@ 0x400500BC) */\r
997   __IO uint32_t BASE_APLL_CLK;              /*!< (@ 0x400500C0) Output stage 25 control register for base clock BASE_APLL_CLK */\r
998   __IO uint32_t BASE_CGU_OUT0_CLK;          /*!< (@ 0x400500C4) Output stage 26 control register for base clock BASE_CGU_OUT0_CLK */\r
999   __IO uint32_t BASE_CGU_OUT1_CLK;          /*!< (@ 0x400500C8) Output stage 27 control register for base clock BASE_CGU_OUT1_CLK */\r
1000 } LPC_CGU_Type;\r
1001 \r
1002 \r
1003 // ------------------------------------------------------------------------------------------------\r
1004 // -----                                         CCU1                                         -----\r
1005 // ------------------------------------------------------------------------------------------------\r
1006 \r
1007 \r
1008 /**\r
1009   * @brief Product name title=UM10430 Chapter title=LPC43xx Clock Control Unit (CCU) Modification date=1/21/2011 Major revision=0 Minor revision=7  (CCU1)\r
1010   */\r
1011 \r
1012 typedef struct {                            /*!< (@ 0x40051000) CCU1 Structure         */\r
1013   __IO uint32_t PM;                         /*!< (@ 0x40051000) CCU1 power mode register */\r
1014   __I  uint32_t BASE_STAT;                  /*!< (@ 0x40051004) CCU1 base clocks status register */\r
1015   __I  uint32_t RESERVED0[62];\r
1016   __IO uint32_t CLK_APB3_BUS_CFG;           /*!< (@ 0x40051100) CLK_APB3_BUS clock configuration register */\r
1017   __I  uint32_t CLK_APB3_BUS_STAT;          /*!< (@ 0x40051104) CLK_APB3_BUS clock status register */\r
1018   __IO uint32_t CLK_APB3_I2C1_CFG;          /*!< (@ 0x40051108) CLK_APB3_I2C1 clock configuration register */\r
1019   __I  uint32_t CLK_APB3_I2C1_STAT;         /*!< (@ 0x4005110C) CLK_APB3_I2C1 clock status register */\r
1020   __IO uint32_t CLK_APB3_DAC_CFG;           /*!< (@ 0x40051110) CLK_APB3_DAC clock configuration register */\r
1021   __I  uint32_t CLK_APB3_DAC_STAT;          /*!< (@ 0x40051114) CLK_APB3_DAC clock status register */\r
1022   __IO uint32_t CLK_APB3_ADC0_CFG;          /*!< (@ 0x40051118) CLK_APB3_ADC0 clock configuration register */\r
1023   __I  uint32_t CLK_APB3_ADC0_STAT;         /*!< (@ 0x4005111C) CLK_APB3_ADC0 clock status register */\r
1024   __IO uint32_t CLK_APB3_ADC1_CFG;          /*!< (@ 0x40051120) CLK_APB3_ADC1 clock configuration register */\r
1025   __I  uint32_t CLK_APB3_ADC1_STAT;         /*!< (@ 0x40051124) CLK_APB3_ADC1 clock status register */\r
1026   __IO uint32_t CLK_APB3_CAN0_CFG;          /*!< (@ 0x40051128) CLK_APB3_CAN0 clock configuration register */\r
1027   __I  uint32_t CLK_APB3_CAN0_STAT;         /*!< (@ 0x4005112C) CLK_APB3_CAN0 clock status register */\r
1028   __IO uint32_t CLK_APB3_SPARE0_CFG;        /*!< (@ 0x40051130) */\r
1029   __I  uint32_t CLK_APB3_SPARE0_STAT;       /*!< (@ 0x40051134) */\r
1030   __I  uint32_t RESERVED1[52-2];\r
1031   __IO uint32_t CLK_APB1_BUS_CFG;           /*!< (@ 0x40051200) CLK_APB1_BUS clock configuration register */\r
1032   __I  uint32_t CLK_APB1_BUS_STAT;          /*!< (@ 0x40051204) CLK_APB1_BUS clock status register */\r
1033   __IO uint32_t CLK_APB1_MOTOCONPWM_CFG;    /*!< (@ 0x40051208) CLK_APB1_MOTOCONPWM clock configuration register */\r
1034   __I  uint32_t CLK_APB1_MOTOCONPWM_STAT;   /*!< (@ 0x4005120C) CLK_APB1_MOTOCONPWM clock status register */\r
1035   __IO uint32_t CLK_ABP1_I2C0_CFG;          /*!< (@ 0x40051210) CLK_ABP1_I2C0 clock configuration register */\r
1036   __I  uint32_t CLK_APB1_I2C0_STAT;         /*!< (@ 0x40051214) CLK_APB1_I2C0 clock status register */\r
1037   __IO uint32_t CLK_APB1_I2S_CFG;           /*!< (@ 0x40051218) CLK_APB1_I2S clock configuration register */\r
1038   __I  uint32_t CLK_APB1_I2S_STAT;          /*!< (@ 0x4005121C) CLK_APB1_I2S clock status register */\r
1039   __IO uint32_t CLK_APB1_CAN1_CFG;          /*!< (@ 0x40051220) CLK_APB1_CAN1 clock configuration register */\r
1040   __I  uint32_t CLK_APB1_CAN1_STAT;         /*!< (@ 0x40051224) CLK_APB1_CAN1 clock status register */\r
1041   __IO uint32_t CLK_APB1_SPARE0_CFG;        /*!< (@ 0x40051228) */\r
1042   __I  uint32_t CLK_APB1_SPARE0_STAT;       /*!< (@ 0x4005122C) */\r
1043   __I  uint32_t RESERVED2[54-2];\r
1044   __IO uint32_t CLK_SPIFI_CFG;              /*!< (@ 0x40051300) CLK_SPIFI clock configuration register */\r
1045   __I  uint32_t CLK_SPIFI_STAT;             /*!< (@ 0x40051304) CLK_APB1_SPIFI clock status register */\r
1046   __I  uint32_t RESERVED3[62];\r
1047   __IO uint32_t CLK_M4_BUS_CFG;             /*!< (@ 0x40051400) CLK_M4_BUS clock configuration register */\r
1048   __I  uint32_t CLK_M4_BUS_STAT;            /*!< (@ 0x40051404) CLK_M4_BUSclock status register */\r
1049   __IO uint32_t CLK_M4_SPIFI_CFG;           /*!< (@ 0x40051408) CLK_M4_SPIFI clock configuration register */\r
1050   __I  uint32_t CLK_M4_SPIFI_STAT;          /*!< (@ 0x4005140C) CLK_M4_SPIFI clock status register */\r
1051   __IO uint32_t CLK_M4_GPIO_CFG;            /*!< (@ 0x40051410) CLK_M4_GPIO clock configuration register */\r
1052   __I  uint32_t CLK_M4_GPIO_STAT;           /*!< (@ 0x40051414) CLK_M4_GPIO clock status register */\r
1053   __IO uint32_t CLK_M4_LCD_CFG;             /*!< (@ 0x40051418) CLK_M4_LCD clock configuration register */\r
1054   __I  uint32_t CLK_M4_LCD_STAT;            /*!< (@ 0x4005141C) CLK_M4_LCD clock status register */\r
1055   __IO uint32_t CLK_M4_ETHERNET_CFG;        /*!< (@ 0x40051420) CLK_M4_ETHERNET clock configuration register */\r
1056   __I  uint32_t CLK_M4_ETHERNET_STAT;       /*!< (@ 0x40051424) CLK_M4_ETHERNET clock status register */\r
1057   __IO uint32_t CLK_M4_USB0_CFG;            /*!< (@ 0x40051428) CLK_M4_USB0 clock configuration register */\r
1058   __I  uint32_t CLK_M4_USB0_STAT;           /*!< (@ 0x4005142C) CLK_M4_USB0 clock status register */\r
1059   __IO uint32_t CLK_M4_EMC_CFG;             /*!< (@ 0x40051430) CLK_M4_EMC clock configuration register */\r
1060   __I  uint32_t CLK_M4_EMC_STAT;            /*!< (@ 0x40051434) CLK_M4_EMC clock status register */\r
1061   __IO uint32_t CLK_M4_SDIO_CFG;            /*!< (@ 0x40051438) CLK_M4_SDIO clock configuration register */\r
1062   __I  uint32_t CLK_M4_SDIO_STAT;           /*!< (@ 0x4005143C) CLK_M4_SDIO clock status register */\r
1063   __IO uint32_t CLK_M4_DMA_CFG;             /*!< (@ 0x40051440) CLK_M4_DMA clock configuration register */\r
1064   __I  uint32_t CLK_M4_DMA_STAT;            /*!< (@ 0x40051444) CLK_M4_DMA clock status register */\r
1065   __IO uint32_t CLK_M4_M4CORE_CFG;          /*!< (@ 0x40051448) CLK_M4_M4CORE clock configuration register */\r
1066   __I  uint32_t CLK_M4_M4CORE_STAT;         /*!< (@ 0x4005144C) CLK_M4_M4CORE clock status register */\r
1067   __IO uint32_t CLK_M4_USART_CFG;           /*!< (@ 0x40051450) Reserved for Eagle */\r
1068   __I  uint32_t CLK_M4_USART_STAT;          /*!< (@ 0x40051454) Reserved for Eagle */\r
1069   __IO uint32_t CLK_M4_EVENTHANDLER_CFG;    /*!< (@ 0x40051458) Reserved for Eagle */\r
1070   __I  uint32_t CLK_M4_EVENTHANDLER_STAT;   /*!< (@ 0x4005145C) Reserved for Eagle */\r
1071 //  __I  uint32_t RESERVED4[4];\r
1072   __IO uint32_t CLK_M4_AES_CFG;             /*!< (@ 0x40051460) CLK_M4_AES clock configuration register */\r
1073   __I  uint32_t CLK_M4_AES_STAT;            /*!< (@ 0x40051464) CLK_M4_AES clock status register */\r
1074   __IO uint32_t CLK_M4_SCT_CFG;             /*!< (@ 0x40051468) CLK_M4_SCT clock configuration register */\r
1075   __I  uint32_t CLK_M4_SCT_STAT;            /*!< (@ 0x4005146C) CLK_M4_SCT clock status register */\r
1076   __IO uint32_t CLK_M4_USB1_CFG;            /*!< (@ 0x40051470) CLK_M4_USB1 clock configuration register */\r
1077   __I  uint32_t CLK_M4_USB1_STAT;           /*!< (@ 0x40051474) CLK_M4_USB1 clock status register */\r
1078   __IO uint32_t CLK_M4_EMCDIV_CFG;          /*!< (@ 0x40051478) CLK_M4_EMCDIV clock configuration register */\r
1079   __I  uint32_t CLK_M4_EMCDIV_STAT;         /*!< (@ 0x4005147C) CLK_M4_EMCDIV clock status register */\r
1080   __IO uint32_t CLK_M4_FLASH0_CFG;          /*!< (@ 0x40051480)  */\r
1081   __I  uint32_t CLK_M4_FLASH0_STAT;         /*!< (@ 0x40051484)  */\r
1082   __IO uint32_t CLK_M4_FLASH1_CFG;          /*!< (@ 0x40051488)  */\r
1083   __I  uint32_t CLK_M4_FLASH1_STAT;         /*!< (@ 0x4005148C)  */\r
1084   __IO uint32_t CLK_M4_M0ACORE_CFG;             /*!< (@ 0x40051490)  */\r
1085   __I  uint32_t CLK_M4_M0ACORE_STAT;            /*!< (@ 0x40051494)  */\r
1086   __IO uint32_t CLK_M4_VADC_CFG;                        /*!< (@ 0x40051498)  */\r
1087   __I  uint32_t CLK_M4_VADC_STAT;                       /*!< (@ 0x4005149C)  */\r
1088   __IO uint32_t CLK_M4_EEPROM_CFG;          /*!< (@ 0x400514A0)  */\r
1089   __I  uint32_t CLK_M4_EEPROM_STAT;         /*!< (@ 0x400514A4)  */\r
1090   __IO uint32_t CLK_M4_SPARE0_CFG;          /*!< (@ 0x400514A8)  */\r
1091   __I  uint32_t CLK_M4_SPARE0_STAT;         /*!< (@ 0x400514AC)  */\r
1092   __IO uint32_t CLK_M4_SPARE1_CFG;          /*!< (@ 0x400514B0)  */\r
1093   __I  uint32_t CLK_M4_SPARE1_STAT;         /*!< (@ 0x400514B4)  */\r
1094   __I  uint32_t RESERVED5[32-14];\r
1095   __IO uint32_t CLK_M4_WWDT_CFG;            /*!< (@ 0x40051500) CLK_M4_WWDT clock configuration register */\r
1096   __I  uint32_t CLK_M4_WWDT_STAT;           /*!< (@ 0x40051504) CLK_M4_WWDT clock status register */\r
1097   __IO uint32_t CLK_M4_USART0_CFG;          /*!< (@ 0x40051508) CLK_M4_USART0 clock configuration register */\r
1098   __I  uint32_t CLK_M4_USART0_STAT;         /*!< (@ 0x4005150C) CLK_M4_USART0 clock status register */\r
1099   __IO uint32_t CLK_M4_UART1_CFG;           /*!< (@ 0x40051510) CLK_M4_UART1 clock configuration register */\r
1100   __I  uint32_t CLK_M4_UART1_STAT;          /*!< (@ 0x40051514) CLK_M4_UART1 clock status register */\r
1101   __IO uint32_t CLK_M4_SSP0_CFG;            /*!< (@ 0x40051518) CLK_M4_SSP0 clock configuration register */\r
1102   __I  uint32_t CLK_M4_SSP0_STAT;           /*!< (@ 0x4005151C) CLK_M4_SSP0 clock status register */\r
1103   __IO uint32_t CLK_M4_TIMER0_CFG;          /*!< (@ 0x40051520) CLK_M4_TIMER0 clock configuration register */\r
1104   __I  uint32_t CLK_M4_TIMER0_STAT;         /*!< (@ 0x40051524) CLK_M4_TIMER0 clock status register */\r
1105   __IO uint32_t CLK_M4_TIMER1_CFG;          /*!< (@ 0x40051528) CLK_M4_TIMER1clock configuration register */\r
1106   __I  uint32_t CLK_M4_TIMER1_STAT;         /*!< (@ 0x4005152C) CLK_M4_TIMER1 clock status register */\r
1107   __IO uint32_t CLK_M4_SCU_CFG;             /*!< (@ 0x40051530) CLK_M4_SCU clock configuration register */\r
1108   __I  uint32_t CLK_M4_SCU_STAT;            /*!< (@ 0x40051534) CLK_SCU_XXX clock status register */\r
1109   __IO uint32_t CLK_M4_CREG_CFG;            /*!< (@ 0x40051538) CLK_M4_CREGclock configuration register */\r
1110   __I  uint32_t CLK_M4_CREG_STAT;           /*!< (@ 0x4005153C) CLK_M4_CREG clock status register */\r
1111   __IO uint32_t CLK_APB0_SPARE1_CFG;        /*!< (@ 0x40051540)  */\r
1112   __I  uint32_t CLK_APB0_SPARE1_STAT;       /*!< (@ 0x40051544)  */\r
1113   __I  uint32_t RESERVED6[48-2];\r
1114   __IO uint32_t CLK_M4_RITIMER_CFG;         /*!< (@ 0x40051600) CLK_M4_RITIMER clock configuration register */\r
1115   __I  uint32_t CLK_M4_RITIMER_STAT;        /*!< (@ 0x40051604) CLK_M4_RITIMER clock status register */\r
1116   __IO uint32_t CLK_M4_USART2_CFG;          /*!< (@ 0x40051608) CLK_M4_USART2 clock configuration register */\r
1117   __I  uint32_t CLK_M4_USART2_STAT;         /*!< (@ 0x4005160C) CLK_M4_USART2 clock status register */\r
1118   __IO uint32_t CLK_M4_USART3_CFG;          /*!< (@ 0x40051610) CLK_M4_USART3 clock configuration register */\r
1119   __I  uint32_t CLK_M4_USART3_STAT;         /*!< (@ 0x40051614) CLK_M4_USART3 clock status register */\r
1120   __IO uint32_t CLK_M4_TIMER2_CFG;          /*!< (@ 0x40051618) CLK_M4_TIMER2 clock configuration register */\r
1121   __I  uint32_t CLK_M4_TIMER2_STAT;         /*!< (@ 0x4005161C) CLK_M4_TIMER2 clock status register */\r
1122   __IO uint32_t CLK_M4_TIMER3_CFG;          /*!< (@ 0x40051620) CLK_M4_TIMER3 clock configuration register */\r
1123   __I  uint32_t CLK_M4_TIMER3_STAT;         /*!< (@ 0x40051624) CLK_M4_TIMER3 clock status register */\r
1124   __IO uint32_t CLK_M4_SSP1_CFG;            /*!< (@ 0x40051628) CLK_M4_SSP1 clock configuration register */\r
1125   __I  uint32_t CLK_M4_SSP1_STAT;           /*!< (@ 0x4005162C) CLK_M4_SSP1 clock status register */\r
1126   __IO uint32_t CLK_M4_QEI_CFG;             /*!< (@ 0x40051630) CLK_M4_QEIclock configuration register */\r
1127   __I  uint32_t CLK_M4_QEI_STAT;            /*!< (@ 0x40051634) CLK_M4_QEI clock status register */\r
1128   __IO uint32_t CLK_APB2_SPARE1_CFG;        /*!< (@ 0x40051638)  */\r
1129   __I  uint32_t CLK_APB2_SPARE1_STAT;       /*!< (@ 0x4005163C)  */\r
1130   __I  uint32_t RESERVED7[48];\r
1131   __IO uint32_t CLK_M0_BUS_CFG;             /*!< (@ 0x40051700)  */\r
1132   __I  uint32_t CLK_M0_BUS_STAT;            /*!< (@ 0x40051704)  */\r
1133   __IO uint32_t CLK_M0_GPIO_CFG;            /*!< (@ 0x40051708)  */\r
1134   __I  uint32_t CLK_M0_GPIO_STAT;           /*!< (@ 0x4005170C)  */\r
1135   __IO uint32_t CLK_M0_M0SCORE_CFG;         /*!< (@ 0x40051710)  */\r
1136   __I  uint32_t CLK_M0_M0SCORE_STAT;        /*!< (@ 0x40051714)  */\r
1137   __IO uint32_t CLK_M0_SGPIO_CFG;           /*!< (@ 0x40051718)  */\r
1138   __I  uint32_t CLK_M0_SGPIO_STAT;          /*!< (@ 0x4005171C)  */\r
1139   __IO uint32_t CLK_M0_EDM_CFG;             /*!< (@ 0x40051720)  */\r
1140   __I  uint32_t CLK_M0_EDM_STAT;            /*!< (@ 0x40051724)  */\r
1141   __I  uint32_t RESERVED72[54];\r
1142   __IO uint32_t CLK_USB0_CFG;               /*!< (@ 0x40051800) CLK_M4_USB0 clock configuration register */\r
1143   __I  uint32_t CLK_USB0_STAT;              /*!< (@ 0x40051804) CLK_USB0 clock status register */\r
1144   __I  uint32_t RESERVED8[62];\r
1145   __IO uint32_t CLK_USB1_CFG;               /*!< (@ 0x40051900) CLK_USB1 clock configuration register */\r
1146   __I  uint32_t CLK_USB1_STAT;              /*!< (@ 0x40051904) CLK_USB1 clock status register */\r
1147   __I  uint32_t RESERVED9[126];\r
1148   __IO uint32_t CLK_VADC_CFG;               /*!< (@ 0x40051B00) CLK_VADC clock configuration register */\r
1149   __I  uint32_t CLK_VADC_STAT;              /*!< (@ 0x40051B04) CLK_VADC clock status register */\r
1150 } LPC_CCU1_Type;\r
1151 \r
1152 \r
1153 // ------------------------------------------------------------------------------------------------\r
1154 // -----                                         CCU2                                         -----\r
1155 // ------------------------------------------------------------------------------------------------\r
1156 \r
1157 \r
1158 /**\r
1159   * @brief Product name title=UM10430 Chapter title=LPC43xx Clock Control Unit (CCU) Modification date=1/21/2011 Major revision=0 Minor revision=7  (CCU2)\r
1160   */\r
1161 \r
1162 typedef struct {                            /*!< (@ 0x40052000) CCU2 Structure         */\r
1163   __IO uint32_t PM;                         /*!< (@ 0x40052000) Power mode register    */\r
1164   __I  uint32_t BASE_STAT;                  /*!< (@ 0x40052004) CCU base clocks status register */\r
1165   __I  uint32_t RESERVED0[62];\r
1166   __IO uint32_t CLK_APLL_CFG;               /*!< (@ 0x40052100) CLK_APLL clock configuration register */\r
1167   __I  uint32_t CLK_APLL_STAT;              /*!< (@ 0x40052104) CLK_APLL clock status register */\r
1168   __I  uint32_t RESERVED1[62];\r
1169   __IO uint32_t CLK_APB2_USART3_CFG;        /*!< (@ 0x40052200) CLK_APB2_USART3 clock configuration register */\r
1170   __I  uint32_t CLK_APB2_USART3_STAT;       /*!< (@ 0x40052204) CLK_APB2_USART3 clock status register */\r
1171   __I  uint32_t RESERVED2[62];\r
1172   __IO uint32_t CLK_APB2_USART2_CFG;        /*!< (@ 0x40052300) CLK_APB2_USART2 clock configuration register */\r
1173   __I  uint32_t CLK_APB2_USART2_STAT;       /*!< (@ 0x40052304) CLK_APB2_USART clock status register */\r
1174   __I  uint32_t RESERVED3[62];\r
1175   __IO uint32_t CLK_APB0_UART1_CFG;     /*!< (@ 0x40052400) CLK_APB2_UART1 clock configuration register */\r
1176   __I  uint32_t CLK_APB0_UART1_STAT;        /*!< (@ 0x40052404) CLK_APB0_UART1 clock status register */\r
1177   __I  uint32_t RESERVED4[62];\r
1178   __IO uint32_t CLK_APB0_USART0_CFG;        /*!< (@ 0x40052500) CLK_APB2_USART0 clock configuration register */\r
1179   __I  uint32_t CLK_APB0_USART0_STAT;       /*!< (@ 0x40052504) CLK_APB0_USART0 clock status register */\r
1180   __I  uint32_t RESERVED5[62];\r
1181   __IO uint32_t CLK_APB2_SSP1_CFG;          /*!< (@ 0x40052600) CLK_APB2_SSP1 clock configuration register */\r
1182   __I  uint32_t CLK_APB2_SSP1_STAT;         /*!< (@ 0x40052604) CLK_APB2_SSP1 clock status register */\r
1183   __I  uint32_t RESERVED6[62];\r
1184   __IO uint32_t CLK_APB0_SSP0_CFG;          /*!< (@ 0x40052700) CLK_APB0_SSP0 clock configuration register */\r
1185   __I  uint32_t CLK_APB0_SSP0_STAT;         /*!< (@ 0x40052704) CLK_APB0_SSP0 clock status register */\r
1186   __I  uint32_t RESERVED7[62];\r
1187   __IO uint32_t CLK_SDIO_CFG;               /*!< (@ 0x40052800) CLK_SDIO clock configuration register */\r
1188   __I  uint32_t CLK_SDIO_STAT;              /*!< (@ 0x40052804) CLK_SDIO clock status register */\r
1189 } LPC_CCU2_Type;\r
1190 \r
1191 \r
1192 // ------------------------------------------------------------------------------------------------\r
1193 // -----                                          RGU                                         -----\r
1194 // ------------------------------------------------------------------------------------------------\r
1195 \r
1196 \r
1197 /**\r
1198   * @brief Product name title=UM10430 Chapter title=LPC43xx Reset Generation Unit (RGU) Modification date=1/21/2011 Major revision=0 Minor revision=7  (RGU)\r
1199   */\r
1200 \r
1201 typedef struct {                            /*!< (@ 0x40053000) RGU Structure          */\r
1202   __I  uint32_t RESERVED0[64];\r
1203   __O  uint32_t RESET_CTRL0;                /*!< (@ 0x40053100) Reset control register 0 */\r
1204   __O  uint32_t RESET_CTRL1;                /*!< (@ 0x40053104) Reset control register 1 */\r
1205   __I  uint32_t RESERVED1[2];\r
1206   __IO uint32_t RESET_STATUS0;              /*!< (@ 0x40053110) Reset status register 0 */\r
1207   __IO uint32_t RESET_STATUS1;              /*!< (@ 0x40053114) Reset status register 1 */\r
1208   __IO uint32_t RESET_STATUS2;              /*!< (@ 0x40053118) Reset status register 2 */\r
1209   __IO uint32_t RESET_STATUS3;              /*!< (@ 0x4005311C) Reset status register 3 */\r
1210   __I  uint32_t RESERVED2[12];\r
1211   __I  uint32_t RESET_ACTIVE_STATUS0;       /*!< (@ 0x40053150) Reset active status register 0 */\r
1212   __I  uint32_t RESET_ACTIVE_STATUS1;       /*!< (@ 0x40053154) Reset active status register 1 */\r
1213   __I  uint32_t RESERVED3[170];\r
1214   __IO uint32_t RESET_EXT_STAT0;            /*!< (@ 0x40053400) Reset external status register 0 for CORE_RST */\r
1215   __IO uint32_t RESET_EXT_STAT1;            /*!< (@ 0x40053404) Reset external status register 1 for PERIPH_RST */\r
1216   __IO uint32_t RESET_EXT_STAT2;            /*!< (@ 0x40053408) Reset external status register 2 for MASTER_RST */\r
1217   __I  uint32_t RESERVED4;\r
1218   __IO uint32_t RESET_EXT_STAT4;            /*!< (@ 0x40053410) Reset external status register 4 for WWDT_RST */\r
1219   __IO uint32_t RESET_EXT_STAT5;            /*!< (@ 0x40053414) Reset external status register 5 for CREG_RST */\r
1220   __I  uint32_t RESERVED5[2];\r
1221   __IO uint32_t RESET_EXT_STAT8;            /*!< (@ 0x40053420) Reset external status register */\r
1222   __IO uint32_t RESET_EXT_STAT9;            /*!< (@ 0x40053424) Reset external status register */\r
1223   __I  uint32_t RESERVED6[3];\r
1224   __IO uint32_t RESET_EXT_STAT13;           /*!< (@ 0x40053434) Reset external status register */\r
1225   __I  uint32_t RESERVED7[2];\r
1226   __IO uint32_t RESET_EXT_STAT16;           /*!< (@ 0x40053440) Reset external status register */\r
1227   __IO uint32_t RESET_EXT_STAT17;           /*!< (@ 0x40053444) Reset external status register */\r
1228   __IO uint32_t RESET_EXT_STAT18;           /*!< (@ 0x40053448) Reset external status register */\r
1229   __IO uint32_t RESET_EXT_STAT19;           /*!< (@ 0x4005344C) Reset external status register */\r
1230   __IO uint32_t RESET_EXT_STAT20;           /*!< (@ 0x40053450) Reset external status register */\r
1231   __IO uint32_t RESET_EXT_STAT21;           /*!< (@ 0x40053454) Reset external status register */\r
1232   __IO uint32_t RESET_EXT_STAT22;           /*!< (@ 0x40053458) Reset external status register */\r
1233   __IO uint32_t RESET_EXT_STAT23;           /*!< (@ 0x4005345C) Reset external status register */\r
1234   __I  uint32_t RESERVED8[4];\r
1235   __IO uint32_t RESET_EXT_STAT28;           /*!< (@ 0x40053470) Reset external status register */\r
1236   __I  uint32_t RESERVED9[3];\r
1237   __IO uint32_t RESET_EXT_STAT32;           /*!< (@ 0x40053480) Reset external status register */\r
1238   __IO uint32_t RESET_EXT_STAT33;           /*!< (@ 0x40053484) Reset external status register */\r
1239   __IO uint32_t RESET_EXT_STAT34;           /*!< (@ 0x40053488) Reset external status register */\r
1240   __IO uint32_t RESET_EXT_STAT35;           /*!< (@ 0x4005348C) Reset external status register */\r
1241   __IO uint32_t RESET_EXT_STAT36;           /*!< (@ 0x40053490) Reset external status register */\r
1242   __IO uint32_t RESET_EXT_STAT37;           /*!< (@ 0x40053494) Reset external status register */\r
1243   __IO uint32_t RESET_EXT_STAT38;           /*!< (@ 0x40053498) Reset external status register */\r
1244   __IO uint32_t RESET_EXT_STAT39;           /*!< (@ 0x4005349C) Reset external status register */\r
1245   __IO uint32_t RESET_EXT_STAT40;           /*!< (@ 0x400534A0) Reset external status register */\r
1246   __IO uint32_t RESET_EXT_STAT41;           /*!< (@ 0x400534A4) Reset external status register */\r
1247   __IO uint32_t RESET_EXT_STAT42;           /*!< (@ 0x400534A8) Reset external status register */\r
1248   __I  uint32_t RESERVED10;\r
1249   __IO uint32_t RESET_EXT_STAT44;           /*!< (@ 0x400534B0) Reset external status register */\r
1250   __IO uint32_t RESET_EXT_STAT45;           /*!< (@ 0x400534B4) Reset external status register */\r
1251   __IO uint32_t RESET_EXT_STAT46;           /*!< (@ 0x400534B8) Reset external status register */\r
1252   __IO uint32_t RESET_EXT_STAT47;           /*!< (@ 0x400534BC) Reset external status register */\r
1253   __IO uint32_t RESET_EXT_STAT48;           /*!< (@ 0x400534C0) Reset external status register */\r
1254   __IO uint32_t RESET_EXT_STAT49;           /*!< (@ 0x400534C4) Reset external status register */\r
1255   __IO uint32_t RESET_EXT_STAT50;           /*!< (@ 0x400534C8) Reset external status register */\r
1256   __IO uint32_t RESET_EXT_STAT51;           /*!< (@ 0x400534CC) Reset external status register */\r
1257   __IO uint32_t RESET_EXT_STAT52;           /*!< (@ 0x400534D0) Reset external status register */\r
1258   __IO uint32_t RESET_EXT_STAT53;           /*!< (@ 0x400534D4) Reset external status register */\r
1259   __I  uint32_t RESERVED11;\r
1260   __IO uint32_t RESET_EXT_STAT55;           /*!< (@ 0x400534DC) Reset external status register */\r
1261   __IO uint32_t RESET_EXT_STAT56;           /*!< (@ 0x400534E0) Reset external status register */\r
1262 } LPC_RGU_Type;\r
1263 \r
1264 \r
1265 // ------------------------------------------------------------------------------------------------\r
1266 // -----                                         WWDT                                         -----\r
1267 // ------------------------------------------------------------------------------------------------\r
1268 \r
1269 \r
1270 /**\r
1271   * @brief Product name title=UM10430 Chapter title=LPC43xx Windowed Watchdog timer (WWDT) Modification date=1/14/2011 Major revision=0 Minor revision=7  (WWDT)\r
1272   */\r
1273 \r
1274 typedef struct {                            /*!< (@ 0x40080000) WWDT Structure         */\r
1275   __IO uint32_t MOD;                        /*!< (@ 0x40080000) Watchdog mode register. This register contains the basic mode and status of the Watchdog Timer. */\r
1276   __IO uint32_t TC;                         /*!< (@ 0x40080004) Watchdog timer constant register. This register determines the time-out value. */\r
1277   __O  uint32_t FEED;                       /*!< (@ 0x40080008) Watchdog feed sequence register. Writing 0xAA followed by 0x55 to this register reloads the Watchdog timer with the value contained in WDTC. */\r
1278   __I  uint32_t TV;                         /*!< (@ 0x4008000C) Watchdog timer value register. This register reads out the current value of the Watchdog timer. */\r
1279   __I  uint32_t RESERVED0;\r
1280   __IO uint32_t WARNINT;                    /*!< (@ 0x40080014) Watchdog warning interrupt register. This register contains the Watchdog warning interrupt compare value. */\r
1281   __IO uint32_t WINDOW;                     /*!< (@ 0x40080018) Watchdog timer window register. This register contains the Watchdog window value. */\r
1282 } LPC_WWDT_Type;\r
1283 \r
1284 \r
1285 // ------------------------------------------------------------------------------------------------\r
1286 // -----                                        USARTn                                        -----\r
1287 // ------------------------------------------------------------------------------------------------\r
1288 \r
1289 \r
1290 /**\r
1291   * @brief Product name title=UM10430 Chapter title=LPC43xx USART0_2_3 Modification date=1/14/2011 Major revision=0 Minor revision=7  (USARTn)\r
1292   */\r
1293 \r
1294 typedef struct {                            /*!< (@ 0x400xx000) USARTn Structure       */\r
1295 \r
1296   union {\r
1297     __IO uint32_t DLL;                      /*!< (@ 0x400xx000) 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
1298     __O  uint32_t THR;                      /*!< (@ 0x400xx000) Transmit Holding Register. The next character to be transmitted is written here (DLAB = 0). */\r
1299     __I  uint32_t RBR;                      /*!< (@ 0x400xx000) Receiver Buffer Register. Contains the next received character to be read (DLAB = 0). */\r
1300   };\r
1301 \r
1302   union {\r
1303     __IO uint32_t IER;                      /*!< (@ 0x400xx004) Interrupt Enable Register. Contains individual interrupt enable bits for the 7 potential UART interrupts (DLAB = 0). */\r
1304     __IO uint32_t DLM;                      /*!< (@ 0x400xx004) 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
1305   };\r
1306 \r
1307   union {\r
1308     __O  uint32_t FCR;                      /*!< (@ 0x400xx008) FIFO Control Register. Controls UART FIFO usage and modes. */\r
1309     __I  uint32_t IIR;                      /*!< (@ 0x400xx008) Interrupt ID Register. Identifies which interrupt(s) are pending. */\r
1310   };\r
1311   __IO uint32_t LCR;                        /*!< (@ 0x400xx00C) Line Control Register. Contains controls for frame formatting and break generation. */\r
1312   __I  uint32_t RESERVED0[1];\r
1313   __I  uint32_t LSR;                        /*!< (@ 0x400xx014) Line Status Register. Contains flags for transmit and receive status, including line errors. */\r
1314   __I  uint32_t RESERVED1[1];\r
1315   __IO uint32_t SCR;                        /*!< (@ 0x400xx01C) Scratch Pad Register. Eight-bit temporary storage for software. */\r
1316   __IO uint32_t ACR;                        /*!< (@ 0x400xx020) Auto-baud Control Register. Contains controls for the auto-baud feature. */\r
1317   __IO uint32_t ICR;                        /*!< (@ 0x400xx024) IrDA control register (UART3 only) */\r
1318   __IO uint32_t FDR;                        /*!< (@ 0x400xx028) Fractional Divider Register. Generates a clock input for the baud rate divider. */\r
1319   __I  uint32_t RESERVED2[4];\r
1320   __IO uint32_t HDEN;                       /*!< (@ 0x400xx03C) Half-duplex enable Register */\r
1321   __I  uint32_t RESERVED3[2];\r
1322   __IO uint32_t SCICTRL;                    /*!< (@ 0x400xx048) Smart card interface control register */\r
1323   __IO uint32_t RS485CTRL;                  /*!< (@ 0x400xx04C) RS-485/EIA-485 Control. Contains controls to configure various aspects of RS-485/EIA-485 modes. */\r
1324   __IO uint32_t RS485ADRMATCH;              /*!< (@ 0x400xx050) RS-485/EIA-485 address match. Contains the address match value for RS-485/EIA-485 mode. */\r
1325   __IO uint32_t RS485DLY;                   /*!< (@ 0x400xx054) RS-485/EIA-485 direction control delay. */\r
1326   __IO uint32_t SYNCCTRL;                   /*!< (@ 0x400xx058) Synchronous mode control register. */\r
1327   __IO uint32_t TER;                        /*!< (@ 0x400xx05C) Transmit Enable Register. Turns off UART transmitter for use with software flow control. */\r
1328 } LPC_USARTn_Type;\r
1329 \r
1330 \r
1331 // ------------------------------------------------------------------------------------------------\r
1332 // -----                                         UART1                                        -----\r
1333 // ------------------------------------------------------------------------------------------------\r
1334 \r
1335 \r
1336 /**\r
1337   * @brief Product name title=UM10430 Chapter title=LPC43xx UART1 Modification date=1/14/2011 Major revision=0 Minor revision=7  (UART1)\r
1338   */\r
1339 \r
1340 typedef struct {                            /*!< (@ 0x40082000) UART1 Structure        */\r
1341 \r
1342   union {\r
1343     __IO uint32_t DLL;                      /*!< (@ 0x40082000) 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
1344     __O  uint32_t THR;                      /*!< (@ 0x40082000) Transmit Holding Register. The next character to be transmitted is written here. (DLAB=0) */\r
1345     __I  uint32_t RBR;                      /*!< (@ 0x40082000) Receiver Buffer Register. Contains the next received character to be read. (DLAB=0) */\r
1346   };\r
1347 \r
1348   union {\r
1349     __IO uint32_t IER;                      /*!< (@ 0x40082004) Interrupt Enable Register. Contains individual interrupt enable bits for the 7 potential UART1 interrupts. (DLAB=0) */\r
1350     __IO uint32_t DLM;                      /*!< (@ 0x40082004) 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
1351   };\r
1352 \r
1353   union {\r
1354     __O  uint32_t FCR;                      /*!< (@ 0x40082008) FIFO Control Register. Controls UART1 FIFO usage and modes. */\r
1355     __I  uint32_t IIR;                      /*!< (@ 0x40082008) Interrupt ID Register. Identifies which interrupt(s) are pending. */\r
1356   };\r
1357   __IO uint32_t LCR;                        /*!< (@ 0x4008200C) Line Control Register. Contains controls for frame formatting and break generation. */\r
1358   __IO uint32_t MCR;                        /*!< (@ 0x40082010) Modem Control Register. Contains controls for flow control handshaking and loopback mode. */\r
1359   __I  uint32_t LSR;                        /*!< (@ 0x40082014) Line Status Register. Contains flags for transmit and receive status, including line errors. */\r
1360   __I  uint32_t MSR;                        /*!< (@ 0x40082018) Modem Status Register. Contains handshake signal status flags. */\r
1361   __IO uint32_t SCR;                        /*!< (@ 0x4008201C) Scratch Pad Register. 8-bit temporary storage for software. */\r
1362   __IO uint32_t ACR;                        /*!< (@ 0x40082020) Auto-baud Control Register. Contains controls for the auto-baud feature. */\r
1363   __I  uint32_t RESERVED0[1];\r
1364   __IO uint32_t FDR;                        /*!< (@ 0x40082028) Fractional Divider Register. Generates a clock input for the baud rate divider. */\r
1365   __I  uint32_t RESERVED1[1];\r
1366   __IO uint32_t TER;                        /*!< (@ 0x40082030) Transmit Enable Register. Turns off UART transmitter for use with software flow control. */\r
1367   __I  uint32_t RESERVED2[6];\r
1368   __IO uint32_t RS485CTRL;                  /*!< (@ 0x4008204C) RS-485/EIA-485 Control. Contains controls to configure various aspects of RS-485/EIA-485 modes. */\r
1369   __IO uint32_t RS485ADRMATCH;              /*!< (@ 0x40082050) RS-485/EIA-485 address match. Contains the address match value for RS-485/EIA-485 mode. */\r
1370   __IO uint32_t RS485DLY;                   /*!< (@ 0x40082054) RS-485/EIA-485 direction control delay. */\r
1371   __I  uint32_t FIFOLVL;                    /*!< (@ 0x40082058) FIFO Level register. Provides the current fill levels of the transmit and receive FIFOs.  */\r
1372 } LPC_UART1_Type;\r
1373 \r
1374 \r
1375 // ------------------------------------------------------------------------------------------------\r
1376 // -----                                         SSPn                                         -----\r
1377 // ------------------------------------------------------------------------------------------------\r
1378 \r
1379 \r
1380 /**\r
1381   * @brief Product name title=UM10430 Chapter title=LPC43xx SSP0/1 Modification date=1/14/2011 Major revision=0 Minor revision=7  (SSP0)\r
1382   */\r
1383 \r
1384 typedef struct {                            /*!< (@ 0x400xx000) SSPn Structure         */\r
1385   __IO uint32_t CR0;                        /*!< (@ 0x400xx000) Control Register 0. Selects the serial clock rate, bus type, and data size. */\r
1386   __IO uint32_t CR1;                        /*!< (@ 0x400xx004) Control Register 1. Selects master/slave and other modes. */\r
1387   __IO uint32_t DR;                         /*!< (@ 0x400xx008) Data Register. Writes fill the transmit FIFO, and reads empty the receive FIFO. */\r
1388   __I  uint32_t SR;                         /*!< (@ 0x400xx00C) Status Register        */\r
1389   __IO uint32_t CPSR;                       /*!< (@ 0x400xx010) Clock Prescale Register */\r
1390   __IO uint32_t IMSC;                       /*!< (@ 0x400xx014) Interrupt Mask Set and Clear Register */\r
1391   __I  uint32_t RIS;                        /*!< (@ 0x400xx018) Raw Interrupt Status Register */\r
1392   __I  uint32_t MIS;                        /*!< (@ 0x400xx01C) Masked Interrupt Status Register */\r
1393   __O  uint32_t ICR;                        /*!< (@ 0x400xx020) SSPICR Interrupt Clear Register */\r
1394   __IO uint32_t DMACR;                      /*!< (@ 0x400xx024) SSPn DMA control register */\r
1395 } LPC_SSPn_Type;\r
1396 \r
1397 \r
1398 // ------------------------------------------------------------------------------------------------\r
1399 // -----                                        TIMERn                                        -----\r
1400 // ------------------------------------------------------------------------------------------------\r
1401 \r
1402 \r
1403 /**\r
1404   * @brief Product name title=UM10430 Chapter title=LPC43xx Timer0/1/2/3 Modification date=1/14/2011 Major revision=0 Minor revision=7  (TIMERn)\r
1405   */\r
1406 \r
1407 typedef struct {                            /*!< (@ 0x400xx000) TIMERn Structure       */\r
1408   __IO uint32_t IR;                         /*!< (@ 0x400xx000) Interrupt Register. The IR can be written to clear interrupts. The IR can be read to identify which of eight possible interrupt sources are pending. */\r
1409   __IO uint32_t TCR;                        /*!< (@ 0x400xx004) Timer Control Register. The TCR is used to control the Timer Counter functions. The Timer Counter can be disabled or reset through the TCR. */\r
1410   __IO uint32_t TC;                         /*!< (@ 0x400xx008) Timer Counter. The 32 bit TC is incremented every PR+1 cycles of PCLK. The TC is controlled through the TCR. */\r
1411   __IO uint32_t PR;                         /*!< (@ 0x400xx00C) Prescale Register. The Prescale Counter (below) is equal to this value, the next clock increments the TC and clears the PC. */\r
1412   __IO uint32_t PC;                         /*!< (@ 0x400xx010) Prescale Counter. The 32 bit PC is a counter which is incremented to the value stored in PR. When the value in PR is reached, the TC is incremented and the PC is cleared. The PC is observable and controllable through the bus interface. */\r
1413   __IO uint32_t MCR;                        /*!< (@ 0x400xx014) Match Control Register. The MCR is used to control if an interrupt is generated and if the TC is reset when a Match occurs. */\r
1414   __IO uint32_t MR[4];                      /*!< (@ 0x400xx018) Match Register. MR can be enabled through the MCR to reset the TC, stop both the TC and PC, and/or generate an interrupt every time MR matches the TC. */\r
1415   __IO uint32_t CCR;                        /*!< (@ 0x400xx028) Capture Control Register. The CCR controls which edges of the capture inputs are used to load the Capture Registers and whether or not an interrupt is generated when a capture takes place. */\r
1416   __IO uint32_t CR[4];                      /*!< (@ 0x400xx02C) Capture Register. CR is loaded with the value of TC when there is an event on the CAPn.0 input. */\r
1417   __IO uint32_t EMR;                        /*!< (@ 0x400xx03C) External Match Register. The EMR controls the external match pins MATn.0-3 (MAT0.0-3 and MAT1.0-3 respectively). */\r
1418   __I  uint32_t RESERVED0[12];\r
1419   __IO uint32_t CTCR;                       /*!< (@ 0x400xx070) Count Control Register. The CTCR selects between Timer and Counter mode, and in Counter mode selects the signal and edge(s) for counting. */\r
1420 } LPC_TIMERn_Type;\r
1421 \r
1422 \r
1423 \r
1424 \r
1425 // ------------------------------------------------------------------------------------------------\r
1426 // -----                                          SCU                                         -----\r
1427 // ------------------------------------------------------------------------------------------------\r
1428 \r
1429 \r
1430 /**\r
1431   * @brief Product name title=UM10430 Chapter title=LPC43xx System Control Unit (SCU) Modification date=6/8/2011 Major revision=0 Minor revision=10  (SCU)\r
1432   */\r
1433 \r
1434 typedef struct {                            /*!< (@ 0x40086000) SCU Structure          */\r
1435   __IO uint32_t SFSP0_0;                   /*!< (@ 0x40086000) Pin configuration register for pins P0 */\r
1436   __IO uint32_t SFSP0_1;                   /*!< (@ 0x40086004) Pin configuration register for pins P0 */\r
1437   __I  uint32_t RESERVED0[30];\r
1438   __IO uint32_t SFSP1_0;                    /*!< (@ 0x40086080) Pin configuration register for pins P1 */\r
1439   __IO uint32_t SFSP1_1;                    /*!< (@ 0x40086084) Pin configuration register for pins P1 */\r
1440   __IO uint32_t SFSP1_2;                    /*!< (@ 0x40086088) Pin configuration register for pins P1 */\r
1441   __IO uint32_t SFSP1_3;                    /*!< (@ 0x4008608C) Pin configuration register for pins P1 */\r
1442   __IO uint32_t SFSP1_4;                    /*!< (@ 0x40086090) Pin configuration register for pins P1 */\r
1443   __IO uint32_t SFSP1_5;                    /*!< (@ 0x40086094) Pin configuration register for pins P1 */\r
1444   __IO uint32_t SFSP1_6;                    /*!< (@ 0x40086098) Pin configuration register for pins P1 */\r
1445   __IO uint32_t SFSP1_7;                    /*!< (@ 0x4008609C) Pin configuration register for pins P1 */\r
1446   __IO uint32_t SFSP1_8;                    /*!< (@ 0x400860A0) Pin configuration register for pins P1 */\r
1447   __IO uint32_t SFSP1_9;                    /*!< (@ 0x400860A4) Pin configuration register for pins P1 */\r
1448   __IO uint32_t SFSP1_10;                   /*!< (@ 0x400860A8) Pin configuration register for pins P1 */\r
1449   __IO uint32_t SFSP1_11;                   /*!< (@ 0x400860AC) Pin configuration register for pins P1 */\r
1450   __IO uint32_t SFSP1_12;                   /*!< (@ 0x400860B0) Pin configuration register for pins P1 */\r
1451   __IO uint32_t SFSP1_13;                   /*!< (@ 0x400860B4) Pin configuration register for pins P1 */\r
1452   __IO uint32_t SFSP1_14;                   /*!< (@ 0x400860B8) Pin configuration register for pins P1 */\r
1453   __IO uint32_t SFSP1_15;                   /*!< (@ 0x400860BC) Pin configuration register for pins P1 */\r
1454   __IO uint32_t SFSP1_16;                   /*!< (@ 0x400860C0) Pin configuration register for pins P1 */\r
1455   __IO uint32_t SFSP1_17;                   /*!< (@ 0x400860C4) Pin configuration register for pins P1 */\r
1456   __IO uint32_t SFSP1_18;                   /*!< (@ 0x400860C8) Pin configuration register for pins P1 */\r
1457   __IO uint32_t SFSP1_19;                   /*!< (@ 0x400860CC) Pin configuration register for pins P1 */\r
1458   __IO uint32_t SFSP1_20;                   /*!< (@ 0x400860D0) Pin configuration register for pins P1 */\r
1459   __I  uint32_t RESERVED1[11];\r
1460   __IO uint32_t SFSP2_0;                    /*!< (@ 0x40086100) Pin configuration register for pins P2 */\r
1461   __IO uint32_t SFSP2_1;                    /*!< (@ 0x40086104) Pin configuration register for pins P2 */\r
1462   __IO uint32_t SFSP2_2;                    /*!< (@ 0x40086108) Pin configuration register for pins P2 */\r
1463   __IO uint32_t SFSP2_3;                    /*!< (@ 0x4008610C) Pin configuration register for pins P2 */\r
1464   __IO uint32_t SFSP2_4;                    /*!< (@ 0x40086110) Pin configuration register for pins P2 */\r
1465   __IO uint32_t SFSP2_5;                    /*!< (@ 0x40086114) Pin configuration register for pins P2 */\r
1466   __IO uint32_t SFSP2_6;                    /*!< (@ 0x40086118) Pin configuration register for pins P2 */\r
1467   __IO uint32_t SFSP2_7;                    /*!< (@ 0x4008611C) Pin configuration register for pins P2 */\r
1468   __IO uint32_t SFSP2_8;                    /*!< (@ 0x40086120) Pin configuration register for pins P2 */\r
1469   __IO uint32_t SFSP2_9;                    /*!< (@ 0x40086124) Pin configuration register for pins P2 */\r
1470   __IO uint32_t SFSP2_10;                   /*!< (@ 0x40086128) Pin configuration register for pins P2 */\r
1471   __IO uint32_t SFSP2_11;                   /*!< (@ 0x4008612C) Pin configuration register for pins P2 */\r
1472   __IO uint32_t SFSP2_12;                   /*!< (@ 0x40086130) Pin configuration register for pins P2 */\r
1473   __IO uint32_t SFSP2_13;                   /*!< (@ 0x40086134) Pin configuration register for pins P2 */\r
1474   __I  uint32_t RESERVED2[18];\r
1475   __IO uint32_t SFSP3_0;                        /*!< (@ 0x40086180) Pin configuration register for pins P3 */\r
1476   __IO uint32_t SFSP3_1;                        /*!< (@ 0x40086184) Pin configuration register for pins P3 */\r
1477   __IO uint32_t SFSP3_2;                        /*!< (@ 0x40086188) Pin configuration register for pins P3 */\r
1478   __IO uint32_t SFSP3_3;                        /*!< (@ 0x4008618C) Pin configuration register for pins P3 */\r
1479   __IO uint32_t SFSP3_4;                        /*!< (@ 0x40086190) Pin configuration register for pins P3 */\r
1480   __IO uint32_t SFSP3_5;                        /*!< (@ 0x40086194) Pin configuration register for pins P3 */\r
1481   __IO uint32_t SFSP3_6;                        /*!< (@ 0x40086198) Pin configuration register for pins P3 */\r
1482   __IO uint32_t SFSP3_7;                        /*!< (@ 0x4008619C) Pin configuration register for pins P3 */\r
1483   __IO uint32_t SFSP3_8;                        /*!< (@ 0x400861A0) Pin configuration register for pins P3 */\r
1484   __I  uint32_t RESERVED3[23];\r
1485   __IO uint32_t SFSP4_0;                    /*!< (@ 0x40086200) Pin configuration register for pins P4 */\r
1486   __IO uint32_t SFSP4_1;                    /*!< (@ 0x40086204) Pin configuration register for pins P4 */\r
1487   __IO uint32_t SFSP4_2;                    /*!< (@ 0x40086208) Pin configuration register for pins P4 */\r
1488   __IO uint32_t SFSP4_3;                    /*!< (@ 0x4008620C) Pin configuration register for pins P4 */\r
1489   __IO uint32_t SFSP4_4;                    /*!< (@ 0x40086210) Pin configuration register for pins P4 */\r
1490   __IO uint32_t SFSP4_5;                    /*!< (@ 0x40086214) Pin configuration register for pins P4 */\r
1491   __IO uint32_t SFSP4_6;                    /*!< (@ 0x40086218) Pin configuration register for pins P4 */\r
1492   __IO uint32_t SFSP4_7;                    /*!< (@ 0x4008621C) Pin configuration register for pins P4 */\r
1493   __IO uint32_t SFSP4_8;                    /*!< (@ 0x40086220) Pin configuration register for pins P4 */\r
1494   __IO uint32_t SFSP4_9;                    /*!< (@ 0x40086224) Pin configuration register for pins P4 */\r
1495   __IO uint32_t SFSP4_10;                   /*!< (@ 0x40086228) Pin configuration register for pins P4 */\r
1496   __I  uint32_t RESERVED4[21];\r
1497   __IO uint32_t SFSP5_0;                        /*!< (@ 0x40086280) Pin configuration register for pins P5 */\r
1498   __IO uint32_t SFSP5_1;                        /*!< (@ 0x40086284) Pin configuration register for pins P5 */\r
1499   __IO uint32_t SFSP5_2;                        /*!< (@ 0x40086288) Pin configuration register for pins P5 */\r
1500   __IO uint32_t SFSP5_3;                        /*!< (@ 0x4008628C) Pin configuration register for pins P5 */\r
1501   __IO uint32_t SFSP5_4;                        /*!< (@ 0x40086290) Pin configuration register for pins P5 */\r
1502   __IO uint32_t SFSP5_5;                        /*!< (@ 0x40086294) Pin configuration register for pins P5 */\r
1503   __IO uint32_t SFSP5_6;                        /*!< (@ 0x40086298) Pin configuration register for pins P5 */\r
1504   __IO uint32_t SFSP5_7;                        /*!< (@ 0x4008629C) Pin configuration register for pins P5 */\r
1505   __I  uint32_t RESERVED5[24];\r
1506   __IO uint32_t SFSP6_0;                    /*!< (@ 0x40086300) Pin configuration register for pins P6 */\r
1507   __IO uint32_t SFSP6_1;                    /*!< (@ 0x40086304) Pin configuration register for pins P6 */\r
1508   __IO uint32_t SFSP6_2;                    /*!< (@ 0x40086308) Pin configuration register for pins P6 */\r
1509   __IO uint32_t SFSP6_3;                    /*!< (@ 0x4008630C) Pin configuration register for pins P6 */\r
1510   __IO uint32_t SFSP6_4;                    /*!< (@ 0x40086310) Pin configuration register for pins P6 */\r
1511   __IO uint32_t SFSP6_5;                    /*!< (@ 0x40086314) Pin configuration register for pins P6 */\r
1512   __IO uint32_t SFSP6_6;                    /*!< (@ 0x40086318) Pin configuration register for pins P6 */\r
1513   __IO uint32_t SFSP6_7;                    /*!< (@ 0x4008631C) Pin configuration register for pins P6 */\r
1514   __IO uint32_t SFSP6_8;                    /*!< (@ 0x40086320) Pin configuration register for pins P6 */\r
1515   __IO uint32_t SFSP6_9;                    /*!< (@ 0x40086324) Pin configuration register for pins P6 */\r
1516   __IO uint32_t SFSP6_10;                   /*!< (@ 0x40086328) Pin configuration register for pins P6 */\r
1517   __IO uint32_t SFSP6_11;                   /*!< (@ 0x4008632C) Pin configuration register for pins P6 */\r
1518   __IO uint32_t SFSP6_12;                   /*!< (@ 0x40086330) Pin configuration register for pins P6 */\r
1519   __I  uint32_t RESERVED6[19];\r
1520   __IO uint32_t SFSP7_0;                        /*!< (@ 0x40086380) Pin configuration register for pins P7 */\r
1521   __IO uint32_t SFSP7_1;                        /*!< (@ 0x40086384) Pin configuration register for pins P7 */\r
1522   __IO uint32_t SFSP7_2;                        /*!< (@ 0x40086388) Pin configuration register for pins P7 */\r
1523   __IO uint32_t SFSP7_3;                        /*!< (@ 0x4008638C) Pin configuration register for pins P7 */\r
1524   __IO uint32_t SFSP7_4;                        /*!< (@ 0x40086390) Pin configuration register for pins P7 */\r
1525   __IO uint32_t SFSP7_5;                        /*!< (@ 0x40086394) Pin configuration register for pins P7 */\r
1526   __IO uint32_t SFSP7_6;                        /*!< (@ 0x40086398) Pin configuration register for pins P7 */\r
1527   __IO uint32_t SFSP7_7;                        /*!< (@ 0x4008639C) Pin configuration register for pins P7 */\r
1528   __I  uint32_t RESERVED7[24];\r
1529   __IO uint32_t SFSP8_0;                        /*!< (@ 0x40086400) Pin configuration register for pins P8 */\r
1530   __IO uint32_t SFSP8_1;                        /*!< (@ 0x40086404) Pin configuration register for pins P8 */\r
1531   __IO uint32_t SFSP8_2;                        /*!< (@ 0x40086408) Pin configuration register for pins P8 */\r
1532   __IO uint32_t SFSP8_3;                        /*!< (@ 0x4008640C) Pin configuration register for pins P8 */\r
1533   __IO uint32_t SFSP8_4;                        /*!< (@ 0x40086410) Pin configuration register for pins P8 */\r
1534   __IO uint32_t SFSP8_5;                        /*!< (@ 0x40086414) Pin configuration register for pins P8 */\r
1535   __IO uint32_t SFSP8_6;                        /*!< (@ 0x40086418) Pin configuration register for pins P8 */\r
1536   __IO uint32_t SFSP8_7;                        /*!< (@ 0x4008641C) Pin configuration register for pins P8 */\r
1537   __IO uint32_t SFSP8_8;                        /*!< (@ 0x40086420) Pin configuration register for pins P8 */\r
1538   __I  uint32_t RESERVED8[23];\r
1539   __IO uint32_t SFSP9_0;                        /*!< (@ 0x40086480) Pin configuration register for pins P9 */\r
1540   __IO uint32_t SFSP9_1;                        /*!< (@ 0x40086484) Pin configuration register for pins P9 */\r
1541   __IO uint32_t SFSP9_2;                        /*!< (@ 0x40086488) Pin configuration register for pins P9 */\r
1542   __IO uint32_t SFSP9_3;                        /*!< (@ 0x4008648C) Pin configuration register for pins P9 */\r
1543   __IO uint32_t SFSP9_4;                        /*!< (@ 0x40086490) Pin configuration register for pins P9 */\r
1544   __IO uint32_t SFSP9_5;                        /*!< (@ 0x40086494) Pin configuration register for pins P9 */\r
1545   __IO uint32_t SFSP9_6;                        /*!< (@ 0x40086498) Pin configuration register for pins P9 */\r
1546   __I  uint32_t RESERVED9[25];\r
1547   __IO uint32_t SFSPA_0;                        /*!< (@ 0x40086500) Pin configuration register for pins PA */\r
1548   __IO uint32_t SFSPA_1;                        /*!< (@ 0x40086504) Pin configuration register for pins PA */\r
1549   __IO uint32_t SFSPA_2;                        /*!< (@ 0x40086508) Pin configuration register for pins PA */\r
1550   __IO uint32_t SFSPA_3;                        /*!< (@ 0x4008650C) Pin configuration register for pins PA */\r
1551   __IO uint32_t SFSPA_4;                        /*!< (@ 0x40086510) Pin configuration register for pins PA */\r
1552   __I  uint32_t RESERVED10[27];\r
1553   __IO uint32_t SFSPB_0;                        /*!< (@ 0x40086580) Pin configuration register for pins PB */\r
1554   __IO uint32_t SFSPB_1;                        /*!< (@ 0x40086584) Pin configuration register for pins PB */\r
1555   __IO uint32_t SFSPB_2;                        /*!< (@ 0x40086588) Pin configuration register for pins PB */\r
1556   __IO uint32_t SFSPB_3;                        /*!< (@ 0x4008658C) Pin configuration register for pins PB */\r
1557   __IO uint32_t SFSPB_4;                        /*!< (@ 0x40086590) Pin configuration register for pins PB */\r
1558   __IO uint32_t SFSPB_5;                        /*!< (@ 0x40086594) Pin configuration register for pins PB */\r
1559   __IO uint32_t SFSPB_6;                        /*!< (@ 0x40086598) Pin configuration register for pins PB */\r
1560   __I  uint32_t RESERVED11[25];\r
1561   __IO uint32_t SFSPC_0;                    /*!< (@ 0x40086600) Pin configuration register for pins PC */\r
1562   __IO uint32_t SFSPC_1;                    /*!< (@ 0x40086604) Pin configuration register for pins PC */\r
1563   __IO uint32_t SFSPC_2;                    /*!< (@ 0x40086608) Pin configuration register for pins PC */\r
1564   __IO uint32_t SFSPC_3;                    /*!< (@ 0x4008660C) Pin configuration register for pins PC */\r
1565   __IO uint32_t SFSPC_4;                    /*!< (@ 0x40086610) Pin configuration register for pins PC */\r
1566   __IO uint32_t SFSPC_5;                    /*!< (@ 0x40086614) Pin configuration register for pins PC */\r
1567   __IO uint32_t SFSPC_6;                    /*!< (@ 0x40086618) Pin configuration register for pins PC */\r
1568   __IO uint32_t SFSPC_7;                    /*!< (@ 0x4008661C) Pin configuration register for pins PC */\r
1569   __IO uint32_t SFSPC_8;                    /*!< (@ 0x40086620) Pin configuration register for pins PC */\r
1570   __IO uint32_t SFSPC_9;                    /*!< (@ 0x40086624) Pin configuration register for pins PC */\r
1571   __IO uint32_t SFSPC_10;                   /*!< (@ 0x40086628) Pin configuration register for pins PC */\r
1572   __IO uint32_t SFSPC_11;                   /*!< (@ 0x4008662C) Pin configuration register for pins PC */\r
1573   __IO uint32_t SFSPC_12;                   /*!< (@ 0x40086630) Pin configuration register for pins PC */\r
1574   __IO uint32_t SFSPC_13;                   /*!< (@ 0x40086634) Pin configuration register for pins PC */\r
1575   __IO uint32_t SFSPC_14;                   /*!< (@ 0x40086638) Pin configuration register for pins PC */\r
1576   __I  uint32_t RESERVED12[17];\r
1577   __IO uint32_t SFSPD_0;                    /*!< (@ 0x40086680) Pin configuration register for pins PD */\r
1578   __IO uint32_t SFSPD_1;                    /*!< (@ 0x40086684) Pin configuration register for pins PD */\r
1579   __IO uint32_t SFSPD_2;                    /*!< (@ 0x40086688) Pin configuration register for pins PD */\r
1580   __IO uint32_t SFSPD_3;                    /*!< (@ 0x4008668C) Pin configuration register for pins PD */\r
1581   __IO uint32_t SFSPD_4;                    /*!< (@ 0x40086690) Pin configuration register for pins PD */\r
1582   __IO uint32_t SFSPD_5;                    /*!< (@ 0x40086694) Pin configuration register for pins PD */\r
1583   __IO uint32_t SFSPD_6;                    /*!< (@ 0x40086698) Pin configuration register for pins PD */\r
1584   __IO uint32_t SFSPD_7;                    /*!< (@ 0x4008669C) Pin configuration register for pins PD */\r
1585   __IO uint32_t SFSPD_8;                    /*!< (@ 0x400866A0) Pin configuration register for pins PD */\r
1586   __IO uint32_t SFSPD_9;                    /*!< (@ 0x400866A4) Pin configuration register for pins PD */\r
1587   __IO uint32_t SFSPD_10;                   /*!< (@ 0x400866A8) Pin configuration register for pins PD */\r
1588   __IO uint32_t SFSPD_11;                   /*!< (@ 0x400866AC) Pin configuration register for pins PD */\r
1589   __IO uint32_t SFSPD_12;                   /*!< (@ 0x400866B0) Pin configuration register for pins PD */\r
1590   __IO uint32_t SFSPD_13;                   /*!< (@ 0x400866B4) Pin configuration register for pins PD */\r
1591   __IO uint32_t SFSPD_14;                   /*!< (@ 0x400866B8) Pin configuration register for pins PD */\r
1592   __IO uint32_t SFSPD_15;                   /*!< (@ 0x400866BC) Pin configuration register for pins PD */\r
1593   __IO uint32_t SFSPD_16;                   /*!< (@ 0x400866C0) Pin configuration register for pins PD */\r
1594   __I  uint32_t RESERVED13[15];\r
1595   __IO uint32_t SFSPE_0;                    /*!< (@ 0x40086700) Pin configuration register for pins PE */\r
1596   __IO uint32_t SFSPE_1;                    /*!< (@ 0x40086704) Pin configuration register for pins PE */\r
1597   __IO uint32_t SFSPE_2;                    /*!< (@ 0x40086708) Pin configuration register for pins PE */\r
1598   __IO uint32_t SFSPE_3;                    /*!< (@ 0x4008670C) Pin configuration register for pins PE */\r
1599   __IO uint32_t SFSPE_4;                    /*!< (@ 0x40086710) Pin configuration register for pins PE */\r
1600   __IO uint32_t SFSPE_5;                    /*!< (@ 0x40086714) Pin configuration register for pins PE */\r
1601   __IO uint32_t SFSPE_6;                    /*!< (@ 0x40086718) Pin configuration register for pins PE */\r
1602   __IO uint32_t SFSPE_7;                    /*!< (@ 0x4008671C) Pin configuration register for pins PE */\r
1603   __IO uint32_t SFSPE_8;                    /*!< (@ 0x40086720) Pin configuration register for pins PE */\r
1604   __IO uint32_t SFSPE_9;                    /*!< (@ 0x40086724) Pin configuration register for pins PE */\r
1605   __IO uint32_t SFSPE_10;                   /*!< (@ 0x40086728) Pin configuration register for pins PE */\r
1606   __IO uint32_t SFSPE_11;                   /*!< (@ 0x4008672C) Pin configuration register for pins PE */\r
1607   __IO uint32_t SFSPE_12;                   /*!< (@ 0x40086730) Pin configuration register for pins PE */\r
1608   __IO uint32_t SFSPE_13;                   /*!< (@ 0x40086734) Pin configuration register for pins PE */\r
1609   __IO uint32_t SFSPE_14;                   /*!< (@ 0x40086738) Pin configuration register for pins PE */\r
1610   __IO uint32_t SFSPE_15;                   /*!< (@ 0x4008673C) Pin configuration register for pins PE */\r
1611   __I  uint32_t RESERVED14[16];\r
1612   __IO uint32_t SFSPF_0;                    /*!< (@ 0x40086780) Pin configuration register for pins PF */\r
1613   __IO uint32_t SFSPF_1;                    /*!< (@ 0x40086784) Pin configuration register for pins PF */\r
1614   __IO uint32_t SFSPF_2;                    /*!< (@ 0x40086788) Pin configuration register for pins PF */\r
1615   __IO uint32_t SFSPF_3;                    /*!< (@ 0x4008678C) Pin configuration register for pins PF */\r
1616   __IO uint32_t SFSPF_4;                    /*!< (@ 0x40086790) Pin configuration register for pins PF */\r
1617   __IO uint32_t SFSPF_5;                    /*!< (@ 0x40086794) Pin configuration register for pins PF */\r
1618   __IO uint32_t SFSPF_6;                    /*!< (@ 0x40086798) Pin configuration register for pins PF */\r
1619   __IO uint32_t SFSPF_7;                    /*!< (@ 0x4008679C) Pin configuration register for pins PF */\r
1620   __IO uint32_t SFSPF_8;                    /*!< (@ 0x400867A0) Pin configuration register for pins PF */\r
1621   __IO uint32_t SFSPF_9;                    /*!< (@ 0x400867A4) Pin configuration register for pins PF */\r
1622   __IO uint32_t SFSPF_10;                   /*!< (@ 0x400867A8) Pin configuration register for pins PF */\r
1623   __IO uint32_t SFSPF_11;                   /*!< (@ 0x400867AC) Pin configuration register for pins PF */\r
1624   __I  uint32_t RESERVED15[276];\r
1625   __IO uint32_t SFSCLK_0;                   /*!< (@ 0x40086C00) Pin configuration register for pin CLK0 */\r
1626   __IO uint32_t SFSCLK_1;                   /*!< (@ 0x40086C04) Pin configuration register for pin CLK1 */\r
1627   __IO uint32_t SFSCLK_2;                   /*!< (@ 0x40086C08) Pin configuration register for pin CLK2 */\r
1628   __IO uint32_t SFSCLK_3;                   /*!< (@ 0x40086C0C) Pin configuration register for pin CLK3 */\r
1629   __I  uint32_t RESERVED16[28];\r
1630   __IO uint32_t SFSUSB;                     /*!< (@ 0x40086C80) Pin configuration register for */\r
1631   __IO uint32_t SFSI2C0;                    /*!< (@ 0x40086C84) Pin configuration register for I 2C0-bus pins */\r
1632   __IO uint32_t ENAIO0;                     /*!< (@ 0x40086C88) ADC0 function select register */\r
1633   __IO uint32_t ENAIO1;                     /*!< (@ 0x40086C8C) ADC1 function select register */\r
1634   __IO uint32_t ENAIO2;                     /*!< (@ 0x40086C90) Analog function select register */\r
1635   __I  uint32_t RESERVED17[27];\r
1636   __IO uint32_t EMCCLKDELAY;                /*!< (@ 0x40086D00) EMC clock delay register */\r
1637   __IO uint32_t EMCCTRLDELAY;               /*!< (@ 0x40086D04) EMC control delay register */\r
1638   __IO uint32_t EMCCSDELAY;                 /*!< (@ 0x40086D08) EMC chip select delay register */\r
1639   __IO uint32_t EMCDOUTDELAY;               /*!< (@ 0x40086D0C) EMC data out delay register */\r
1640   __IO uint32_t EMCFBCLKDELAY;              /*!< (@ 0x40086D10) EMC FBCLK delay register */\r
1641   __IO uint32_t EMCADDRDELAY0;              /*!< (@ 0x40086D14) EMC address line delay register 0 */\r
1642   __IO uint32_t EMCADDRDELAY1;              /*!< (@ 0x40086D18) EMC address line delay register 1 */\r
1643   __IO uint32_t EMCADDRDELAY2;              /*!< (@ 0x40086D1C) EMC address line delay register 2 */\r
1644   __I  uint32_t RESERVED18;\r
1645   __IO uint32_t EMCDINDELAY;                /*!< (@ 0x40086D24) EMC data delay register */\r
1646   __I  uint32_t RESERVED19[54];\r
1647   __IO uint32_t PINTSEL0;                   /*!< (@ 0x40086E00) Pin interrupt select register for pin interrupts 0 to 3. */\r
1648   __IO uint32_t PINTSEL1;                   /*!< (@ 0x40086E04) Pin interrupt select register for pin interrupts 4 to 7. */\r
1649 } LPC_SCU_Type;\r
1650 \r
1651 // ------------------------------------------------------------------------------------------------\r
1652 // -----                                         MCPWM                                        -----\r
1653 // ------------------------------------------------------------------------------------------------\r
1654 \r
1655 \r
1656 /**\r
1657   * @brief Product name title=UM10430 Chapter title=LPC43xx Motor Control PWM (MOTOCONPWM) Modification date=1/14/2011 Major revision=0 Minor revision=7  (MCPWM)\r
1658   */\r
1659 \r
1660 typedef struct {                            /*!< (@ 0x400A0000) MCPWM Structure        */\r
1661   __I  uint32_t CON;                        /*!< (@ 0x400A0000) PWM Control read address */\r
1662   __O  uint32_t CON_SET;                    /*!< (@ 0x400A0004) PWM Control set address */\r
1663   __O  uint32_t CON_CLR;                    /*!< (@ 0x400A0008) PWM Control clear address */\r
1664   __I  uint32_t CAPCON;                     /*!< (@ 0x400A000C) Capture Control read address */\r
1665   __O  uint32_t CAPCON_SET;                 /*!< (@ 0x400A0010) Capture Control set address */\r
1666   __O  uint32_t CAPCON_CLR;                 /*!< (@ 0x400A0014) Event Control clear address */\r
1667   __IO uint32_t TC[3];                      /*!< (@ 0x400A0018) Timer Counter register */\r
1668   __IO uint32_t LIM[3];                     /*!< (@ 0x400A0024) Limit register         */\r
1669   __IO uint32_t MAT[3];                     /*!< (@ 0x400A0030) Match register         */\r
1670   __IO uint32_t DT;                         /*!< (@ 0x400A003C) Dead time register     */\r
1671   __IO uint32_t CCP;                        /*!< (@ 0x400A0040) Communication Pattern register */\r
1672   __I  uint32_t CAP[3];                     /*!< (@ 0x400A0044) Capture register       */\r
1673   __I  uint32_t INTEN;                      /*!< (@ 0x400A0050) Interrupt Enable read address */\r
1674   __O  uint32_t INTEN_SET;                  /*!< (@ 0x400A0054) Interrupt Enable set address */\r
1675   __O  uint32_t INTEN_CLR;                  /*!< (@ 0x400A0058) Interrupt Enable clear address */\r
1676   __I  uint32_t CNTCON;                     /*!< (@ 0x400A005C) Count Control read address */\r
1677   __O  uint32_t CNTCON_SET;                 /*!< (@ 0x400A0060) Count Control set address */\r
1678   __O  uint32_t CNTCON_CLR;                 /*!< (@ 0x400A0064) Count Control clear address */\r
1679   __I  uint32_t INTF;                       /*!< (@ 0x400A0068) Interrupt flags read address */\r
1680   __O  uint32_t INTF_SET;                   /*!< (@ 0x400A006C) Interrupt flags set address */\r
1681   __O  uint32_t INTF_CLR;                   /*!< (@ 0x400A0070) Interrupt flags clear address */\r
1682   __O  uint32_t CAP_CLR;                    /*!< (@ 0x400A0074) Capture clear address  */\r
1683 } LPC_MCPWM_Type;\r
1684 \r
1685 \r
1686 // ------------------------------------------------------------------------------------------------\r
1687 // -----                                         I2Cn                                         -----\r
1688 // ------------------------------------------------------------------------------------------------\r
1689 \r
1690 \r
1691 /**\r
1692   * @brief Product name title=UM10430 Chapter title=LPC43xx I2C0/1-bus interface Modification date=1/14/2011 Major revision=0 Minor revision=7  (I2Cn)\r
1693   */\r
1694 \r
1695 typedef struct {                            /*!< (@ 0x400xx000) I2C0 Structure         */\r
1696   __IO uint32_t CONSET;                     /*!< (@ 0x400xx000) I2C Control Set Register. When a one is written to a bit of this register, the corresponding bit in the I2C control register is set. Writing a zero has no effect on the corresponding bit in the I2C control register. */\r
1697   __I  uint32_t STAT;                       /*!< (@ 0x400xx004) I2C Status Register. During I2C operation, this register provides detailed status codes that allow software to determine the next action needed. */\r
1698   __IO uint32_t DAT;                        /*!< (@ 0x400xx008) I2C Data Register. During master or slave transmit mode, data to be transmitted is written to this register. During master or slave receive mode, data that has been received may be read from this register. */\r
1699   __IO uint32_t ADR0;                       /*!< (@ 0x400xx00C) I2C Slave Address Register 0. Contains the 7-bit slave address for operation of the I2C interface in slave mode, and is not used in master mode. The least significant bit determines whether a slave responds to the General Call address. */\r
1700   __IO uint32_t SCLH;                       /*!< (@ 0x400xx010) SCH Duty Cycle Register High Half Word. Determines the high time of the I2C clock. */\r
1701   __IO uint32_t SCLL;                       /*!< (@ 0x400xx014) SCL Duty Cycle Register Low Half Word. Determines the low time of the I2C clock. SCLL and SCLH together determine the clock frequency generated by an I2C master and certain times used in slave mode. */\r
1702   __O  uint32_t CONCLR;                     /*!< (@ 0x400xx018) I2C Control Clear Register. When a one is written to a bit of this register, the corresponding bit in the I2C control register is cleared. Writing a zero has no effect on the corresponding bit in the I2C control register. */\r
1703   __IO uint32_t MMCTRL;                     /*!< (@ 0x400xx01C) Monitor mode control register. */\r
1704   __IO uint32_t ADR1;                       /*!< (@ 0x400xx020) I2C Slave Address Register. Contains the 7-bit slave address for operation of the I2C interface in slave mode, and is not used in master mode. The least significant bit determines whether a slave responds to the General Call address. */\r
1705   __IO uint32_t ADR2;                       /*!< (@ 0x400xx024) I2C Slave Address Register. Contains the 7-bit slave address for operation of the I2C interface in slave mode, and is not used in master mode. The least significant bit determines whether a slave responds to the General Call address. */\r
1706   __IO uint32_t ADR3;                       /*!< (@ 0x400xx028) I2C Slave Address Register. Contains the 7-bit slave address for operation of the I2C interface in slave mode, and is not used in master mode. The least significant bit determines whether a slave responds to the General Call address. */\r
1707   __I  uint32_t DATA_BUFFER;                /*!< (@ 0x400xx02C) Data buffer register. The contents of the 8 MSBs of the DAT shift register will be transferred to the DATA_BUFFER automatically after every nine bits (8 bits of data plus ACK or NACK) has been received on the bus. */\r
1708   __IO uint32_t MASK[4];                    /*!< (@ 0x400xx030) I2C Slave address mask register */\r
1709 } LPC_I2Cn_Type;\r
1710 \r
1711 // ------------------------------------------------------------------------------------------------\r
1712 // -----                                         I2Sn                                         -----\r
1713 // ------------------------------------------------------------------------------------------------\r
1714 \r
1715 \r
1716 /**\r
1717   * @brief Product name title=UM10430 Chapter title=LPC43xx I2S interface Modification date=1/14/2011 Major revision=0 Minor revision=7  (I2Sn)\r
1718     0x400A2000 / 0x400A3000\r
1719   */\r
1720 \r
1721 typedef struct {                            /*!< (@ 0x400Ax000) I2S Structure         */\r
1722   __IO uint32_t DAO;                        /*!< (@ 0x400Ax000) I2S Digital Audio Output Register. Contains control bits for the I2S transmit channel. */\r
1723   __IO uint32_t DAI;                        /*!< (@ 0x400Ax004) I2S Digital Audio Input Register. Contains control bits for the I2S receive channel. */\r
1724   __O  uint32_t TXFIFO;                     /*!< (@ 0x400Ax008) I2S Transmit FIFO. Access register for the 8 x 32-bit transmitter FIFO. */\r
1725   __I  uint32_t RXFIFO;                     /*!< (@ 0x400Ax00C) I2S Receive FIFO. Access register for the 8 x 32-bit receiver FIFO. */\r
1726   __I  uint32_t STATE;                      /*!< (@ 0x400Ax010) I2S Status Feedback Register. Contains status information about the I2S interface. */\r
1727   __IO uint32_t DMA1;                       /*!< (@ 0x400Ax014) I2S DMA Configuration Register 1. Contains control information for DMA request 1. */\r
1728   __IO uint32_t DMA2;                       /*!< (@ 0x400Ax018) I2S DMA Configuration Register 2. Contains control information for DMA request 2. */\r
1729   __IO uint32_t IRQ;                        /*!< (@ 0x400Ax01C) I2S Interrupt Request Control Register. Contains bits that control how the I2S interrupt request is generated. */\r
1730   __IO uint32_t TXRATE;                     /*!< (@ 0x400Ax020) I2S Transmit MCLK divider. This register determines the I2S TX MCLK rate by specifying the value to divide PCLK by in order to produce MCLK. */\r
1731   __IO uint32_t RXRATE;                     /*!< (@ 0x400Ax024) I2S Receive MCLK divider. This register determines the I2S RX MCLK rate by specifying the value to divide PCLK by in order to produce MCLK. */\r
1732   __IO uint32_t TXBITRATE;                  /*!< (@ 0x400Ax028) I2S Transmit bit rate divider. This register determines the I2S transmit bit rate by specifying the value to divide TX_MCLK by in order to produce the transmit bit clock. */\r
1733   __IO uint32_t RXBITRATE;                  /*!< (@ 0x400Ax02C) I2S Receive bit rate divider. This register determines the I2S receive bit rate by specifying the value to divide RX_MCLK by in order to produce the receive bit clock. */\r
1734   __IO uint32_t TXMODE;                     /*!< (@ 0x400Ax030) I2S Transmit mode control. */\r
1735   __IO uint32_t RXMODE;                     /*!< (@ 0x400Ax034) I2S Receive mode control. */\r
1736 } LPC_I2Sn_Type;\r
1737 \r
1738 \r
1739 // ------------------------------------------------------------------------------------------------\r
1740 // -----                                        RITIMER                                       -----\r
1741 // ------------------------------------------------------------------------------------------------\r
1742 \r
1743 \r
1744 /**\r
1745   * @brief Product name title=UM10430 Chapter title=LPC43xx Repetitive Interrupt Timer (RIT) Modification date=1/14/2011 Major revision=0 Minor revision=7  (RITIMER)\r
1746   */\r
1747 \r
1748 typedef struct {                            /*!< (@ 0x400C0000) RITIMER Structure      */\r
1749   __IO uint32_t COMPVAL;                    /*!< (@ 0x400C0000) Compare register       */\r
1750   __IO uint32_t MASK;                       /*!< (@ 0x400C0004) Mask register. This register holds the 32-bit mask value. A 1 written to any bit will force a compare on the corresponding bit of the counter and compare register. */\r
1751   __IO uint32_t CTRL;                       /*!< (@ 0x400C0008) Control register.      */\r
1752   __IO uint32_t COUNTER;                    /*!< (@ 0x400C000C) 32-bit counter         */\r
1753 } LPC_RITIMER_Type;\r
1754 \r
1755 \r
1756 // ------------------------------------------------------------------------------------------------\r
1757 // -----                                          QEI                                         -----\r
1758 // ------------------------------------------------------------------------------------------------\r
1759 \r
1760 \r
1761 /**\r
1762   * @brief Product name title=UM10430 Chapter title=LPC43xx Quadrature Encoder Interface (QEI) Modification date=1/18/2011 Major revision=0 Minor revision=7  (QEI)\r
1763   */\r
1764 \r
1765 typedef struct {                            /*!< (@ 0x400C6000) QEI Structure          */\r
1766   __O  uint32_t CON;                        /*!< (@ 0x400C6000) Control register       */\r
1767   __I  uint32_t STAT;                       /*!< (@ 0x400C6004) Encoder status register */\r
1768   __IO uint32_t CONF;                       /*!< (@ 0x400C6008) Configuration register */\r
1769   __I  uint32_t POS;                        /*!< (@ 0x400C600C) Position register      */\r
1770   __IO uint32_t MAXPOS;                     /*!< (@ 0x400C6010) Maximum position register */\r
1771   __IO uint32_t CMPOS0;                     /*!< (@ 0x400C6014) position compare register 0 */\r
1772   __IO uint32_t CMPOS1;                     /*!< (@ 0x400C6018) position compare register 1 */\r
1773   __IO uint32_t CMPOS2;                     /*!< (@ 0x400C601C) position compare register 2 */\r
1774   __I  uint32_t INXCNT;                     /*!< (@ 0x400C6020) Index count register   */\r
1775   __IO uint32_t INXCMP0;                    /*!< (@ 0x400C6024) Index compare register 0 */\r
1776   __IO uint32_t LOAD;                       /*!< (@ 0x400C6028) Velocity timer reload register */\r
1777   __I  uint32_t TIME;                       /*!< (@ 0x400C602C) Velocity timer register */\r
1778   __I  uint32_t VEL;                        /*!< (@ 0x400C6030) Velocity counter register */\r
1779   __I  uint32_t CAP;                        /*!< (@ 0x400C6034) Velocity capture register */\r
1780   __IO uint32_t VELCOMP;                    /*!< (@ 0x400C6038) Velocity compare register */\r
1781   __IO uint32_t FILTERPHA;                  /*!< (@ 0x400C603C) Digital filter register on input phase A (QEI_A) */\r
1782   __IO uint32_t FILTERPHB;                  /*!< (@ 0x400C6040) Digital filter register on input phase B (QEI_B) */\r
1783   __IO uint32_t FILTERINX;                  /*!< (@ 0x400C6044) Digital filter register on input index (QEI_IDX) */\r
1784   __IO uint32_t WINDOW;                     /*!< (@ 0x400C6048) Index acceptance window register */\r
1785   __IO uint32_t INXCMP1;                    /*!< (@ 0x400C604C) Index compare register 1 */\r
1786   __IO uint32_t INXCMP2;                    /*!< (@ 0x400C6050) Index compare register 2 */\r
1787   __I  uint32_t RESERVED0[993];\r
1788   __O  uint32_t IEC;                        /*!< (@ 0x400C6FD8) Interrupt enable clear register */\r
1789   __O  uint32_t IES;                        /*!< (@ 0x400C6FDC) Interrupt enable set register */\r
1790   __I  uint32_t INTSTAT;                    /*!< (@ 0x400C6FE0) Interrupt status register */\r
1791   __I  uint32_t IE;                         /*!< (@ 0x400C6FE4) Interrupt enable register */\r
1792   __O  uint32_t CLR;                        /*!< (@ 0x400C6FE8) Interrupt status clear register */\r
1793   __O  uint32_t SET;                        /*!< (@ 0x400C6FEC) Interrupt status set register */\r
1794 } LPC_QEI_Type;\r
1795 \r
1796 \r
1797 // ------------------------------------------------------------------------------------------------\r
1798 // -----                                         GIMA                                         -----\r
1799 // ------------------------------------------------------------------------------------------------\r
1800 \r
1801 \r
1802 /**\r
1803   * @brief Product name title=Falcon Chapter title=Global Input Multiplexer Array (GIMA) Modification date=3/25/2011 Major revision=0 Minor revision=4  (GIMA)\r
1804   */\r
1805 \r
1806 typedef struct {                            /*!< (@ 0x400C7000) GIMA Structure         */\r
1807   __IO uint32_t CAP0_0_IN;                  /*!< (@ 0x400C7000) Timer 0 CAP0_0 capture input multiplexer */\r
1808   __IO uint32_t CAP0_1_IN;                  /*!< (@ 0x400C7004) Timer 0 CAP0_1 capture input multiplexer */\r
1809   __IO uint32_t CAP0_2_IN;                  /*!< (@ 0x400C7008) Timer 0 CAP0_2 capture input multiplexer */\r
1810   __IO uint32_t CAP0_3_IN;                  /*!< (@ 0x400C700C) Timer 0 CAP0_3 capture input multiplexer */\r
1811   __IO uint32_t CAP1_0_IN;                  /*!< (@ 0x400C7010) Timer 1 CAP1_0 capture input multiplexer */\r
1812   __IO uint32_t CAP1_1_IN;                  /*!< (@ 0x400C7014) Timer 1 CAP1_1 capture input multiplexer */\r
1813   __IO uint32_t CAP1_2_IN;                  /*!< (@ 0x400C7018) Timer 1 CAP1_2 capture input multiplexer */\r
1814   __IO uint32_t CAP1_3_IN;                  /*!< (@ 0x400C701C) Timer 1 CAP1_3 capture input multiplexer */\r
1815   __IO uint32_t CAP2_0_IN;                  /*!< (@ 0x400C7020) Timer 2 CAP2_0 capture input multiplexer */\r
1816   __IO uint32_t CAP2_1_IN;                  /*!< (@ 0x400C7024) Timer 2 CAP2_1 capture input multiplexer */\r
1817   __IO uint32_t CAP2_2_IN;                  /*!< (@ 0x400C7028) Timer 2 CAP2_2 capture input multiplexer */\r
1818   __IO uint32_t CAP2_3_IN;                  /*!< (@ 0x400C702C) Timer 2 CAP2_3 capture input multiplexer */\r
1819   __IO uint32_t CAP3_0_IN;                  /*!< (@ 0x400C7030) Timer 3 CAP3_0 capture input multiplexer */\r
1820   __IO uint32_t CAP3_1_IN;                  /*!< (@ 0x400C7034) Timer 3 CAP3_1 capture input multiplexer */\r
1821   __IO uint32_t CAP3_2_IN;                  /*!< (@ 0x400C7038) Timer 3 CAP3_2 capture input multiplexer */\r
1822   __IO uint32_t CAP3_3_IN;                  /*!< (@ 0x400C703C) Timer 3 CAP3_3 capture input multiplexer */\r
1823   __IO uint32_t CTIN_0_IN;                  /*!< (@ 0x400C7040) SCT CTIN_0 capture input multiplexer */\r
1824   __IO uint32_t CTIN_1_IN;                  /*!< (@ 0x400C7044) SCT CTIN_1 capture input multiplexer */\r
1825   __IO uint32_t CTIN_2_IN;                  /*!< (@ 0x400C7048) SCT CTIN_2 capture input multiplexer */\r
1826   __IO uint32_t CTIN_3_IN;                  /*!< (@ 0x400C704C) SCT CTIN_3 capture input multiplexer */\r
1827   __IO uint32_t CTIN_4_IN;                  /*!< (@ 0x400C7050) SCT CTIN_4 capture input multiplexer */\r
1828   __IO uint32_t CTIN_5_IN;                  /*!< (@ 0x400C7054) SCT CTIN_5 capture input multiplexer */\r
1829   __IO uint32_t CTIN_6_IN;                  /*!< (@ 0x400C7058) SCT CTIN_6 capture input multiplexer */\r
1830   __IO uint32_t CTIN_7_IN;                  /*!< (@ 0x400C705C) SCT CTIN_7 capture input multiplexer */\r
1831   __IO uint32_t VADC_TRIGGER_IN;            /*!< (@ 0x400C7060) ADC trigger input multiplexer */\r
1832   __IO uint32_t EVENTROUTER_13_IN;          /*!< (@ 0x400C7064) Event router input 13 multiplexer */\r
1833   __IO uint32_t EVENTROUTER_14_IN;          /*!< (@ 0x400C7068) Event router input 14 multiplexer */\r
1834   __IO uint32_t EVENTROUTER_16_IN;          /*!< (@ 0x400C706C) Event router input 16 multiplexer */\r
1835   __IO uint32_t ADCSTART0_IN;               /*!< (@ 0x400C7070) ADC start0 input multiplexer */\r
1836   __IO uint32_t ADCSTART1_IN;               /*!< (@ 0x400C7074) ADC start1 input multiplexer */\r
1837 } LPC_GIMA_Type;\r
1838 \r
1839 \r
1840 // ------------------------------------------------------------------------------------------------\r
1841 // -----                                          DAC                                         -----\r
1842 // ------------------------------------------------------------------------------------------------\r
1843 \r
1844 \r
1845 /**\r
1846   * @brief Product name title=UM10430 Chapter title=LPC43xx DAC Modification date=1/18/2011 Major revision=0 Minor revision=7  (DAC)\r
1847   */\r
1848 \r
1849 typedef struct {                            /*!< (@ 0x400E1000) DAC Structure          */\r
1850   __IO uint32_t CR;                         /*!< (@ 0x400E1000) DAC register. Holds the conversion data. */\r
1851   __IO uint32_t CTRL;                       /*!< (@ 0x400E1004) DAC control register.  */\r
1852   __IO uint32_t CNTVAL;                     /*!< (@ 0x400E1008) DAC counter value register. */\r
1853 } LPC_DAC_Type;\r
1854 \r
1855 \r
1856 // ------------------------------------------------------------------------------------------------\r
1857 // -----                                        C_CANn                                        -----\r
1858 // ------------------------------------------------------------------------------------------------\r
1859 \r
1860 \r
1861 /**\r
1862   * @brief Product name title=UM10430 Chapter title=LPC43xx C_CAN Modification date=1/18/2011 Major revision=0 Minor revision=7  (C_CANn)\r
1863     0x400A4000 / 0x400E2000\r
1864   */\r
1865 \r
1866 typedef struct {                            /*!< (@ 0x400E2000) C_CAN Structure       */\r
1867   __IO uint32_t CNTL;                       /*!< (@ 0x400E2000) CAN control            */\r
1868   __IO uint32_t STAT;                       /*!< (@ 0x400E2004) Status register        */\r
1869   __I  uint32_t EC;                         /*!< (@ 0x400E2008) Error counter          */\r
1870   __IO uint32_t BT;                         /*!< (@ 0x400E200C) Bit timing register    */\r
1871   __I  uint32_t INT;                        /*!< (@ 0x400E2010) Interrupt register     */\r
1872   __IO uint32_t TEST;                       /*!< (@ 0x400E2014) Test register          */\r
1873   __IO uint32_t BRPE;                       /*!< (@ 0x400E2018) Baud rate prescaler extension register */\r
1874   __I  uint32_t RESERVED0;\r
1875   __IO uint32_t IF1_CMDREQ;                 /*!< (@ 0x400E2020) Message interface command request  */\r
1876   \r
1877   union {\r
1878     __IO uint32_t IF1_CMDMSK_R;             /*!< (@ 0x400E2024) Message interface command mask (read direction) */\r
1879     __IO uint32_t IF1_CMDMSK_W;             /*!< (@ 0x400E2024) Message interface command mask (write direction) */\r
1880   };\r
1881   __IO uint32_t IF1_MSK1;                   /*!< (@ 0x400E2028) Message interface mask 1 */\r
1882   __IO uint32_t IF1_MSK2;                   /*!< (@ 0x400E202C) Message interface 1 mask 2 */\r
1883   __IO uint32_t IF1_ARB1;                   /*!< (@ 0x400E2030) Message interface 1 arbitration 1 */\r
1884   __IO uint32_t IF1_ARB2;                   /*!< (@ 0x400E2034) Message interface 1 arbitration 2 */\r
1885   __IO uint32_t IF1_MCTRL;                  /*!< (@ 0x400E2038) Message interface 1 message control */\r
1886   __IO uint32_t IF1_DA1;                    /*!< (@ 0x400E203C) Message interface data A1 */\r
1887   __IO uint32_t IF1_DA2;                    /*!< (@ 0x400E2040) Message interface 1 data A2 */\r
1888   __IO uint32_t IF1_DB1;                    /*!< (@ 0x400E2044) Message interface 1 data B1 */\r
1889   __IO uint32_t IF1_DB2;                    /*!< (@ 0x400E2048) Message interface 1 data B2 */\r
1890   __I  uint32_t RESERVED1[13];\r
1891   __IO uint32_t IF2_CMDREQ;                 /*!< (@ 0x400E2080) Message interface command request  */\r
1892 \r
1893   union {\r
1894     __IO uint32_t IF2_CMDMSK_R;             /*!< (@ 0x400E2084) Message interface command mask (read direction) */\r
1895     __IO uint32_t IF2_CMDMSK_W;             /*!< (@ 0x400E2084) Message interface command mask (write direction) */\r
1896   };\r
1897   __IO uint32_t IF2_MSK1;                   /*!< (@ 0x400E2088) Message interface mask 1 */\r
1898   __IO uint32_t IF2_MSK2;                   /*!< (@ 0x400E208C) Message interface 1 mask 2 */\r
1899   __IO uint32_t IF2_ARB1;                   /*!< (@ 0x400E2090) Message interface 1 arbitration 1 */\r
1900   __IO uint32_t IF2_ARB2;                   /*!< (@ 0x400E2094) Message interface 1 arbitration 2 */\r
1901   __IO uint32_t IF2_MCTRL;                  /*!< (@ 0x400E2098) Message interface 1 message control */\r
1902   __IO uint32_t IF2_DA1;                    /*!< (@ 0x400E209C) Message interface data A1 */\r
1903   __IO uint32_t IF2_DA2;                    /*!< (@ 0x400E20A0) Message interface 1 data A2 */\r
1904   __IO uint32_t IF2_DB1;                    /*!< (@ 0x400E20A4) Message interface 1 data B1 */\r
1905   __IO uint32_t IF2_DB2;                    /*!< (@ 0x400E20A8) Message interface 1 data B2 */\r
1906   __I  uint32_t RESERVED6[21];\r
1907   __I  uint32_t TXREQ1;                     /*!< (@ 0x400E2100) Transmission request 1 */\r
1908   __I  uint32_t TXREQ2;                     /*!< (@ 0x400E2104) Transmission request 2 */\r
1909   __I  uint32_t RESERVED2[6];\r
1910   __I  uint32_t ND1;                        /*!< (@ 0x400E2120) New data 1             */\r
1911   __I  uint32_t ND2;                        /*!< (@ 0x400E2124) New data 2             */\r
1912   __I  uint32_t RESERVED3[6];\r
1913   __I  uint32_t IR1;                        /*!< (@ 0x400E2140) Interrupt pending 1    */\r
1914   __I  uint32_t IR2;                        /*!< (@ 0x400E2144) Interrupt pending 2    */\r
1915   __I  uint32_t RESERVED4[6];\r
1916   __I  uint32_t MSGV1;                      /*!< (@ 0x400E2160) Message valid 1        */\r
1917   __I  uint32_t MSGV2;                      /*!< (@ 0x400E2164) Message valid 2        */\r
1918   __I  uint32_t RESERVED5[6];\r
1919   __IO uint32_t CLKDIV;                     /*!< (@ 0x400E2180) CAN clock divider register */\r
1920 } LPC_C_CANn_Type;\r
1921 \r
1922 \r
1923 // ------------------------------------------------------------------------------------------------\r
1924 // -----                                         ADCn                                         -----\r
1925 // ------------------------------------------------------------------------------------------------\r
1926 \r
1927 \r
1928 /**\r
1929   * @brief Product name title=UM10430 Chapter title=LPC43xx 10-bit ADC0/1 Modification date=1/18/2011 Major revision=0 Minor revision=7  (ADCn)\r
1930     0x400E3000 / 0x400E4000\r
1931   */\r
1932 \r
1933 typedef struct {                            /*!< (@ 0x400Ex000) ADCn Structure         */\r
1934   __IO uint32_t CR;                         /*!< (@ 0x400Ex000) A/D Control Register. The AD0CR register must be written to select the operating mode before A/D conversion can occur. */\r
1935   __I  uint32_t GDR;                        /*!< (@ 0x400Ex004) A/D Global Data Register. Contains the result of the most recent A/D conversion. */\r
1936   __I  uint32_t RESERVED0;\r
1937   __IO uint32_t INTEN;                      /*!< (@ 0x400Ex00C) A/D Interrupt Enable Register. This register contains enable bits that allow the DONE flag of each A/D channel to be included or excluded from contributing to the generation of an A/D interrupt. */\r
1938   __I  uint32_t DR[8];                      /*!< (@ 0x400Ex010) A/D Channel Data Register. This register contains the result of the most recent conversion completed on channel n. */\r
1939   __I  uint32_t STAT;                       /*!< (@ 0x400Ex030) A/D Status Register. This register contains DONE and OVERRUN flags for all of the A/D channels, as well as the A/D interrupt flag. */\r
1940 } LPC_ADCn_Type;\r
1941 \r
1942 \r
1943 \r
1944 // ------------------------------------------------------------------------------------------------\r
1945 // -----                                         Video ADC                                    -----\r
1946 // ------------------------------------------------------------------------------------------------\r
1947 /**\r
1948   * \r
1949     0x400F0000\r
1950   */\r
1951 \r
1952 typedef struct {                            \r
1953   __O  uint32_t FLUSH;                      /*!< (@ 0x400F0000) A/D Flush FIFO         */\r
1954   __IO uint32_t DMA_REQ;                    /*!< (@ 0x400F0004) A/D DMA request a DMA write to load a descriptor table from memory */\r
1955   __I  uint32_t FIFO_STS;                   /*!< (@ 0x400F0008) A/D Full / count / empty status */\r
1956   __IO uint32_t FIFO_CFG;                   /*!< (@ 0x400F000C) A/D FIFO configuration - regular or packed samples */\r
1957   __O  uint32_t TRIGGER;                    /*!< (@ 0x400F0010) A/D Trigger to initiate timer and descriptor table processing */\r
1958   __IO uint32_t DSCR_STS;                   /*!< (@ 0x400F0014) A/D Descriptor processing status register */\r
1959   __IO uint32_t POWER_DOWN;                 /*!< (@ 0x400F0018) A/D ADC power down control */\r
1960   __IO uint32_t CONFIG;                     /*!< (@ 0x400F001C) A/D ADC configuration register */\r
1961   __IO uint32_t THR_A;                      /*!< (@ 0x400F0020) A/D Threshold register A */\r
1962   __IO uint32_t THR_B;                      /*!< (@ 0x400F0024) A/D Threshold register B */\r
1963   __I  uint32_t LAST_SAMPLE[6];             /*!< (@ 0x400F0028 to 0x400F003C) A/D Last sample registers - sample data and results of window comparator */\r
1964   __I  uint32_t RESERVED0[48];                          \r
1965   __IO uint32_t ADC_DEBUG;                  /*!< (@ 0x400F0100) A/D Debug Register*/\r
1966   __IO uint32_t ADC_SPEED;                  /*!< (@ 0x400F0104) A/D Speed setting register */\r
1967   __IO uint32_t POWER_CONTROL;              /*!< (@ 0x400F0108) A/D Power control register*/\r
1968   __I  uint32_t RESERVED1[61];\r
1969   __I  uint32_t FIFO_OUTPUT[16];            /*!< (@ 0x400F0200) A/D FIFO output results */\r
1970   __I  uint32_t RESERVED2[48];\r
1971   __IO uint32_t DESCRIPTOR_0[8];            /*!< (@ 0x400F0300) A/D Descriptor entries table 0 */\r
1972   __IO uint32_t DESCRIPTOR_1[8];            /*!< (@ 0x400F0320) A/D Descriptor entries table 1 */\r
1973   __I  uint32_t RESERVED3[752];\r
1974   __O  uint32_t CLR_EN0;                    /*!< (@ 0x400F0F00) A/D Interupt 0 bit mask fields Clear enable */\r
1975   __O  uint32_t SET_EN0;                    /*!< (@ 0x400F0F04) A/D Interrupt 0 bit mask fields Set enable */\r
1976   __I  uint32_t MASK0;                      /*!< (@ 0x400F0F08) A/D Interrupt 0 enable register */\r
1977   __I  uint32_t STATUS0;                    /*!< (@ 0x400F0F0C) A/D Interrtpt 0 status register */\r
1978   __O  uint32_t CLR_STAT0;                  /*!< (@ 0x400F0F10) A/D Interrupt 0 Clear Status */\r
1979   __O  uint32_t SET_STAT0;                  /*!< (@ 0x400F0F14) A/D Interrupt 0 set status */\r
1980   __I  uint32_t RESERVED4[2];\r
1981   __O  uint32_t CLR_EN1;                    /*!< (@ 0x400F0F20) A/D Interrupt 1 clear mask */\r
1982   __O  uint32_t SET_EN1;                    /*!< (@ 0x400F0F24) A/D Interrupt 1 bit mask fields Set enable */\r
1983   __I  uint32_t MASK1;                      /*!< (@ 0x400F0F28) A/D Interrupt 1 enable register */\r
1984   __I  uint32_t STATUS1;                    /*!< (@ 0x400F0F2C) A/D Interrtpt 1 status register */\r
1985   __O  uint32_t CLR_STAT1;                  /*!< (@ 0x400F0F30) A/D Interrupt 1 Clear Status */\r
1986   __O  uint32_t SET_STAT1;                  /*!< (@ 0x400F0F34) A/D Interrupt 1 set status */\r
1987 } LPC_VADC_Type;\r
1988 \r
1989 // ------------------------------------------------------------------------------------------------\r
1990 // -----                                       GPIO_PORT                                      -----\r
1991 // ------------------------------------------------------------------------------------------------\r
1992 \r
1993 \r
1994 /**\r
1995   * @brief GPIO port  (GPIO_PORT)\r
1996     Note: it is not a generic gpio but a high speed gpio (hs gpio)!\r
1997   */\r
1998 \r
1999 typedef struct {                            /*!< (@ 0x400F4000) GPIO_PORT Structure    */\r
2000   __IO uint8_t B[256];                      /*!< (@ 0x400F4000) Byte pin registers port 0 to 5; pins PIOn_0 to PIOn_31 */\r
2001   __I  uint32_t RESERVED0[960];\r
2002   __IO uint32_t W[256];                     /*!< (@ 0x400F5000) Word pin registers port 0 to 5 */\r
2003   __I  uint32_t RESERVED1[768];\r
2004   __IO uint32_t DIR[8];                     /*!< (@ 0x400F6000) Direction registers port n */\r
2005   __I  uint32_t RESERVED2[24];\r
2006   __IO uint32_t MASK[8];                    /*!< (@ 0x400F6080) Mask register port n   */\r
2007   __I  uint32_t RESERVED3[24];\r
2008   __IO uint32_t PIN[8];                     /*!< (@ 0x400F6100) Portpin register port n */\r
2009   __I  uint32_t RESERVED4[24];\r
2010   __IO uint32_t MPIN[8];                    /*!< (@ 0x400F6180) Masked port register port n */\r
2011   __I  uint32_t RESERVED5[24];\r
2012   __IO uint32_t SET[8];                     /*!< (@ 0x400F6200) Write: Set register for port n Read: output bits for port n */\r
2013   __I  uint32_t RESERVED6[24];\r
2014   __O  uint32_t CLR[8];                     /*!< (@ 0x400F6280) Clear port n           */\r
2015   __I  uint32_t RESERVED7[24];\r
2016   __O  uint32_t NOT[8];                     /*!< (@ 0x400F6300) Toggle port n          */\r
2017 } LPC_GPIO_PORT_Type;\r
2018 \r
2019 // ------------------------------------------------------------------------------------------------\r
2020 // -----                                         GPIOn (same as GPIO_PORT, backward compatibility)                                        -----\r
2021 // ------------------------------------------------------------------------------------------------\r
2022 \r
2023 // Is a backward compatibility for struct members important: DIR/MASK/PIN/SET/CLR??? NOT is new.\r
2024 \r
2025 typedef struct {\r
2026   __IO  uint32_t RESERVED1[2048];         //reserved for Byte pin (PB) and Word pin (PW) registers\r
2027   __IO uint32_t DIR;                       /*!< (@ 0x400F6000) Direction registers port n */\r
2028   __IO  uint32_t RESERVED2[31];            //reserved for port 1 ..7 (tricky)\r
2029   __IO uint32_t MASK;                      /*!< (@ 0x400F6080) Mask register port n */\r
2030   __IO  uint32_t RESERVED3[31];            //reserved for port 1 ..7 (tricky)\r
2031   __IO  uint32_t RESERVED4[32];            //Do not use GPIO port register due to non-masking\r
2032   __IO uint32_t PIN;                       /*!< (@ 0x400F6180) Masked port register port n */\r
2033   __IO  uint32_t RESERVED5[31];            //reserved for port 1 ..7 (tricky)\r
2034   __IO uint32_t SET;                       /*!< (@ 0x400F6200) Write: Set register for port n Read: output bits for port n */\r
2035   __IO  uint32_t RESERVED6[31];            //reserved for port 1 ..7 (tricky)\r
2036   __O  uint32_t CLR;                       /*!< (@ 0x400F6280) Clear port n */\r
2037   __IO  uint32_t RESERVED7[31];            //reserved for port 1 ..7 (tricky)\r
2038   __O  uint32_t NOT;                       /*!< (@ 0x400F6300) Toggle port n */\r
2039   __IO  uint32_t RESERVED8[31];            //reserved for port 1 ..7 (tricky)\r
2040   //to be expanded\r
2041 } LPC_GPIOn_Type;\r
2042 \r
2043 // ------------------------------------------------------------------------------------------------\r
2044 // -----                                     GPIO_PIN_INT                                     -----\r
2045 // ------------------------------------------------------------------------------------------------\r
2046 \r
2047 \r
2048 /**\r
2049   * @brief GPIO pin interrupt (GPIO_PIN_INT)\r
2050   */\r
2051 \r
2052 typedef struct {                            /*!< (@ 0x40087000) GPIO_PIN_INT Structure */\r
2053   __IO uint32_t ISEL;                       /*!< (@ 0x40087000) Pin Interrupt Mode register */\r
2054   __IO uint32_t IENR;                       /*!< (@ 0x40087004) Pin Interrupt Enable (Rising) register */\r
2055   __O  uint32_t SIENR;                      /*!< (@ 0x40087008) Set Pin Interrupt Enable (Rising) register */\r
2056   __O  uint32_t CIENR;                      /*!< (@ 0x4008700C) Clear Pin Interrupt Enable (Rising) register */\r
2057   __IO uint32_t IENF;                       /*!< (@ 0x40087010) Pin Interrupt Enable Falling Edge / Active Level register */\r
2058   __O  uint32_t SIENF;                      /*!< (@ 0x40087014) Set Pin Interrupt Enable Falling Edge / Active Level register */\r
2059   __O  uint32_t CIENF;                      /*!< (@ 0x40087018) Clear Pin Interrupt Enable Falling Edge / Active Level address */\r
2060   __IO uint32_t RISE;                       /*!< (@ 0x4008701C) Pin Interrupt Rising Edge register */\r
2061   __IO uint32_t FALL;                       /*!< (@ 0x40087020) Pin Interrupt Falling Edge register */\r
2062   __IO uint32_t IST;                        /*!< (@ 0x40087024) Pin Interrupt Status register */\r
2063 } LPC_GPIO_PIN_INT_Type;\r
2064 \r
2065 \r
2066 // ------------------------------------------------------------------------------------------------\r
2067 // -----                                    GPIO_GROUP_INTn                                   -----\r
2068 // ------------------------------------------------------------------------------------------------\r
2069 \r
2070 \r
2071 /**\r
2072   * @brief GPIO group interrupt 0/1 (GPIO_GROUP_INTn) \r
2073     0x40088000/0x40089000\r
2074   */\r
2075 \r
2076 typedef struct {                            /*!< (@ 0x4008x000) GPIO_GROUP_INT0 Structure */\r
2077   __IO uint32_t CTRL;                       /*!< (@ 0x4008x000) GPIO grouped interrupt control register */\r
2078   __I  uint32_t RESERVED0[7];\r
2079   __IO uint32_t PORT_POL[8];                /*!< (@ 0x4008x020) GPIO grouped interrupt port polarity register */\r
2080   __IO uint32_t PORT_ENA[8];                /*!< (@ 0x4008x040) GPIO grouped interrupt port 0/1 enable register */\r
2081 } LPC_GPIO_GROUP_INTn_Type;\r
2082 \r
2083 \r
2084 // ------------------------------------------------------------------------------------------------\r
2085 // -----                                  Random number generation (RNG)                      -----\r
2086 // ------------------------------------------------------------------------------------------------\r
2087 \r
2088 typedef struct\r
2089 {\r
2090   __I   uint32_t RANDOM_NUMBER;     /*!< (@ 0x40054000) Random number */\r
2091   __I   uint32_t STATISTIC;         /*!< (@ 0x40054004) Statistic */\r
2092   __IO  uint32_t COUNTER_SEL_RNG;   /*!< (@ 0x40054008) Select for statistics */\r
2093   __I   uint32_t RESERVED0[(0xFF4-0x008-0x04)/4];\r
2094   __IO  uint32_t POWERDOWN;         /*!< (@ 0x40054FF4) Powerdown mode */\r
2095 } LPC_RNG_Type;\r
2096 \r
2097 \r
2098 // ------------------------------------------------------------------------------------------------\r
2099 // -----                                  Serial GPIO (SGPIO)                                 -----\r
2100 // ------------------------------------------------------------------------------------------------\r
2101 \r
2102 typedef struct\r
2103 {\r
2104   __IO  uint32_t OUT_MUX_CFG[16];   /*!< (@ 0x40101000) Pin output multiplexer configuration */\r
2105   __IO  uint32_t SGPIO_MUX_CFG[16]; /*!< (@ 0x40101040) SGPIO input multiplexer configuration */\r
2106   __IO  uint32_t SLICE_MUX_CFG[16]; /*!< (@ 0x40101080) Slice multiplexer configuration */\r
2107   __IO  uint32_t REG[16];           /*!< (@ 0x401010C0) Register */\r
2108   __IO  uint32_t REG_SS[16];        /*!< (@ 0x40101100) Shadow register */\r
2109   __IO  uint32_t PRESET[16];        /*!< (@ 0x40101140) Reload value of  COUNT0, loaded when COUNT0 reaches 0x0 */\r
2110   __IO  uint32_t COUNT[16];         /*!< (@ 0x40101180) Down counter, counts down each clock cycle */\r
2111   __IO  uint32_t POS[16];           /*!< (@ 0x401011C0) Each time COUNT0 reaches 0x0 POS counts down */\r
2112   __IO  uint32_t MASK_A;            /*!< (@ 0x40101200) Mask for pattern match function of slice A */\r
2113   __IO  uint32_t MASK_H;            /*!< (@ 0x40101204) Mask for pattern match function of slice H */\r
2114   __IO  uint32_t MASK_I;            /*!< (@ 0x40101208) Mask for pattern match function of slice I */\r
2115   __IO  uint32_t MASK_P;            /*!< (@ 0x4010120C) Mask for pattern match function of slice P */\r
2116   __I   uint32_t GPIO_INREG;        /*!< (@ 0x40101210) GPIO input status register */\r
2117   __IO  uint32_t GPIO_OUTREG;       /*!< (@ 0x40101214) GPIO output control register */\r
2118   __IO  uint32_t GPIO_OEREG;        /*!< (@ 0x40101218) GPIO OE control register */\r
2119   __IO  uint32_t CTRL_ENABLE;       /*!< (@ 0x4010121C) Enables the slice COUNT counter */\r
2120   __IO  uint32_t CTRL_DISABLE;      /*!< (@ 0x40101220) Disables the slice COUNT counter */\r
2121   __I   uint32_t RESERVED0[(0xF00-0x220-0x04)/4];\r
2122   __IO  uint32_t CLR_EN0;           /*!< (@ 0x40101F00) Shift clock interrupt clear mask */\r
2123   __IO  uint32_t SET_EN0;           /*!< (@ 0x40101F04) Shift clock interrupt set mask */\r
2124   __I   uint32_t ENABLE0;           /*!< (@ 0x40101F08) Shift clock interrupt enable */\r
2125   __I   uint32_t STATUS0;           /*!< (@ 0x40101F0C) Shift clock interrupt status */\r
2126   __IO  uint32_t CTR_STAT0;         /*!< (@ 0x40101F10) Shift clock interrupt clear status */\r
2127   __IO  uint32_t SET_STAT0;         /*!< (@ 0x40101F14) Shift clock interrupt set status */\r
2128   __I   uint32_t RESERVED1[2];\r
2129   __IO  uint32_t CLR_EN1;           /*!< (@ 0x40101F20) Capture clock interrupt clear mask */\r
2130   __IO  uint32_t SET_EN1;           /*!< (@ 0x40101F24) Capture clock interrupt set mask */\r
2131   __I   uint32_t ENABLE1;           /*!< (@ 0x40101F28) Capture clock interrupt enable */\r
2132   __I   uint32_t STATUS1;           /*!< (@ 0x40101F2C) Capture clock interrupt status */\r
2133   __IO  uint32_t CTR_STAT1;         /*!< (@ 0x40101F30) Capture clock interrupt clear status */\r
2134   __IO  uint32_t SET_STAT1;         /*!< (@ 0x40101F34) Capture clock interrupt set status */\r
2135   __I   uint32_t RESERVED2[2];\r
2136   __IO  uint32_t CLR_EN2;           /*!< (@ 0x40101F40) Pattern match interrupt clear mask */\r
2137   __IO  uint32_t SET_EN2;           /*!< (@ 0x40101F44) Pattern match interrupt set mask */\r
2138   __I   uint32_t ENABLE2;           /*!< (@ 0x40101F48) Pattern match interrupt enable */\r
2139   __I   uint32_t STATUS2;           /*!< (@ 0x40101F4C) Pattern match interrupt status */\r
2140   __IO  uint32_t CTR_STAT2;         /*!< (@ 0x40101F50) Pattern match interrupt clear status */\r
2141   __IO  uint32_t SET_STAT2;         /*!< (@ 0x40101F54) Pattern match interrupt set status */\r
2142   __I   uint32_t RESERVED3[2];\r
2143   __IO  uint32_t CLR_EN3;           /*!< (@ 0x40101F60) Input interrupt clear mask */\r
2144   __IO  uint32_t SET_EN3;           /*!< (@ 0x40101F64) Input bit match interrupt set mask */\r
2145   __I   uint32_t ENABLE3;           /*!< (@ 0x40101F68) Input bit match interrupt enable */\r
2146   __I   uint32_t STATUS3;           /*!< (@ 0x40101F6C) Input bit match interrupt status */\r
2147   __IO  uint32_t CTR_STAT3;         /*!< (@ 0x40101F70) Input bit match interrupt clear status */\r
2148   __IO  uint32_t SET_STAT3;         /*!< (@ 0x40101F74) Input bit match interrupt set status */\r
2149 } LPC_SGPIO_Type;\r
2150 \r
2151 #if defined ( __CC_ARM   )\r
2152   #pragma no_anon_unions\r
2153 #endif\r
2154 \r
2155 \r
2156 // ------------------------------------------------------------------------------------------------\r
2157 // -----                                 Peripheral memory map                                -----\r
2158 // ------------------------------------------------------------------------------------------------\r
2159 \r
2160 #define LPC_SCT_BASE              (0x40000000)\r
2161 #define LPC_GPDMA_BASE            (0x40002000)\r
2162 #define LPC_SPIFI_BASE            (0x40003000)\r
2163 #define LPC_SDMMC_BASE            (0x40004000)\r
2164 #define LPC_EMC_BASE              (0x40005000)\r
2165 #define LPC_USB0_BASE             (0x40006000)\r
2166 #define LPC_USB1_BASE             (0x40007000)\r
2167 #define LPC_LCD_BASE              (0x40008000)\r
2168 #define LPC_ETHERNET_BASE         (0x40010000)\r
2169 #define LPC_ATIMER_BASE           (0x40040000)\r
2170 #define LPC_REGFILE_BASE          (0x40041000)\r
2171 #define LPC_PMC_BASE              (0x40042000)\r
2172 #define LPC_CREG_BASE             (0x40043000)\r
2173 #define LPC_EVENTROUTER_BASE      (0x40044000)\r
2174 #define LPC_RTC_BASE              (0x40046000)\r
2175 #define LPC_CGU_BASE              (0x40050000)\r
2176 #define LPC_CCU1_BASE             (0x40051000)\r
2177 #define LPC_CCU2_BASE             (0x40052000)\r
2178 #define LPC_RGU_BASE              (0x40053000)\r
2179 #define LPC_WWDT_BASE             (0x40080000)\r
2180 #define LPC_USART0_BASE           (0x40081000)\r
2181 #define LPC_USART2_BASE           (0x400C1000)\r
2182 #define LPC_USART3_BASE           (0x400C2000)\r
2183 #define LPC_UART1_BASE            (0x40082000)\r
2184 #define LPC_SSP0_BASE             (0x40083000)\r
2185 #define LPC_SSP1_BASE             (0x400C5000)\r
2186 #define LPC_TIMER0_BASE           (0x40084000)\r
2187 #define LPC_TIMER1_BASE           (0x40085000)\r
2188 #define LPC_TIMER2_BASE           (0x400C3000)\r
2189 #define LPC_TIMER3_BASE           (0x400C4000)\r
2190 #define LPC_SCU_BASE              (0x40086000)\r
2191 #define LPC_GPIO_PIN_INT_BASE     (0x40087000)\r
2192 #define LPC_GPIO_GROUP_INT0_BASE  (0x40088000)\r
2193 #define LPC_GPIO_GROUP_INT1_BASE  (0x40089000)\r
2194 #define LPC_MCPWM_BASE            (0x400A0000)\r
2195 #define LPC_I2C0_BASE             (0x400A1000)\r
2196 #define LPC_I2C1_BASE             (0x400E0000)\r
2197 #define LPC_I2S0_BASE             (0x400A2000)\r
2198 #define LPC_I2S1_BASE             (0x400A3000)\r
2199 #define LPC_C_CAN1_BASE           (0x400A4000)\r
2200 #define LPC_RITIMER_BASE          (0x400C0000)\r
2201 #define LPC_QEI_BASE              (0x400C6000)\r
2202 #define LPC_GIMA_BASE             (0x400C7000)\r
2203 #define LPC_DAC_BASE              (0x400E1000)\r
2204 #define LPC_C_CAN0_BASE           (0x400E2000)\r
2205 #define LPC_ADC0_BASE             (0x400E3000)\r
2206 #define LPC_ADC1_BASE             (0x400E4000)\r
2207 #define LPC_GPIO_PORT_BASE        (0x400F4000)\r
2208 //The following are applied to have a backward compitability with existing Eagle/Raptor GPIOs\r
2209 #define LPC_GPIO0_BASE            (0x400F4000)\r
2210 #define LPC_GPIO1_BASE            (0x400F4004)\r
2211 #define LPC_GPIO2_BASE            (0x400F4008)\r
2212 #define LPC_GPIO3_BASE            (0x400F400C)\r
2213 #define LPC_GPIO4_BASE            (0x400F4010)\r
2214 #define LPC_GPIO5_BASE            (0x400F4014)\r
2215 #define LPC_GPIO6_BASE            (0x400F4018)\r
2216 #define LPC_GPIO7_BASE            (0x400F401C)\r
2217 #define LPC_RNG_BASE              (0x40054000)\r
2218 #define LPC_SGPIO_BASE            (0x40101000)\r
2219 #define LPC_VADC_BASE             (0x400F0000)\r
2220 \r
2221 \r
2222 // ------------------------------------------------------------------------------------------------\r
2223 // -----                                Peripheral declaration                                -----\r
2224 // ------------------------------------------------------------------------------------------------\r
2225 \r
2226 #define LPC_SCT                   ((LPC_SCT_Type            *) LPC_SCT_BASE)\r
2227 #define LPC_GPDMA                 ((LPC_GPDMA_Type          *) LPC_GPDMA_BASE)\r
2228 #define LPC_SPIFI                 ((LPC_SPIFI_Type          *) LPC_SPIFI_BASE)\r
2229 #define LPC_SDMMC                 ((LPC_SDMMC_Type          *) LPC_SDMMC_BASE)\r
2230 #define LPC_EMC                   ((LPC_EMC_Type            *) LPC_EMC_BASE)\r
2231 #define LPC_USB0                  ((LPC_USB0_Type           *) LPC_USB0_BASE)\r
2232 #define LPC_USB1                  ((LPC_USB1_Type           *) LPC_USB1_BASE)\r
2233 #define LPC_LCD                   ((LPC_LCD_Type            *) LPC_LCD_BASE)\r
2234 #define LPC_ETHERNET              ((LPC_ETHERNET_Type       *) LPC_ETHERNET_BASE)\r
2235 #define LPC_ATIMER                ((LPC_ATIMER_Type         *) LPC_ATIMER_BASE)\r
2236 #define LPC_REGFILE               ((LPC_REGFILE_Type        *) LPC_REGFILE_BASE)\r
2237 #define LPC_PMC                   ((LPC_PMC_Type            *) LPC_PMC_BASE)\r
2238 #define LPC_CREG                  ((LPC_CREG_Type           *) LPC_CREG_BASE)\r
2239 #define LPC_EVENTROUTER           ((LPC_EVENTROUTER_Type    *) LPC_EVENTROUTER_BASE)\r
2240 #define LPC_RTC                   ((LPC_RTC_Type            *) LPC_RTC_BASE)\r
2241 #define LPC_CGU                   ((LPC_CGU_Type            *) LPC_CGU_BASE)\r
2242 #define LPC_CCU1                  ((LPC_CCU1_Type           *) LPC_CCU1_BASE)\r
2243 #define LPC_CCU2                  ((LPC_CCU2_Type           *) LPC_CCU2_BASE)\r
2244 #define LPC_RGU                   ((LPC_RGU_Type            *) LPC_RGU_BASE)\r
2245 #define LPC_WWDT                  ((LPC_WWDT_Type           *) LPC_WWDT_BASE)\r
2246 #define LPC_USART0                ((LPC_USARTn_Type         *) LPC_USART0_BASE)\r
2247 #define LPC_USART2                ((LPC_USARTn_Type         *) LPC_USART2_BASE)\r
2248 #define LPC_USART3                ((LPC_USARTn_Type         *) LPC_USART3_BASE)\r
2249 #define LPC_UART1                 ((LPC_UART1_Type          *) LPC_UART1_BASE)\r
2250 #define LPC_SSP0                  ((LPC_SSPn_Type           *) LPC_SSP0_BASE)\r
2251 #define LPC_SSP1                  ((LPC_SSPn_Type           *) LPC_SSP1_BASE)\r
2252 #define LPC_TIMER0                ((LPC_TIMERn_Type         *) LPC_TIMER0_BASE)\r
2253 #define LPC_TIMER1                ((LPC_TIMERn_Type         *) LPC_TIMER1_BASE)\r
2254 #define LPC_TIMER2                ((LPC_TIMERn_Type         *) LPC_TIMER2_BASE)\r
2255 #define LPC_TIMER3                ((LPC_TIMERn_Type         *) LPC_TIMER3_BASE)\r
2256 #define LPC_SCU                   ((LPC_SCU_Type            *) LPC_SCU_BASE)\r
2257 #define LPC_GPIO_PIN_INT          ((LPC_GPIO_PIN_INT_Type   *) LPC_GPIO_PIN_INT_BASE)\r
2258 #define LPC_GPIO_GROUP_INT0       ((LPC_GPIO_GROUP_INT0_Type*) LPC_GPIO_GROUP_INT0_BASE)\r
2259 #define LPC_GPIO_GROUP_INT1       ((LPC_GPIO_GROUP_INT1_Type*) LPC_GPIO_GROUP_INT1_BASE)\r
2260 #define LPC_MCPWM                 ((LPC_MCPWM_Type          *) LPC_MCPWM_BASE)\r
2261 #define LPC_I2C0                  ((LPC_I2Cn_Type           *) LPC_I2C0_BASE)\r
2262 #define LPC_I2C1                  ((LPC_I2Cn_Type           *) LPC_I2C1_BASE)\r
2263 #define LPC_I2S0                  ((LPC_I2Sn_Type           *) LPC_I2S0_BASE)\r
2264 #define LPC_I2S1                  ((LPC_I2Sn_Type           *) LPC_I2S1_BASE)\r
2265 #define LPC_C_CAN1                ((LPC_C_CANn_Type         *) LPC_C_CAN1_BASE)\r
2266 #define LPC_RITIMER               ((LPC_RITIMER_Type        *) LPC_RITIMER_BASE)\r
2267 #define LPC_QEI                   ((LPC_QEI_Type            *) LPC_QEI_BASE)\r
2268 #define LPC_GIMA                  ((LPC_GIMA_Type           *) LPC_GIMA_BASE)\r
2269 #define LPC_DAC                   ((LPC_DAC_Type            *) LPC_DAC_BASE)\r
2270 #define LPC_C_CAN0                ((LPC_C_CANn_Type         *) LPC_C_CAN0_BASE)\r
2271 #define LPC_ADC0                  ((LPC_ADCn_Type           *) LPC_ADC0_BASE)\r
2272 #define LPC_ADC1                  ((LPC_ADCn_Type           *) LPC_ADC1_BASE)\r
2273 #define LPC_GPIO_PORT             ((LPC_GPIO_PORT_Type      *) LPC_GPIO_PORT_BASE) //Short name: HSGPIO???\r
2274 #define LPC_GPIO0                 ((LPC_GPIOn_Type          *) LPC_GPIO0_BASE)     //Backward compitable for all GPIOs\r
2275 #define LPC_GPIO1                 ((LPC_GPIOn_Type          *) LPC_GPIO1_BASE)\r
2276 #define LPC_GPIO2                 ((LPC_GPIOn_Type          *) LPC_GPIO2_BASE)\r
2277 #define LPC_GPIO3                 ((LPC_GPIOn_Type          *) LPC_GPIO3_BASE)\r
2278 #define LPC_GPIO4                 ((LPC_GPIOn_Type          *) LPC_GPIO4_BASE)\r
2279 #define LPC_GPIO5                 ((LPC_GPIOn_Type          *) LPC_GPIO5_BASE)\r
2280 #define LPC_GPIO6                 ((LPC_GPIOn_Type          *) LPC_GPIO6_BASE)\r
2281 #define LPC_GPIO7                 ((LPC_GPIOn_Type          *) LPC_GPIO7_BASE)\r
2282 #define LPC_SGPIO                 ((LPC_SGPIO_Type          *) LPC_SGPIO_BASE)\r
2283 #define LPC_RNG                   ((LPC_RNG_Type            *) LPC_RNG_BASE)\r
2284 #define LPC_VADC                  ((LPC_VADC_Type           *) LPC_VADC_BASE)\r
2285 \r
2286 /** @} */ /* End of group Device_Peripheral_Registers */\r
2287 /** @} */ /* End of group (null) */\r
2288 /** @} */ /* End of group LPC43xx */\r
2289 \r
2290 #ifdef __cplusplus\r
2291 }\r
2292 #endif \r
2293 \r
2294 \r
2295 #endif  // __LPC43XX_A_H__\r