lpc177x_8x.h 54 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443
  1. /**********************************************************************
  2. * $Id$ LPC177x_8x.h 2011-06-02
  3. *//**
  4. * @file LPC177x_8x.h
  5. * @brief Cortex-M3 Core Peripheral Access Layer Header File for
  6. * NXP LPC177x_8x Series.
  7. * @version 1.0
  8. * @date 02. June. 2011
  9. * @author NXP MCU SW Application Team
  10. *
  11. * Copyright(C) 2011, NXP Semiconductor
  12. * All rights reserved.
  13. *
  14. ***********************************************************************
  15. * Software that is described herein is for illustrative purposes only
  16. * which provides customers with programming information regarding the
  17. * products. This software is supplied "AS IS" without any warranties.
  18. * NXP Semiconductors assumes no responsibility or liability for the
  19. * use of the software, conveys no license or title under any patent,
  20. * copyright, or mask work right to the product. NXP Semiconductors
  21. * reserves the right to make changes in the software without
  22. * notification. NXP Semiconductors also make no representation or
  23. * warranty that such application will be suitable for the specified
  24. * use without further testing or modification.
  25. * Permission to use, copy, modify, and distribute this software and its
  26. * documentation is hereby granted, under NXP Semiconductors'
  27. * relevant copyright in the software, without fee, provided that it
  28. * is used in conjunction with NXP Semiconductors microcontrollers. This
  29. * copyright, permission, and disclaimer notice must appear in all copies of
  30. * this code.
  31. **********************************************************************/
  32. #ifndef __LPC177x_8x_H__
  33. #define __LPC177x_8x_H__
  34. /*
  35. * ==========================================================================
  36. * ---------- Interrupt Number Definition -----------------------------------
  37. * ==========================================================================
  38. */
  39. typedef enum IRQn
  40. {
  41. /****** Cortex-M3 Processor Exceptions Numbers ***************************************************/
  42. NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */
  43. HardFault_IRQn = -13, /*!< 3 Cortex-M3 Hard Fault Interrupt */
  44. MemoryManagement_IRQn = -12, /*!< 4 Cortex-M3 Memory Management Interrupt */
  45. BusFault_IRQn = -11, /*!< 5 Cortex-M3 Bus Fault Interrupt */
  46. UsageFault_IRQn = -10, /*!< 6 Cortex-M3 Usage Fault Interrupt */
  47. SVCall_IRQn = -5, /*!< 11 Cortex-M3 SV Call Interrupt */
  48. DebugMonitor_IRQn = -4, /*!< 12 Cortex-M3 Debug Monitor Interrupt */
  49. PendSV_IRQn = -2, /*!< 14 Cortex-M3 Pend SV Interrupt */
  50. SysTick_IRQn = -1, /*!< 15 Cortex-M3 System Tick Interrupt */
  51. /****** LPC177x_8x Specific Interrupt Numbers *******************************************************/
  52. WDT_IRQn = 0, /*!< Watchdog Timer Interrupt */
  53. TIMER0_IRQn = 1, /*!< Timer0 Interrupt */
  54. TIMER1_IRQn = 2, /*!< Timer1 Interrupt */
  55. TIMER2_IRQn = 3, /*!< Timer2 Interrupt */
  56. TIMER3_IRQn = 4, /*!< Timer3 Interrupt */
  57. UART0_IRQn = 5, /*!< UART0 Interrupt */
  58. UART1_IRQn = 6, /*!< UART1 Interrupt */
  59. UART2_IRQn = 7, /*!< UART2 Interrupt */
  60. UART3_IRQn = 8, /*!< UART3 Interrupt */
  61. PWM1_IRQn = 9, /*!< PWM1 Interrupt */
  62. I2C0_IRQn = 10, /*!< I2C0 Interrupt */
  63. I2C1_IRQn = 11, /*!< I2C1 Interrupt */
  64. I2C2_IRQn = 12, /*!< I2C2 Interrupt */
  65. Reserved0_IRQn = 13, /*!< Reserved */
  66. SSP0_IRQn = 14, /*!< SSP0 Interrupt */
  67. SSP1_IRQn = 15, /*!< SSP1 Interrupt */
  68. PLL0_IRQn = 16, /*!< PLL0 Lock (Main PLL) Interrupt */
  69. RTC_IRQn = 17, /*!< Real Time Clock Interrupt */
  70. EINT0_IRQn = 18, /*!< External Interrupt 0 Interrupt */
  71. EINT1_IRQn = 19, /*!< External Interrupt 1 Interrupt */
  72. EINT2_IRQn = 20, /*!< External Interrupt 2 Interrupt */
  73. EINT3_IRQn = 21, /*!< External Interrupt 3 Interrupt */
  74. ADC_IRQn = 22, /*!< A/D Converter Interrupt */
  75. BOD_IRQn = 23, /*!< Brown-Out Detect Interrupt */
  76. USB_IRQn = 24, /*!< USB Interrupt */
  77. CAN_IRQn = 25, /*!< CAN Interrupt */
  78. DMA_IRQn = 26, /*!< General Purpose DMA Interrupt */
  79. I2S_IRQn = 27, /*!< I2S Interrupt */
  80. ENET_IRQn = 28, /*!< Ethernet Interrupt */
  81. MCI_IRQn = 29, /*!< SD/MMC card I/F Interrupt */
  82. MCPWM_IRQn = 30, /*!< Motor Control PWM Interrupt */
  83. QEI_IRQn = 31, /*!< Quadrature Encoder Interface Interrupt */
  84. PLL1_IRQn = 32, /*!< PLL1 Lock (USB PLL) Interrupt */
  85. USBActivity_IRQn = 33, /*!< USB Activity interrupt */
  86. CANActivity_IRQn = 34, /*!< CAN Activity interrupt */
  87. UART4_IRQn = 35, /*!< UART4 Interrupt */
  88. SSP2_IRQn = 36, /*!< SSP2 Interrupt */
  89. LCD_IRQn = 37, /*!< LCD Interrupt */
  90. GPIO_IRQn = 38, /*!< GPIO Interrupt */
  91. PWM0_IRQn = 39, /*!< PWM0 Interrupt */
  92. EEPROM_IRQn = 40, /*!< EEPROM Interrupt */
  93. IRQn_MAX /*!< Total number of interrupts */
  94. } IRQn_Type;
  95. /*
  96. * ==========================================================================
  97. * ----------- Processor and Core Peripheral Section ------------------------
  98. * ==========================================================================
  99. */
  100. /* Configuration of the Cortex-M3 Processor and Core Peripherals */
  101. #define __MPU_PRESENT 1 /*!< MPU present or not */
  102. #define __NVIC_PRIO_BITS 5 /*!< Number of Bits used for Priority Levels */
  103. #define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
  104. #include <arch/cm3/core_cm3.h> /* Cortex-M3 processor and core peripherals */
  105. #include "system_lpc177x_8x.h" /* System Header */
  106. /******************************************************************************/
  107. /* Device Specific Peripheral registers structures */
  108. /******************************************************************************/
  109. #if defined ( __CC_ARM )
  110. #pragma anon_unions
  111. #endif
  112. /*------------- System Control (SC) ------------------------------------------*/
  113. typedef struct
  114. {
  115. __IO uint32_t FLASHCFG; /*!< Offset: 0x000 (R/W) Flash Accelerator Configuration Register */
  116. uint32_t RESERVED0[31];
  117. __IO uint32_t PLL0CON; /*!< Offset: 0x080 (R/W) PLL0 Control Register */
  118. __IO uint32_t PLL0CFG; /*!< Offset: 0x084 (R/W) PLL0 Configuration Register */
  119. __I uint32_t PLL0STAT; /*!< Offset: 0x088 (R/ ) PLL0 Status Register */
  120. __O uint32_t PLL0FEED; /*!< Offset: 0x08C ( /W) PLL0 Feed Register */
  121. uint32_t RESERVED1[4];
  122. __IO uint32_t PLL1CON; /*!< Offset: 0x0A0 (R/W) PLL1 Control Register */
  123. __IO uint32_t PLL1CFG; /*!< Offset: 0x0A4 (R/W) PLL1 Configuration Register */
  124. __I uint32_t PLL1STAT; /*!< Offset: 0x0A8 (R/ ) PLL1 Status Register */
  125. __O uint32_t PLL1FEED; /*!< Offset: 0x0AC ( /W) PLL1 Feed Register */
  126. uint32_t RESERVED2[4];
  127. __IO uint32_t PCON; /*!< Offset: 0x0C0 (R/W) Power Control Register */
  128. __IO uint32_t PCONP; /*!< Offset: 0x0C4 (R/W) Power Control for Peripherals Register */
  129. uint32_t RESERVED3[14];
  130. __IO uint32_t EMCCLKSEL; /*!< Offset: 0x100 (R/W) External Memory Controller Clock Selection Register */
  131. __IO uint32_t CCLKSEL; /*!< Offset: 0x104 (R/W) CPU Clock Selection Register */
  132. __IO uint32_t USBCLKSEL; /*!< Offset: 0x108 (R/W) USB Clock Selection Register */
  133. __IO uint32_t CLKSRCSEL; /*!< Offset: 0x10C (R/W) Clock Source Select Register */
  134. __IO uint32_t CANSLEEPCLR; /*!< Offset: 0x110 (R/W) CAN Sleep Clear Register */
  135. __IO uint32_t CANWAKEFLAGS; /*!< Offset: 0x114 (R/W) CAN Wake-up Flags Register */
  136. uint32_t RESERVED4[10];
  137. __IO uint32_t EXTINT; /*!< Offset: 0x140 (R/W) External Interrupt Flag Register */
  138. uint32_t RESERVED5[1];
  139. __IO uint32_t EXTMODE; /*!< Offset: 0x148 (R/W) External Interrupt Mode Register */
  140. __IO uint32_t EXTPOLAR; /*!< Offset: 0x14C (R/W) External Interrupt Polarity Register */
  141. uint32_t RESERVED6[12];
  142. __IO uint32_t RSID; /*!< Offset: 0x180 (R/W) Reset Source Identification Register */
  143. uint32_t RESERVED7[7];
  144. __IO uint32_t SCS; /*!< Offset: 0x1A0 (R/W) System Controls and Status Register */
  145. __IO uint32_t IRCTRIM; /*!< Offset: 0x1A4 (R/W) Clock Dividers */
  146. __IO uint32_t PCLKSEL; /*!< Offset: 0x1A8 (R/W) Peripheral Clock Selection Register */
  147. uint32_t RESERVED8;
  148. __IO uint32_t PBOOST; /*!< Offset: 0x1B0 (R/W) Power Boost control register */
  149. uint32_t RESERVED9;
  150. __IO uint32_t LCD_CFG; /*!< Offset: 0x1B8 (R/W) LCD Configuration and clocking control Register */
  151. uint32_t RESERVED10[1];
  152. __IO uint32_t USBIntSt; /*!< Offset: 0x1C0 (R/W) USB Interrupt Status Register */
  153. __IO uint32_t DMAREQSEL; /*!< Offset: 0x1C4 (R/W) DMA Request Select Register */
  154. __IO uint32_t CLKOUTCFG; /*!< Offset: 0x1C8 (R/W) Clock Output Configuration Register */
  155. __IO uint32_t RSTCON0; /*!< Offset: 0x1CC (R/W) RESET Control0 Register */
  156. __IO uint32_t RSTCON1; /*!< Offset: 0x1D0 (R/W) RESET Control1 Register */
  157. uint32_t RESERVED11[2];
  158. __IO uint32_t EMCDLYCTL; /*!< Offset: 0x1DC (R/W) SDRAM programmable delays */
  159. __IO uint32_t EMCCAL; /*!< Offset: 0x1E0 (R/W) Calibration of programmable delays */
  160. } LPC_SC_TypeDef;
  161. /*------------- Pin Connect Block (PINCON) -----------------------------------*/
  162. typedef struct
  163. {
  164. __IO uint32_t P0_0; /* 0x000 */
  165. __IO uint32_t P0_1;
  166. __IO uint32_t P0_2;
  167. __IO uint32_t P0_3;
  168. __IO uint32_t P0_4;
  169. __IO uint32_t P0_5;
  170. __IO uint32_t P0_6;
  171. __IO uint32_t P0_7;
  172. __IO uint32_t P0_8; /* 0x020 */
  173. __IO uint32_t P0_9;
  174. __IO uint32_t P0_10;
  175. __IO uint32_t P0_11;
  176. __IO uint32_t P0_12;
  177. __IO uint32_t P0_13;
  178. __IO uint32_t P0_14;
  179. __IO uint32_t P0_15;
  180. __IO uint32_t P0_16; /* 0x040 */
  181. __IO uint32_t P0_17;
  182. __IO uint32_t P0_18;
  183. __IO uint32_t P0_19;
  184. __IO uint32_t P0_20;
  185. __IO uint32_t P0_21;
  186. __IO uint32_t P0_22;
  187. __IO uint32_t P0_23;
  188. __IO uint32_t P0_24; /* 0x060 */
  189. __IO uint32_t P0_25;
  190. __IO uint32_t P0_26;
  191. __IO uint32_t P0_27;
  192. __IO uint32_t P0_28;
  193. __IO uint32_t P0_29;
  194. __IO uint32_t P0_30;
  195. __IO uint32_t P0_31;
  196. __IO uint32_t P1_0; /* 0x080 */
  197. __IO uint32_t P1_1;
  198. __IO uint32_t P1_2;
  199. __IO uint32_t P1_3;
  200. __IO uint32_t P1_4;
  201. __IO uint32_t P1_5;
  202. __IO uint32_t P1_6;
  203. __IO uint32_t P1_7;
  204. __IO uint32_t P1_8; /* 0x0A0 */
  205. __IO uint32_t P1_9;
  206. __IO uint32_t P1_10;
  207. __IO uint32_t P1_11;
  208. __IO uint32_t P1_12;
  209. __IO uint32_t P1_13;
  210. __IO uint32_t P1_14;
  211. __IO uint32_t P1_15;
  212. __IO uint32_t P1_16; /* 0x0C0 */
  213. __IO uint32_t P1_17;
  214. __IO uint32_t P1_18;
  215. __IO uint32_t P1_19;
  216. __IO uint32_t P1_20;
  217. __IO uint32_t P1_21;
  218. __IO uint32_t P1_22;
  219. __IO uint32_t P1_23;
  220. __IO uint32_t P1_24; /* 0x0E0 */
  221. __IO uint32_t P1_25;
  222. __IO uint32_t P1_26;
  223. __IO uint32_t P1_27;
  224. __IO uint32_t P1_28;
  225. __IO uint32_t P1_29;
  226. __IO uint32_t P1_30;
  227. __IO uint32_t P1_31;
  228. __IO uint32_t P2_0; /* 0x100 */
  229. __IO uint32_t P2_1;
  230. __IO uint32_t P2_2;
  231. __IO uint32_t P2_3;
  232. __IO uint32_t P2_4;
  233. __IO uint32_t P2_5;
  234. __IO uint32_t P2_6;
  235. __IO uint32_t P2_7;
  236. __IO uint32_t P2_8; /* 0x120 */
  237. __IO uint32_t P2_9;
  238. __IO uint32_t P2_10;
  239. __IO uint32_t P2_11;
  240. __IO uint32_t P2_12;
  241. __IO uint32_t P2_13;
  242. __IO uint32_t P2_14;
  243. __IO uint32_t P2_15;
  244. __IO uint32_t P2_16; /* 0x140 */
  245. __IO uint32_t P2_17;
  246. __IO uint32_t P2_18;
  247. __IO uint32_t P2_19;
  248. __IO uint32_t P2_20;
  249. __IO uint32_t P2_21;
  250. __IO uint32_t P2_22;
  251. __IO uint32_t P2_23;
  252. __IO uint32_t P2_24; /* 0x160 */
  253. __IO uint32_t P2_25;
  254. __IO uint32_t P2_26;
  255. __IO uint32_t P2_27;
  256. __IO uint32_t P2_28;
  257. __IO uint32_t P2_29;
  258. __IO uint32_t P2_30;
  259. __IO uint32_t P2_31;
  260. __IO uint32_t P3_0; /* 0x180 */
  261. __IO uint32_t P3_1;
  262. __IO uint32_t P3_2;
  263. __IO uint32_t P3_3;
  264. __IO uint32_t P3_4;
  265. __IO uint32_t P3_5;
  266. __IO uint32_t P3_6;
  267. __IO uint32_t P3_7;
  268. __IO uint32_t P3_8; /* 0x1A0 */
  269. __IO uint32_t P3_9;
  270. __IO uint32_t P3_10;
  271. __IO uint32_t P3_11;
  272. __IO uint32_t P3_12;
  273. __IO uint32_t P3_13;
  274. __IO uint32_t P3_14;
  275. __IO uint32_t P3_15;
  276. __IO uint32_t P3_16; /* 0x1C0 */
  277. __IO uint32_t P3_17;
  278. __IO uint32_t P3_18;
  279. __IO uint32_t P3_19;
  280. __IO uint32_t P3_20;
  281. __IO uint32_t P3_21;
  282. __IO uint32_t P3_22;
  283. __IO uint32_t P3_23;
  284. __IO uint32_t P3_24; /* 0x1E0 */
  285. __IO uint32_t P3_25;
  286. __IO uint32_t P3_26;
  287. __IO uint32_t P3_27;
  288. __IO uint32_t P3_28;
  289. __IO uint32_t P3_29;
  290. __IO uint32_t P3_30;
  291. __IO uint32_t P3_31;
  292. __IO uint32_t P4_0; /* 0x200 */
  293. __IO uint32_t P4_1;
  294. __IO uint32_t P4_2;
  295. __IO uint32_t P4_3;
  296. __IO uint32_t P4_4;
  297. __IO uint32_t P4_5;
  298. __IO uint32_t P4_6;
  299. __IO uint32_t P4_7;
  300. __IO uint32_t P4_8; /* 0x220 */
  301. __IO uint32_t P4_9;
  302. __IO uint32_t P4_10;
  303. __IO uint32_t P4_11;
  304. __IO uint32_t P4_12;
  305. __IO uint32_t P4_13;
  306. __IO uint32_t P4_14;
  307. __IO uint32_t P4_15;
  308. __IO uint32_t P4_16; /* 0x240 */
  309. __IO uint32_t P4_17;
  310. __IO uint32_t P4_18;
  311. __IO uint32_t P4_19;
  312. __IO uint32_t P4_20;
  313. __IO uint32_t P4_21;
  314. __IO uint32_t P4_22;
  315. __IO uint32_t P4_23;
  316. __IO uint32_t P4_24; /* 0x260 */
  317. __IO uint32_t P4_25;
  318. __IO uint32_t P4_26;
  319. __IO uint32_t P4_27;
  320. __IO uint32_t P4_28;
  321. __IO uint32_t P4_29;
  322. __IO uint32_t P4_30;
  323. __IO uint32_t P4_31;
  324. __IO uint32_t P5_0; /* 0x280 */
  325. __IO uint32_t P5_1;
  326. __IO uint32_t P5_2;
  327. __IO uint32_t P5_3;
  328. __IO uint32_t P5_4; /* 0x290 */
  329. } LPC_IOCON_TypeDef;
  330. /*------------- General Purpose Input/Output (GPIO) --------------------------*/
  331. typedef struct
  332. {
  333. __IO uint32_t FIODIR;
  334. uint32_t RESERVED0[3];
  335. __IO uint32_t FIOMASK;
  336. __IO uint32_t FIOPIN;
  337. __IO uint32_t FIOSET;
  338. __O uint32_t FIOCLR;
  339. } LPC_GPIO_TypeDef;
  340. typedef struct
  341. {
  342. __I uint32_t IntStatus;
  343. __I uint32_t IO0IntStatR;
  344. __I uint32_t IO0IntStatF;
  345. __O uint32_t IO0IntClr;
  346. __IO uint32_t IO0IntEnR;
  347. __IO uint32_t IO0IntEnF;
  348. uint32_t RESERVED0[3];
  349. __I uint32_t IO2IntStatR;
  350. __I uint32_t IO2IntStatF;
  351. __O uint32_t IO2IntClr;
  352. __IO uint32_t IO2IntEnR;
  353. __IO uint32_t IO2IntEnF;
  354. } LPC_GPIOINT_TypeDef;
  355. /*------------- Timer (TIM) --------------------------------------------------*/
  356. typedef struct
  357. {
  358. __IO uint32_t IR; /*!< Offset: 0x000 Interrupt Register (R/W) */
  359. __IO uint32_t TCR; /*!< Offset: 0x004 Timer Control Register (R/W) */
  360. __IO uint32_t TC; /*!< Offset: 0x008 Timer Counter Register (R/W) */
  361. __IO uint32_t PR; /*!< Offset: 0x00C Prescale Register (R/W) */
  362. __IO uint32_t PC; /*!< Offset: 0x010 Prescale Counter Register (R/W) */
  363. __IO uint32_t MCR; /*!< Offset: 0x014 Match Control Register (R/W) */
  364. __IO uint32_t MR0; /*!< Offset: 0x018 Match Register 0 (R/W) */
  365. __IO uint32_t MR1; /*!< Offset: 0x01C Match Register 1 (R/W) */
  366. __IO uint32_t MR2; /*!< Offset: 0x020 Match Register 2 (R/W) */
  367. __IO uint32_t MR3; /*!< Offset: 0x024 Match Register 3 (R/W) */
  368. __IO uint32_t CCR; /*!< Offset: 0x028 Capture Control Register (R/W) */
  369. __I uint32_t CR0; /*!< Offset: 0x02C Capture Register 0 (R/ ) */
  370. __I uint32_t CR1; /*!< Offset: 0x030 Capture Register 1 (R/ ) */
  371. uint32_t RESERVED0[2];
  372. __IO uint32_t EMR; /*!< Offset: 0x03C External Match Register (R/W) */
  373. uint32_t RESERVED1[12];
  374. __IO uint32_t CTCR; /*!< Offset: 0x070 Count Control Register (R/W) */
  375. } LPC_TIM_TypeDef;
  376. /*------------- Pulse-Width Modulation (PWM) ---------------------------------*/
  377. typedef struct
  378. {
  379. __IO uint32_t IR; /*!< Offset: 0x000 Interrupt Register (R/W) */
  380. __IO uint32_t TCR; /*!< Offset: 0x004 Timer Control Register (R/W) */
  381. __IO uint32_t TC; /*!< Offset: 0x008 Timer Counter Register (R/W) */
  382. __IO uint32_t PR; /*!< Offset: 0x00C Prescale Register (R/W) */
  383. __IO uint32_t PC; /*!< Offset: 0x010 Prescale Counter Register (R/W) */
  384. __IO uint32_t MCR; /*!< Offset: 0x014 Match Control Register (R/W) */
  385. __IO uint32_t MR0; /*!< Offset: 0x018 Match Register 0 (R/W) */
  386. __IO uint32_t MR1; /*!< Offset: 0x01C Match Register 1 (R/W) */
  387. __IO uint32_t MR2; /*!< Offset: 0x020 Match Register 2 (R/W) */
  388. __IO uint32_t MR3; /*!< Offset: 0x024 Match Register 3 (R/W) */
  389. __IO uint32_t CCR; /*!< Offset: 0x028 Capture Control Register (R/W) */
  390. __I uint32_t CR0; /*!< Offset: 0x02C Capture Register 0 (R/ ) */
  391. __I uint32_t CR1; /*!< Offset: 0x030 Capture Register 1 (R/ ) */
  392. __I uint32_t CR2; /*!< Offset: 0x034 Capture Register 2 (R/ ) */
  393. __I uint32_t CR3; /*!< Offset: 0x038 Capture Register 3 (R/ ) */
  394. uint32_t RESERVED0;
  395. __IO uint32_t MR4; /*!< Offset: 0x040 Match Register 4 (R/W) */
  396. __IO uint32_t MR5; /*!< Offset: 0x044 Match Register 5 (R/W) */
  397. __IO uint32_t MR6; /*!< Offset: 0x048 Match Register 6 (R/W) */
  398. __IO uint32_t PCR; /*!< Offset: 0x04C PWM Control Register (R/W) */
  399. __IO uint32_t LER; /*!< Offset: 0x050 Load Enable Register (R/W) */
  400. uint32_t RESERVED1[7];
  401. __IO uint32_t CTCR; /*!< Offset: 0x070 Counter Control Register (R/W) */
  402. } LPC_PWM_TypeDef;
  403. /*------------- Universal Asynchronous Receiver Transmitter (UARTx) -----------*/
  404. /* There are three types of UARTs on the chip:
  405. (1) UART0,UART2, and UART3 are the standard UART.
  406. (2) UART1 is the standard with modem capability.
  407. (3) USART(UART4) is the sync/async UART with smart card capability.
  408. More details can be found on the Users Manual. */
  409. #if 0
  410. typedef struct
  411. {
  412. union {
  413. __I uint8_t RBR;
  414. __O uint8_t THR;
  415. __IO uint8_t DLL;
  416. uint32_t RESERVED0;
  417. };
  418. union {
  419. __IO uint8_t DLM;
  420. __IO uint32_t IER;
  421. };
  422. union {
  423. __I uint32_t IIR;
  424. __O uint8_t FCR;
  425. };
  426. __IO uint8_t LCR;
  427. uint8_t RESERVED1[7];
  428. __I uint8_t LSR;
  429. uint8_t RESERVED2[7];
  430. __IO uint8_t SCR;
  431. uint8_t RESERVED3[3];
  432. __IO uint32_t ACR;
  433. __IO uint8_t ICR;
  434. uint8_t RESERVED4[3];
  435. __IO uint8_t FDR;
  436. uint8_t RESERVED5[7];
  437. __IO uint8_t TER;
  438. uint8_t RESERVED6[39];
  439. __I uint8_t FIFOLVL;
  440. } LPC_UART_TypeDef;
  441. #else
  442. typedef struct
  443. {
  444. union
  445. {
  446. __I uint8_t RBR;
  447. __O uint8_t THR;
  448. __IO uint8_t DLL;
  449. uint32_t RESERVED0;
  450. };
  451. union
  452. {
  453. __IO uint8_t DLM;
  454. __IO uint32_t IER;
  455. };
  456. union
  457. {
  458. __I uint32_t IIR;
  459. __O uint8_t FCR;
  460. };
  461. __IO uint8_t LCR;
  462. uint8_t RESERVED1[7];//Reserved
  463. __I uint8_t LSR;
  464. uint8_t RESERVED2[7];//Reserved
  465. __IO uint8_t SCR;
  466. uint8_t RESERVED3[3];//Reserved
  467. __IO uint32_t ACR;
  468. uint8_t RESERVED4[4];//Reserved
  469. __IO uint8_t FDR;
  470. uint8_t RESERVED5[7];//Reserved
  471. __IO uint8_t TER;
  472. uint8_t RESERVED8[27];//Reserved
  473. __IO uint8_t RS485CTRL;
  474. uint8_t RESERVED9[3];//Reserved
  475. __IO uint8_t ADRMATCH;
  476. uint8_t RESERVED10[3];//Reserved
  477. __IO uint8_t RS485DLY;
  478. uint8_t RESERVED11[3];//Reserved
  479. }LPC_UART_TypeDef;
  480. #endif
  481. typedef struct
  482. {
  483. union {
  484. __I uint8_t RBR;
  485. __O uint8_t THR;
  486. __IO uint8_t DLL;
  487. uint32_t RESERVED0;
  488. };
  489. union {
  490. __IO uint8_t DLM;
  491. __IO uint32_t IER;
  492. };
  493. union {
  494. __I uint32_t IIR;
  495. __O uint8_t FCR;
  496. };
  497. __IO uint8_t LCR;
  498. uint8_t RESERVED1[3];
  499. __IO uint8_t MCR;
  500. uint8_t RESERVED2[3];
  501. __I uint8_t LSR;
  502. uint8_t RESERVED3[3];
  503. __I uint8_t MSR;
  504. uint8_t RESERVED4[3];
  505. __IO uint8_t SCR;
  506. uint8_t RESERVED5[3];
  507. __IO uint32_t ACR;
  508. uint32_t RESERVED6;
  509. __IO uint32_t FDR;
  510. uint32_t RESERVED7;
  511. __IO uint8_t TER;
  512. uint8_t RESERVED8[27];
  513. __IO uint8_t RS485CTRL;
  514. uint8_t RESERVED9[3];
  515. __IO uint8_t ADRMATCH;
  516. uint8_t RESERVED10[3];
  517. __IO uint8_t RS485DLY;
  518. uint8_t RESERVED11[3];
  519. } LPC_UART1_TypeDef;
  520. typedef struct
  521. {
  522. union {
  523. __I uint32_t RBR; /*!< Offset: 0x000 Receiver Buffer Register (R/ ) */
  524. __O uint32_t THR; /*!< Offset: 0x000 Transmit Holding Register ( /W) */
  525. __IO uint32_t DLL; /*!< Offset: 0x000 Divisor Latch LSB (R/W) */
  526. };
  527. union {
  528. __IO uint32_t DLM; /*!< Offset: 0x004 Divisor Latch MSB (R/W) */
  529. __IO uint32_t IER; /*!< Offset: 0x000 Interrupt Enable Register (R/W) */
  530. };
  531. union {
  532. __I uint32_t IIR; /*!< Offset: 0x008 Interrupt ID Register (R/ ) */
  533. __O uint32_t FCR; /*!< Offset: 0x008 FIFO Control Register ( /W) */
  534. };
  535. __IO uint32_t LCR; /*!< Offset: 0x00C Line Control Register (R/W) */
  536. __IO uint32_t MCR; /*!< Offset: 0x010 Modem control Register (R/W) */
  537. __I uint32_t LSR; /*!< Offset: 0x014 Line Status Register (R/ ) */
  538. __I uint32_t MSR; /*!< Offset: 0x018 Modem status Register (R/ ) */
  539. __IO uint32_t SCR; /*!< Offset: 0x01C Scratch Pad Register (R/W) */
  540. __IO uint32_t ACR; /*!< Offset: 0x020 Auto-baud Control Register (R/W) */
  541. __IO uint32_t ICR; /*!< Offset: 0x024 irDA Control Register (R/W) */
  542. __IO uint32_t FDR; /*!< Offset: 0x028 Fractional Divider Register (R/W) */
  543. __IO uint32_t OSR; /*!< Offset: 0x02C Over sampling Register (R/W) */
  544. uint32_t RESERVED0[6];
  545. __IO uint32_t SCI_CTRL; /*!< Offset: 0x048 Smart card Interface Control Register (R/W) */
  546. __IO uint32_t RS485CTRL; /*!< Offset: 0x04C RS-485/EIA-485 Control Register (R/W) */
  547. __IO uint32_t ADRMATCH; /*!< Offset: 0x050 RS-485/EIA-485 address match Register (R/W) */
  548. __IO uint32_t RS485DLY; /*!< Offset: 0x054 RS-485/EIA-485 direction control delay Register (R/W) */
  549. __IO uint32_t SYNCCTRL; /*!< Offset: 0x058 Synchronous Mode Control Register (R/W ) */
  550. __IO uint32_t TER; /*!< Offset: 0x05C Transmit Enable Register (R/W) */
  551. } LPC_UART4_TypeDef;
  552. /*------------- Synchronous Serial Communication (SSP) -----------------------*/
  553. typedef struct
  554. {
  555. __IO uint32_t CR0; /*!< Offset: 0x000 Control Register 0 (R/W) */
  556. __IO uint32_t CR1; /*!< Offset: 0x004 Control Register 1 (R/W) */
  557. __IO uint32_t DR; /*!< Offset: 0x008 Data Register (R/W) */
  558. __I uint32_t SR; /*!< Offset: 0x00C Status Registe (R/ ) */
  559. __IO uint32_t CPSR; /*!< Offset: 0x010 Clock Prescale Register (R/W) */
  560. __IO uint32_t IMSC; /*!< Offset: 0x014 Interrupt Mask Set and Clear Register (R/W) */
  561. __IO uint32_t RIS; /*!< Offset: 0x018 Raw Interrupt Status Register (R/W) */
  562. __IO uint32_t MIS; /*!< Offset: 0x01C Masked Interrupt Status Register (R/W) */
  563. __IO uint32_t ICR; /*!< Offset: 0x020 SSPICR Interrupt Clear Register (R/W) */
  564. __IO uint32_t DMACR;
  565. } LPC_SSP_TypeDef;
  566. /*------------- Inter-Integrated Circuit (I2C) -------------------------------*/
  567. typedef struct
  568. {
  569. __IO uint32_t CONSET; /*!< Offset: 0x000 I2C Control Set Register (R/W) */
  570. __I uint32_t STAT; /*!< Offset: 0x004 I2C Status Register (R/ ) */
  571. __IO uint32_t DAT; /*!< Offset: 0x008 I2C Data Register (R/W) */
  572. __IO uint32_t ADR0; /*!< Offset: 0x00C I2C Slave Address Register 0 (R/W) */
  573. __IO uint32_t SCLH; /*!< Offset: 0x010 SCH Duty Cycle Register High Half Word (R/W) */
  574. __IO uint32_t SCLL; /*!< Offset: 0x014 SCL Duty Cycle Register Low Half Word (R/W) */
  575. __O uint32_t CONCLR; /*!< Offset: 0x018 I2C Control Clear Register ( /W) */
  576. __IO uint32_t MMCTRL; /*!< Offset: 0x01C Monitor mode control register (R/W) */
  577. __IO uint32_t ADR1; /*!< Offset: 0x020 I2C Slave Address Register 1 (R/W) */
  578. __IO uint32_t ADR2; /*!< Offset: 0x024 I2C Slave Address Register 2 (R/W) */
  579. __IO uint32_t ADR3; /*!< Offset: 0x028 I2C Slave Address Register 3 (R/W) */
  580. __I uint32_t DATA_BUFFER; /*!< Offset: 0x02C Data buffer register ( /W) */
  581. __IO uint32_t MASK0; /*!< Offset: 0x030 I2C Slave address mask register 0 (R/W) */
  582. __IO uint32_t MASK1; /*!< Offset: 0x034 I2C Slave address mask register 1 (R/W) */
  583. __IO uint32_t MASK2; /*!< Offset: 0x038 I2C Slave address mask register 2 (R/W) */
  584. __IO uint32_t MASK3; /*!< Offset: 0x03C I2C Slave address mask register 3 (R/W) */
  585. } LPC_I2C_TypeDef;
  586. /*------------- Inter IC Sound (I2S) -----------------------------------------*/
  587. typedef struct
  588. {
  589. __IO uint32_t DAO;
  590. __IO uint32_t DAI;
  591. __O uint32_t TXFIFO;
  592. __I uint32_t RXFIFO;
  593. __I uint32_t STATE;
  594. __IO uint32_t DMA1;
  595. __IO uint32_t DMA2;
  596. __IO uint32_t IRQ;
  597. __IO uint32_t TXRATE;
  598. __IO uint32_t RXRATE;
  599. __IO uint32_t TXBITRATE;
  600. __IO uint32_t RXBITRATE;
  601. __IO uint32_t TXMODE;
  602. __IO uint32_t RXMODE;
  603. } LPC_I2S_TypeDef;
  604. /*------------- Real-Time Clock (RTC) ----------------------------------------*/
  605. typedef struct
  606. {
  607. __IO uint8_t ILR;
  608. uint8_t RESERVED0[7];
  609. __IO uint8_t CCR;
  610. uint8_t RESERVED1[3];
  611. __IO uint8_t CIIR;
  612. uint8_t RESERVED2[3];
  613. __IO uint8_t AMR;
  614. uint8_t RESERVED3[3];
  615. __I uint32_t CTIME0;
  616. __I uint32_t CTIME1;
  617. __I uint32_t CTIME2;
  618. __IO uint8_t SEC;
  619. uint8_t RESERVED4[3];
  620. __IO uint8_t MIN;
  621. uint8_t RESERVED5[3];
  622. __IO uint8_t HOUR;
  623. uint8_t RESERVED6[3];
  624. __IO uint8_t DOM;
  625. uint8_t RESERVED7[3];
  626. __IO uint8_t DOW;
  627. uint8_t RESERVED8[3];
  628. __IO uint16_t DOY;
  629. uint16_t RESERVED9;
  630. __IO uint8_t MONTH;
  631. uint8_t RESERVED10[3];
  632. __IO uint16_t YEAR;
  633. uint16_t RESERVED11;
  634. __IO uint32_t CALIBRATION;
  635. __IO uint32_t GPREG0;
  636. __IO uint32_t GPREG1;
  637. __IO uint32_t GPREG2;
  638. __IO uint32_t GPREG3;
  639. __IO uint32_t GPREG4;
  640. __IO uint8_t RTC_AUXEN;
  641. uint8_t RESERVED12[3];
  642. __IO uint8_t RTC_AUX;
  643. uint8_t RESERVED13[3];
  644. __IO uint8_t ALSEC;
  645. uint8_t RESERVED14[3];
  646. __IO uint8_t ALMIN;
  647. uint8_t RESERVED15[3];
  648. __IO uint8_t ALHOUR;
  649. uint8_t RESERVED16[3];
  650. __IO uint8_t ALDOM;
  651. uint8_t RESERVED17[3];
  652. __IO uint8_t ALDOW;
  653. uint8_t RESERVED18[3];
  654. __IO uint16_t ALDOY;
  655. uint16_t RESERVED19;
  656. __IO uint8_t ALMON;
  657. uint8_t RESERVED20[3];
  658. __IO uint16_t ALYEAR;
  659. uint16_t RESERVED21;
  660. __IO uint32_t ERSTATUS;
  661. __IO uint32_t ERCONTROL;
  662. __IO uint32_t ERCOUNTERS;
  663. uint32_t RESERVED22;
  664. __IO uint32_t ERFIRSTSTAMP0;
  665. __IO uint32_t ERFIRSTSTAMP1;
  666. __IO uint32_t ERFIRSTSTAMP2;
  667. uint32_t RESERVED23;
  668. __IO uint32_t ERLASTSTAMP0;
  669. __IO uint32_t ERLASTSTAMP1;
  670. __IO uint32_t ERLASTSTAMP2;
  671. } LPC_RTC_TypeDef;
  672. /*------------- Watchdog Timer (WDT) -----------------------------------------*/
  673. typedef struct
  674. {
  675. __IO uint8_t MOD;
  676. uint8_t RESERVED0[3];
  677. __IO uint32_t TC;
  678. __O uint8_t FEED;
  679. uint8_t RESERVED1[3];
  680. __I uint32_t TV;
  681. uint32_t RESERVED2;
  682. __IO uint32_t WARNINT;
  683. __IO uint32_t WINDOW;
  684. } LPC_WDT_TypeDef;
  685. /*------------- Analog-to-Digital Converter (ADC) ----------------------------*/
  686. typedef struct
  687. {
  688. __IO uint32_t CR; /*!< Offset: 0x000 A/D Control Register (R/W) */
  689. __IO uint32_t GDR; /*!< Offset: 0x004 A/D Global Data Register (R/W) */
  690. uint32_t RESERVED0;
  691. __IO uint32_t INTEN; /*!< Offset: 0x00C A/D Interrupt Enable Register (R/W) */
  692. __IO uint32_t DR[8]; /*!< Offset: 0x010-0x02C A/D Channel 0..7 Data Register (R/W) */
  693. __I uint32_t STAT; /*!< Offset: 0x030 A/D Status Register (R/ ) */
  694. __IO uint32_t ADTRM;
  695. } LPC_ADC_TypeDef;
  696. /*------------- Digital-to-Analog Converter (DAC) ----------------------------*/
  697. typedef struct
  698. {
  699. __IO uint32_t CR;
  700. __IO uint32_t CTRL;
  701. __IO uint32_t CNTVAL;
  702. } LPC_DAC_TypeDef;
  703. /*------------- Motor Control Pulse-Width Modulation (MCPWM) -----------------*/
  704. typedef struct
  705. {
  706. __I uint32_t CON;
  707. __O uint32_t CON_SET;
  708. __O uint32_t CON_CLR;
  709. __I uint32_t CAPCON;
  710. __O uint32_t CAPCON_SET;
  711. __O uint32_t CAPCON_CLR;
  712. __IO uint32_t TC0;
  713. __IO uint32_t TC1;
  714. __IO uint32_t TC2;
  715. __IO uint32_t LIM0;
  716. __IO uint32_t LIM1;
  717. __IO uint32_t LIM2;
  718. __IO uint32_t MAT0;
  719. __IO uint32_t MAT1;
  720. __IO uint32_t MAT2;
  721. __IO uint32_t DT;
  722. __IO uint32_t CP;
  723. __IO uint32_t CAP0;
  724. __IO uint32_t CAP1;
  725. __IO uint32_t CAP2;
  726. __I uint32_t INTEN;
  727. __O uint32_t INTEN_SET;
  728. __O uint32_t INTEN_CLR;
  729. __I uint32_t CNTCON;
  730. __O uint32_t CNTCON_SET;
  731. __O uint32_t CNTCON_CLR;
  732. __I uint32_t INTF;
  733. __O uint32_t INTF_SET;
  734. __O uint32_t INTF_CLR;
  735. __O uint32_t CAP_CLR;
  736. } LPC_MCPWM_TypeDef;
  737. /*------------- Quadrature Encoder Interface (QEI) ---------------------------*/
  738. typedef struct
  739. {
  740. __O uint32_t CON;
  741. __I uint32_t STAT;
  742. __IO uint32_t CONF;
  743. __I uint32_t POS;
  744. __IO uint32_t MAXPOS;
  745. __IO uint32_t CMPOS0;
  746. __IO uint32_t CMPOS1;
  747. __IO uint32_t CMPOS2;
  748. __I uint32_t INXCNT;
  749. __IO uint32_t INXCMP0;
  750. __IO uint32_t LOAD;
  751. __I uint32_t TIME;
  752. __I uint32_t VEL;
  753. __I uint32_t CAP;
  754. __IO uint32_t VELCOMP;
  755. __IO uint32_t FILTERPHA;
  756. __IO uint32_t FILTERPHB;
  757. __IO uint32_t FILTERINX;
  758. __IO uint32_t WINDOW;
  759. __IO uint32_t INXCMP1;
  760. __IO uint32_t INXCMP2;
  761. uint32_t RESERVED0[993];
  762. __O uint32_t IEC;
  763. __O uint32_t IES;
  764. __I uint32_t INTSTAT;
  765. __I uint32_t IE;
  766. __O uint32_t CLR;
  767. __O uint32_t SET;
  768. } LPC_QEI_TypeDef;
  769. /*------------- SD/MMC card Interface (MCI)-----------------------------------*/
  770. typedef struct
  771. {
  772. __IO uint32_t POWER;
  773. __IO uint32_t CLOCK;
  774. __IO uint32_t ARGUMENT;
  775. __IO uint32_t COMMAND;
  776. __I uint32_t RESP_CMD;
  777. __I uint32_t RESP0;
  778. __I uint32_t RESP1;
  779. __I uint32_t RESP2;
  780. __I uint32_t RESP3;
  781. __IO uint32_t DATATMR;
  782. __IO uint32_t DATALEN;
  783. __IO uint32_t DATACTRL;
  784. __I uint32_t DATACNT;
  785. __I uint32_t STATUS;
  786. __O uint32_t CLEAR;
  787. __IO uint32_t MASK0;
  788. uint32_t RESERVED0[2];
  789. __I uint32_t FIFOCNT;
  790. uint32_t RESERVED1[13];
  791. __IO uint32_t FIFO[16];
  792. } LPC_MCI_TypeDef;
  793. /*------------- Controller Area Network (CAN) --------------------------------*/
  794. typedef struct
  795. {
  796. __IO uint32_t mask[512]; /* ID Masks */
  797. } LPC_CANAF_RAM_TypeDef;
  798. typedef struct /* Acceptance Filter Registers */
  799. {
  800. ///Offset: 0x00000000 - Acceptance Filter Register
  801. __IO uint32_t AFMR;
  802. ///Offset: 0x00000004 - Standard Frame Individual Start Address Register
  803. __IO uint32_t SFF_sa;
  804. ///Offset: 0x00000008 - Standard Frame Group Start Address Register
  805. __IO uint32_t SFF_GRP_sa;
  806. ///Offset: 0x0000000C - Extended Frame Start Address Register
  807. __IO uint32_t EFF_sa;
  808. ///Offset: 0x00000010 - Extended Frame Group Start Address Register
  809. __IO uint32_t EFF_GRP_sa;
  810. ///Offset: 0x00000014 - End of AF Tables register
  811. __IO uint32_t ENDofTable;
  812. ///Offset: 0x00000018 - LUT Error Address register
  813. __I uint32_t LUTerrAd;
  814. ///Offset: 0x0000001C - LUT Error Register
  815. __I uint32_t LUTerr;
  816. ///Offset: 0x00000020 - CAN Central Transmit Status Register
  817. __IO uint32_t FCANIE;
  818. ///Offset: 0x00000024 - FullCAN Interrupt and Capture registers 0
  819. __IO uint32_t FCANIC0;
  820. ///Offset: 0x00000028 - FullCAN Interrupt and Capture registers 1
  821. __IO uint32_t FCANIC1;
  822. } LPC_CANAF_TypeDef;
  823. typedef struct /* Central Registers */
  824. {
  825. __I uint32_t TxSR;
  826. __I uint32_t RxSR;
  827. __I uint32_t MSR;
  828. } LPC_CANCR_TypeDef;
  829. typedef struct /* Controller Registers */
  830. {
  831. ///Offset: 0x00000000 - Controls the operating mode of the CAN Controller
  832. __IO uint32_t MOD;
  833. ///Offset: 0x00000004 - Command bits that affect the state
  834. __O uint32_t CMR;
  835. ///Offset: 0x00000008 - Global Controller Status and Error Counters
  836. __IO uint32_t GSR;
  837. ///Offset: 0x0000000C - Interrupt status, Arbitration Lost Capture, Error Code Capture
  838. __I uint32_t ICR;
  839. ///Offset: 0x00000010 - Interrupt Enable Register
  840. __IO uint32_t IER;
  841. ///Offset: 0x00000014 - Bus Timing Register
  842. __IO uint32_t BTR;
  843. ///Offset: 0x00000018 - Error Warning Limit
  844. __IO uint32_t EWL;
  845. ///Offset: 0x0000001C - Status Register
  846. __I uint32_t SR;
  847. ///Offset: 0x00000020 - Receive frame status
  848. __IO uint32_t RFS;
  849. ///Offset: 0x00000024 - Received Identifier
  850. __IO uint32_t RID;
  851. ///Offset: 0x00000028 - Received data bytes 1-4
  852. __IO uint32_t RDA;
  853. ///Offset: 0x0000002C - Received data bytes 5-8
  854. __IO uint32_t RDB;
  855. ///Offset: 0x00000030 - Transmit frame info (Tx Buffer 1)
  856. __IO uint32_t TFI1;
  857. ///Offset: 0x00000034 - Transmit Identifier (Tx Buffer 1)
  858. __IO uint32_t TID1;
  859. ///Offset: 0x00000038 - Transmit data bytes 1-4 (Tx Buffer 1)
  860. __IO uint32_t TDA1;
  861. ///Offset: 0x0000003C - Transmit data bytes 5-8 (Tx Buffer 1)
  862. __IO uint32_t TDB1;
  863. ///Offset: 0x00000040 - Transmit frame info (Tx Buffer 2)
  864. __IO uint32_t TFI2;
  865. ///Offset: 0x00000044 - Transmit Identifier (Tx Buffer 2)
  866. __IO uint32_t TID2;
  867. ///Offset: 0x00000048 - Transmit data bytes 1-4 (Tx Buffer 2)
  868. __IO uint32_t TDA2;
  869. ///Offset: 0x0000004C - Transmit data bytes 5-8 (Tx Buffer 2)
  870. __IO uint32_t TDB2;
  871. ///Offset: 0x00000050 - Transmit frame info (Tx Buffer 3)
  872. __IO uint32_t TFI3;
  873. ///Offset: 0x00000054 - Transmit Identifier (Tx Buffer 3)
  874. __IO uint32_t TID3;
  875. ///Offset: 0x00000058 - Transmit data bytes 1-4 (Tx Buffer 3)
  876. __IO uint32_t TDA3;
  877. ///Offset: 0x0000005C - Transmit data bytes 5-8 (Tx Buffer 3)
  878. __IO uint32_t TDB3;
  879. } LPC_CAN_TypeDef;
  880. /*------------- General Purpose Direct Memory Access (GPDMA) -----------------*/
  881. typedef struct /* Common Registers */
  882. {
  883. __I uint32_t IntStat;
  884. __I uint32_t IntTCStat;
  885. __O uint32_t IntTCClear;
  886. __I uint32_t IntErrStat;
  887. __O uint32_t IntErrClr;
  888. __I uint32_t RawIntTCStat;
  889. __I uint32_t RawIntErrStat;
  890. __I uint32_t EnbldChns;
  891. __IO uint32_t SoftBReq;
  892. __IO uint32_t SoftSReq;
  893. __IO uint32_t SoftLBReq;
  894. __IO uint32_t SoftLSReq;
  895. __IO uint32_t Config;
  896. __IO uint32_t Sync;
  897. } LPC_GPDMA_TypeDef;
  898. typedef struct /* Channel Registers */
  899. {
  900. __IO uint32_t CSrcAddr;
  901. __IO uint32_t CDestAddr;
  902. __IO uint32_t CLLI;
  903. __IO uint32_t CControl;
  904. __IO uint32_t CConfig;
  905. } LPC_GPDMACH_TypeDef;
  906. /*------------- Universal Serial Bus (USB) -----------------------------------*/
  907. typedef struct
  908. {
  909. __I uint32_t Revision; /* USB Host Registers */
  910. __IO uint32_t Control;
  911. __IO uint32_t CommandStatus;
  912. __IO uint32_t InterruptStatus;
  913. __IO uint32_t InterruptEnable;
  914. __IO uint32_t InterruptDisable;
  915. __IO uint32_t HCCA;
  916. __I uint32_t PeriodCurrentED;
  917. __IO uint32_t ControlHeadED;
  918. __IO uint32_t ControlCurrentED;
  919. __IO uint32_t BulkHeadED;
  920. __IO uint32_t BulkCurrentED;
  921. __I uint32_t DoneHead;
  922. __IO uint32_t FmInterval;
  923. __I uint32_t FmRemaining;
  924. __I uint32_t FmNumber;
  925. __IO uint32_t PeriodicStart;
  926. __IO uint32_t LSTreshold;
  927. __IO uint32_t RhDescriptorA;
  928. __IO uint32_t RhDescriptorB;
  929. __IO uint32_t RhStatus;
  930. __IO uint32_t RhPortStatus1;
  931. __IO uint32_t RhPortStatus2;
  932. uint32_t RESERVED0[40];
  933. __I uint32_t Module_ID;
  934. __I uint32_t IntSt; /* USB On-The-Go Registers */
  935. __IO uint32_t IntEn;
  936. __O uint32_t IntSet;
  937. __O uint32_t IntClr;
  938. __IO uint32_t StCtrl;
  939. __IO uint32_t Tmr;
  940. uint32_t RESERVED1[58];
  941. __I uint32_t DevIntSt; /* USB Device Interrupt Registers */
  942. __IO uint32_t DevIntEn;
  943. __O uint32_t DevIntClr;
  944. __O uint32_t DevIntSet;
  945. __O uint32_t CmdCode; /* USB Device SIE Command Registers */
  946. __I uint32_t CmdData;
  947. __I uint32_t RxData; /* USB Device Transfer Registers */
  948. __O uint32_t TxData;
  949. __I uint32_t RxPLen;
  950. __O uint32_t TxPLen;
  951. __IO uint32_t Ctrl;
  952. __O uint32_t DevIntPri;
  953. __I uint32_t EpIntSt; /* USB Device Endpoint Interrupt Regs */
  954. __IO uint32_t EpIntEn;
  955. __O uint32_t EpIntClr;
  956. __O uint32_t EpIntSet;
  957. __O uint32_t EpIntPri;
  958. __IO uint32_t ReEp; /* USB Device Endpoint Realization Reg*/
  959. __O uint32_t EpInd;
  960. __IO uint32_t MaxPSize;
  961. __I uint32_t DMARSt; /* USB Device DMA Registers */
  962. __O uint32_t DMARClr;
  963. __O uint32_t DMARSet;
  964. uint32_t RESERVED2[9];
  965. __IO uint32_t UDCAH;
  966. __I uint32_t EpDMASt;
  967. __O uint32_t EpDMAEn;
  968. __O uint32_t EpDMADis;
  969. __I uint32_t DMAIntSt;
  970. __IO uint32_t DMAIntEn;
  971. uint32_t RESERVED3[2];
  972. __I uint32_t EoTIntSt;
  973. __O uint32_t EoTIntClr;
  974. __O uint32_t EoTIntSet;
  975. __I uint32_t NDDRIntSt;
  976. __O uint32_t NDDRIntClr;
  977. __O uint32_t NDDRIntSet;
  978. __I uint32_t SysErrIntSt;
  979. __O uint32_t SysErrIntClr;
  980. __O uint32_t SysErrIntSet;
  981. uint32_t RESERVED4[15];
  982. union {
  983. __I uint32_t I2C_RX; /* USB OTG I2C Registers */
  984. __O uint32_t I2C_TX;
  985. };
  986. __IO uint32_t I2C_STS;
  987. __IO uint32_t I2C_CTL;
  988. __IO uint32_t I2C_CLKHI;
  989. __O uint32_t I2C_CLKLO;
  990. uint32_t RESERVED5[824];
  991. union {
  992. __IO uint32_t USBClkCtrl; /* USB Clock Control Registers */
  993. __IO uint32_t OTGClkCtrl;
  994. };
  995. union {
  996. __I uint32_t USBClkSt;
  997. __I uint32_t OTGClkSt;
  998. };
  999. } LPC_USB_TypeDef;
  1000. /*------------- Ethernet Media Access Controller (EMAC) ----------------------*/
  1001. typedef struct
  1002. {
  1003. __IO uint32_t MAC1; /* MAC Registers */
  1004. __IO uint32_t MAC2;
  1005. __IO uint32_t IPGT;
  1006. __IO uint32_t IPGR;
  1007. __IO uint32_t CLRT;
  1008. __IO uint32_t MAXF;
  1009. __IO uint32_t SUPP;
  1010. __IO uint32_t TEST;
  1011. __IO uint32_t MCFG;
  1012. __IO uint32_t MCMD;
  1013. __IO uint32_t MADR;
  1014. __O uint32_t MWTD;
  1015. __I uint32_t MRDD;
  1016. __I uint32_t MIND;
  1017. uint32_t RESERVED0[2];
  1018. __IO uint32_t SA0;
  1019. __IO uint32_t SA1;
  1020. __IO uint32_t SA2;
  1021. uint32_t RESERVED1[45];
  1022. __IO uint32_t Command; /* Control Registers */
  1023. __I uint32_t Status;
  1024. __IO uint32_t RxDescriptor;
  1025. __IO uint32_t RxStatus;
  1026. __IO uint32_t RxDescriptorNumber;
  1027. __I uint32_t RxProduceIndex;
  1028. __IO uint32_t RxConsumeIndex;
  1029. __IO uint32_t TxDescriptor;
  1030. __IO uint32_t TxStatus;
  1031. __IO uint32_t TxDescriptorNumber;
  1032. __IO uint32_t TxProduceIndex;
  1033. __I uint32_t TxConsumeIndex;
  1034. uint32_t RESERVED2[10];
  1035. __I uint32_t TSV0;
  1036. __I uint32_t TSV1;
  1037. __I uint32_t RSV;
  1038. uint32_t RESERVED3[3];
  1039. __IO uint32_t FlowControlCounter;
  1040. __I uint32_t FlowControlStatus;
  1041. uint32_t RESERVED4[34];
  1042. __IO uint32_t RxFilterCtrl; /* Rx Filter Registers */
  1043. __I uint32_t RxFilterWoLStatus;
  1044. __O uint32_t RxFilterWoLClear;
  1045. uint32_t RESERVED5;
  1046. __IO uint32_t HashFilterL;
  1047. __IO uint32_t HashFilterH;
  1048. uint32_t RESERVED6[882];
  1049. __I uint32_t IntStatus; /* Module Control Registers */
  1050. __IO uint32_t IntEnable;
  1051. __O uint32_t IntClear;
  1052. __O uint32_t IntSet;
  1053. uint32_t RESERVED7;
  1054. __IO uint32_t PowerDown;
  1055. uint32_t RESERVED8;
  1056. __IO uint32_t Module_ID;
  1057. } LPC_EMAC_TypeDef;
  1058. /*------------- LCD controller (LCD) -----------------------------------------*/
  1059. typedef struct
  1060. {
  1061. __IO uint32_t TIMH; /* LCD Registers */
  1062. __IO uint32_t TIMV;
  1063. __IO uint32_t POL;
  1064. __IO uint32_t LE;
  1065. __IO uint32_t UPBASE;
  1066. __IO uint32_t LPBASE;
  1067. __IO uint32_t CTRL;
  1068. __IO uint32_t INTMSK;
  1069. __I uint32_t INTRAW;
  1070. __I uint32_t INTSTAT;
  1071. __O uint32_t INTCLR;
  1072. __I uint32_t UPCURR;
  1073. __I uint32_t LPCURR;
  1074. uint32_t RESERVED0[115];
  1075. __IO uint32_t PAL[128];
  1076. uint32_t RESERVED1[256];
  1077. __IO uint32_t CRSR_IMG[256];
  1078. __IO uint32_t CRSR_CTRL;
  1079. __IO uint32_t CRSR_CFG;
  1080. __IO uint32_t CRSR_PAL0;
  1081. __IO uint32_t CRSR_PAL1;
  1082. __IO uint32_t CRSR_XY;
  1083. __IO uint32_t CRSR_CLIP;
  1084. uint32_t RESERVED2[2];
  1085. __IO uint32_t CRSR_INTMSK;
  1086. __O uint32_t CRSR_INTCLR;
  1087. __I uint32_t CRSR_INTRAW;
  1088. __I uint32_t CRSR_INTSTAT;
  1089. } LPC_LCD_TypeDef;
  1090. /*------------- External Memory Controller (EMC) -----------------------------*/
  1091. typedef struct
  1092. {
  1093. __IO uint32_t Control;
  1094. __I uint32_t Status;
  1095. __IO uint32_t Config;
  1096. uint32_t RESERVED0[5];
  1097. __IO uint32_t DynamicControl;
  1098. __IO uint32_t DynamicRefresh;
  1099. __IO uint32_t DynamicReadConfig;
  1100. uint32_t RESERVED1[1];
  1101. __IO uint32_t DynamicRP;
  1102. __IO uint32_t DynamicRAS;
  1103. __IO uint32_t DynamicSREX;
  1104. __IO uint32_t DynamicAPR;
  1105. __IO uint32_t DynamicDAL;
  1106. __IO uint32_t DynamicWR;
  1107. __IO uint32_t DynamicRC;
  1108. __IO uint32_t DynamicRFC;
  1109. __IO uint32_t DynamicXSR;
  1110. __IO uint32_t DynamicRRD;
  1111. __IO uint32_t DynamicMRD;
  1112. uint32_t RESERVED2[9];
  1113. __IO uint32_t StaticExtendedWait;
  1114. uint32_t RESERVED3[31];
  1115. __IO uint32_t DynamicConfig0;
  1116. __IO uint32_t DynamicRasCas0;
  1117. uint32_t RESERVED4[6];
  1118. __IO uint32_t DynamicConfig1;
  1119. __IO uint32_t DynamicRasCas1;
  1120. uint32_t RESERVED5[6];
  1121. __IO uint32_t DynamicConfig2;
  1122. __IO uint32_t DynamicRasCas2;
  1123. uint32_t RESERVED6[6];
  1124. __IO uint32_t DynamicConfig3;
  1125. __IO uint32_t DynamicRasCas3;
  1126. uint32_t RESERVED7[38];
  1127. __IO uint32_t StaticConfig0;
  1128. __IO uint32_t StaticWaitWen0;
  1129. __IO uint32_t StaticWaitOen0;
  1130. __IO uint32_t StaticWaitRd0;
  1131. __IO uint32_t StaticWaitPage0;
  1132. __IO uint32_t StaticWaitWr0;
  1133. __IO uint32_t StaticWaitTurn0;
  1134. uint32_t RESERVED8[1];
  1135. __IO uint32_t StaticConfig1;
  1136. __IO uint32_t StaticWaitWen1;
  1137. __IO uint32_t StaticWaitOen1;
  1138. __IO uint32_t StaticWaitRd1;
  1139. __IO uint32_t StaticWaitPage1;
  1140. __IO uint32_t StaticWaitWr1;
  1141. __IO uint32_t StaticWaitTurn1;
  1142. uint32_t RESERVED9[1];
  1143. __IO uint32_t StaticConfig2;
  1144. __IO uint32_t StaticWaitWen2;
  1145. __IO uint32_t StaticWaitOen2;
  1146. __IO uint32_t StaticWaitRd2;
  1147. __IO uint32_t StaticWaitPage2;
  1148. __IO uint32_t StaticWaitWr2;
  1149. __IO uint32_t StaticWaitTurn2;
  1150. uint32_t RESERVED10[1];
  1151. __IO uint32_t StaticConfig3;
  1152. __IO uint32_t StaticWaitWen3;
  1153. __IO uint32_t StaticWaitOen3;
  1154. __IO uint32_t StaticWaitRd3;
  1155. __IO uint32_t StaticWaitPage3;
  1156. __IO uint32_t StaticWaitWr3;
  1157. __IO uint32_t StaticWaitTurn3;
  1158. } LPC_EMC_TypeDef;
  1159. /*------------- CRC Engine (CRC) -----------------------------------------*/
  1160. typedef struct
  1161. {
  1162. __IO uint32_t MODE;
  1163. __IO uint32_t SEED;
  1164. union {
  1165. __I uint32_t SUM;
  1166. struct {
  1167. __O uint32_t DATA;
  1168. } WR_DATA_DWORD;
  1169. struct {
  1170. __O uint16_t DATA;
  1171. uint16_t RESERVED;
  1172. }WR_DATA_WORD;
  1173. struct {
  1174. __O uint8_t DATA;
  1175. uint8_t RESERVED[3];
  1176. }WR_DATA_BYTE;
  1177. };
  1178. } LPC_CRC_TypeDef;
  1179. /*------------- EEPROM Controller (EEPROM) -----------------------------------*/
  1180. typedef struct
  1181. {
  1182. __IO uint32_t CMD; /* 0x0080 */
  1183. __IO uint32_t ADDR;
  1184. __IO uint32_t WDATA;
  1185. __IO uint32_t RDATA;
  1186. __IO uint32_t WSTATE; /* 0x0090 */
  1187. __IO uint32_t CLKDIV;
  1188. __IO uint32_t PWRDWN; /* 0x0098 */
  1189. uint32_t RESERVED0[975];
  1190. __IO uint32_t INT_CLR_ENABLE; /* 0x0FD8 */
  1191. __IO uint32_t INT_SET_ENABLE;
  1192. __IO uint32_t INT_STATUS; /* 0x0FE0 */
  1193. __IO uint32_t INT_ENABLE;
  1194. __IO uint32_t INT_CLR_STATUS;
  1195. __IO uint32_t INT_SET_STATUS;
  1196. } LPC_EEPROM_TypeDef;
  1197. #if defined ( __CC_ARM )
  1198. #pragma no_anon_unions
  1199. #endif
  1200. /******************************************************************************/
  1201. /* Peripheral memory map */
  1202. /******************************************************************************/
  1203. /* Base addresses */
  1204. #define LPC_FLASH_BASE (0x00000000UL)
  1205. #define LPC_RAM_BASE (0x10000000UL)
  1206. #define LPC_PERI_RAM_BASE (0x20000000UL)
  1207. #define LPC_APB0_BASE (0x40000000UL)
  1208. #define LPC_APB1_BASE (0x40080000UL)
  1209. #define LPC_AHBRAM1_BASE (0x20004000UL)
  1210. #define LPC_AHB_BASE (0x20080000UL)
  1211. #define LPC_CM3_BASE (0xE0000000UL)
  1212. /* APB0 peripherals */
  1213. #define LPC_WDT_BASE (LPC_APB0_BASE + 0x00000)
  1214. #define LPC_TIM0_BASE (LPC_APB0_BASE + 0x04000)
  1215. #define LPC_TIM1_BASE (LPC_APB0_BASE + 0x08000)
  1216. #define LPC_UART0_BASE (LPC_APB0_BASE + 0x0C000)
  1217. #define LPC_UART1_BASE (LPC_APB0_BASE + 0x10000)
  1218. #define LPC_PWM0_BASE (LPC_APB0_BASE + 0x14000)
  1219. #define LPC_PWM1_BASE (LPC_APB0_BASE + 0x18000)
  1220. #define LPC_I2C0_BASE (LPC_APB0_BASE + 0x1C000)
  1221. #define LPC_RTC_BASE (LPC_APB0_BASE + 0x24000)
  1222. #define LPC_GPIOINT_BASE (LPC_APB0_BASE + 0x28080)
  1223. #define LPC_IOCON_BASE (LPC_APB0_BASE + 0x2C000)
  1224. #define LPC_SSP1_BASE (LPC_APB0_BASE + 0x30000)
  1225. #define LPC_ADC_BASE (LPC_APB0_BASE + 0x34000)
  1226. #define LPC_CANAF_RAM_BASE (LPC_APB0_BASE + 0x38000)
  1227. #define LPC_CANAF_BASE (LPC_APB0_BASE + 0x3C000)
  1228. #define LPC_CANCR_BASE (LPC_APB0_BASE + 0x40000)
  1229. #define LPC_CAN1_BASE (LPC_APB0_BASE + 0x44000)
  1230. #define LPC_CAN2_BASE (LPC_APB0_BASE + 0x48000)
  1231. #define LPC_I2C1_BASE (LPC_APB0_BASE + 0x5C000)
  1232. /* APB1 peripherals */
  1233. #define LPC_SSP0_BASE (LPC_APB1_BASE + 0x08000)
  1234. #define LPC_DAC_BASE (LPC_APB1_BASE + 0x0C000)
  1235. #define LPC_TIM2_BASE (LPC_APB1_BASE + 0x10000)
  1236. #define LPC_TIM3_BASE (LPC_APB1_BASE + 0x14000)
  1237. #define LPC_UART2_BASE (LPC_APB1_BASE + 0x18000)
  1238. #define LPC_UART3_BASE (LPC_APB1_BASE + 0x1C000)
  1239. #define LPC_I2C2_BASE (LPC_APB1_BASE + 0x20000)
  1240. #define LPC_UART4_BASE (LPC_APB1_BASE + 0x24000)
  1241. #define LPC_I2S_BASE (LPC_APB1_BASE + 0x28000)
  1242. #define LPC_SSP2_BASE (LPC_APB1_BASE + 0x2C000)
  1243. #define LPC_MCPWM_BASE (LPC_APB1_BASE + 0x38000)
  1244. #define LPC_QEI_BASE (LPC_APB1_BASE + 0x3C000)
  1245. #define LPC_MCI_BASE (LPC_APB1_BASE + 0x40000)
  1246. #define LPC_SC_BASE (LPC_APB1_BASE + 0x7C000)
  1247. /* AHB peripherals */
  1248. #define LPC_GPDMA_BASE (LPC_AHB_BASE + 0x00000)
  1249. #define LPC_GPDMACH0_BASE (LPC_AHB_BASE + 0x00100)
  1250. #define LPC_GPDMACH1_BASE (LPC_AHB_BASE + 0x00120)
  1251. #define LPC_GPDMACH2_BASE (LPC_AHB_BASE + 0x00140)
  1252. #define LPC_GPDMACH3_BASE (LPC_AHB_BASE + 0x00160)
  1253. #define LPC_GPDMACH4_BASE (LPC_AHB_BASE + 0x00180)
  1254. #define LPC_GPDMACH5_BASE (LPC_AHB_BASE + 0x001A0)
  1255. #define LPC_GPDMACH6_BASE (LPC_AHB_BASE + 0x001C0)
  1256. #define LPC_GPDMACH7_BASE (LPC_AHB_BASE + 0x001E0)
  1257. #define LPC_EMAC_BASE (LPC_AHB_BASE + 0x04000)
  1258. #define LPC_LCD_BASE (LPC_AHB_BASE + 0x08000)
  1259. #define LPC_USB_BASE (LPC_AHB_BASE + 0x0C000)
  1260. #define LPC_CRC_BASE (LPC_AHB_BASE + 0x10000)
  1261. #define LPC_GPIO0_BASE (LPC_AHB_BASE + 0x18000)
  1262. #define LPC_GPIO1_BASE (LPC_AHB_BASE + 0x18020)
  1263. #define LPC_GPIO2_BASE (LPC_AHB_BASE + 0x18040)
  1264. #define LPC_GPIO3_BASE (LPC_AHB_BASE + 0x18060)
  1265. #define LPC_GPIO4_BASE (LPC_AHB_BASE + 0x18080)
  1266. #define LPC_GPIO5_BASE (LPC_AHB_BASE + 0x180A0)
  1267. #define LPC_EMC_BASE (LPC_AHB_BASE + 0x1C000)
  1268. #define LPC_EEPROM_BASE (LPC_FLASH_BASE+ 0x200080)
  1269. /******************************************************************************/
  1270. /* Peripheral declaration */
  1271. /******************************************************************************/
  1272. #define LPC_SC ((LPC_SC_TypeDef *) LPC_SC_BASE )
  1273. #define LPC_WDT ((LPC_WDT_TypeDef *) LPC_WDT_BASE )
  1274. #define LPC_TIM0 ((LPC_TIM_TypeDef *) LPC_TIM0_BASE )
  1275. #define LPC_TIM1 ((LPC_TIM_TypeDef *) LPC_TIM1_BASE )
  1276. #define LPC_TIM2 ((LPC_TIM_TypeDef *) LPC_TIM2_BASE )
  1277. #define LPC_TIM3 ((LPC_TIM_TypeDef *) LPC_TIM3_BASE )
  1278. #define LPC_UART0 ((LPC_UART_TypeDef *) LPC_UART0_BASE )
  1279. #define LPC_UART1 ((LPC_UART1_TypeDef *) LPC_UART1_BASE )
  1280. #define LPC_UART2 ((LPC_UART_TypeDef *) LPC_UART2_BASE )
  1281. #define LPC_UART3 ((LPC_UART_TypeDef *) LPC_UART3_BASE )
  1282. #define LPC_UART4 ((LPC_UART4_TypeDef *) LPC_UART4_BASE )
  1283. #define LPC_PWM0 ((LPC_PWM_TypeDef *) LPC_PWM0_BASE )
  1284. #define LPC_PWM1 ((LPC_PWM_TypeDef *) LPC_PWM1_BASE )
  1285. #define LPC_I2C0 ((LPC_I2C_TypeDef *) LPC_I2C0_BASE )
  1286. #define LPC_I2C1 ((LPC_I2C_TypeDef *) LPC_I2C1_BASE )
  1287. #define LPC_I2C2 ((LPC_I2C_TypeDef *) LPC_I2C2_BASE )
  1288. #define LPC_I2S ((LPC_I2S_TypeDef *) LPC_I2S_BASE )
  1289. #define LPC_RTC ((LPC_RTC_TypeDef *) LPC_RTC_BASE )
  1290. #define LPC_GPIOINT ((LPC_GPIOINT_TypeDef *) LPC_GPIOINT_BASE )
  1291. #define LPC_IOCON ((LPC_IOCON_TypeDef *) LPC_IOCON_BASE )
  1292. #define LPC_SSP0 ((LPC_SSP_TypeDef *) LPC_SSP0_BASE )
  1293. #define LPC_SSP1 ((LPC_SSP_TypeDef *) LPC_SSP1_BASE )
  1294. #define LPC_SSP2 ((LPC_SSP_TypeDef *) LPC_SSP2_BASE )
  1295. #define LPC_ADC ((LPC_ADC_TypeDef *) LPC_ADC_BASE )
  1296. #define LPC_DAC ((LPC_DAC_TypeDef *) LPC_DAC_BASE )
  1297. #define LPC_CANAF_RAM ((LPC_CANAF_RAM_TypeDef *) LPC_CANAF_RAM_BASE)
  1298. #define LPC_CANAF ((LPC_CANAF_TypeDef *) LPC_CANAF_BASE )
  1299. #define LPC_CANCR ((LPC_CANCR_TypeDef *) LPC_CANCR_BASE )
  1300. #define LPC_CAN1 ((LPC_CAN_TypeDef *) LPC_CAN1_BASE )
  1301. #define LPC_CAN2 ((LPC_CAN_TypeDef *) LPC_CAN2_BASE )
  1302. #define LPC_MCPWM ((LPC_MCPWM_TypeDef *) LPC_MCPWM_BASE )
  1303. #define LPC_QEI ((LPC_QEI_TypeDef *) LPC_QEI_BASE )
  1304. #define LPC_MCI ((LPC_MCI_TypeDef *) LPC_MCI_BASE )
  1305. #define LPC_GPDMA ((LPC_GPDMA_TypeDef *) LPC_GPDMA_BASE )
  1306. #define LPC_GPDMACH0 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH0_BASE )
  1307. #define LPC_GPDMACH1 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH1_BASE )
  1308. #define LPC_GPDMACH2 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH2_BASE )
  1309. #define LPC_GPDMACH3 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH3_BASE )
  1310. #define LPC_GPDMACH4 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH4_BASE )
  1311. #define LPC_GPDMACH5 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH5_BASE )
  1312. #define LPC_GPDMACH6 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH6_BASE )
  1313. #define LPC_GPDMACH7 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH7_BASE )
  1314. #define LPC_EMAC ((LPC_EMAC_TypeDef *) LPC_EMAC_BASE )
  1315. #define LPC_LCD ((LPC_LCD_TypeDef *) LPC_LCD_BASE )
  1316. #define LPC_USB ((LPC_USB_TypeDef *) LPC_USB_BASE )
  1317. #define LPC_GPIO0 ((LPC_GPIO_TypeDef *) LPC_GPIO0_BASE )
  1318. #define LPC_GPIO1 ((LPC_GPIO_TypeDef *) LPC_GPIO1_BASE )
  1319. #define LPC_GPIO2 ((LPC_GPIO_TypeDef *) LPC_GPIO2_BASE )
  1320. #define LPC_GPIO3 ((LPC_GPIO_TypeDef *) LPC_GPIO3_BASE )
  1321. #define LPC_GPIO4 ((LPC_GPIO_TypeDef *) LPC_GPIO4_BASE )
  1322. #define LPC_GPIO5 ((LPC_GPIO_TypeDef *) LPC_GPIO5_BASE )
  1323. #define LPC_EMC ((LPC_EMC_TypeDef *) LPC_EMC_BASE )
  1324. #define LPC_CRC ((LPC_CRC_TypeDef *) LPC_CRC_BASE )
  1325. #define LPC_EEPROM ((LPC_EEPROM_TypeDef *) LPC_EEPROM_BASE )
  1326. #endif // __LPC177x_8x_H__