LPC2294.h
上传用户:pudewen666
上传日期:2007-06-08
资源大小:75k
文件大小:38k
源码类别:

微处理器开发

开发平台:

Windows_Unix

  1. /****************************************Copyright (c)**************************************************
  2. **                               广州周立功单片机发展有限公司
  3. **                                     研    究    所
  4. **                                        产品一部 
  5. **
  6. **                                 http://www.zlgmcu.com
  7. **
  8. **--------------文件信息--------------------------------------------------------------------------------
  9. **文   件   名: LPC2294.h
  10. **创   建   人: 陈明计
  11. **最后修改日期: 2004年1月15日
  12. **描        述: 定义lpc22xxlpc212xlpc211xlpc210x的特殊寄存器及固件程序
  13. **
  14. **--------------历史版本信息----------------------------------------------------------------------------
  15. ** 创建人: 陈明计
  16. ** 版  本: v1.0
  17. ** 日 期: 2004年1月15日
  18. ** 描 述: 原始版本
  19. **
  20. **--------------当前版本修订------------------------------------------------------------------------------
  21. ** 修改人: 
  22. ** 日 期:
  23. ** 描 述:
  24. **
  25. **------------------------------------------------------------------------------------------------------
  26. ********************************************************************************************************/
  27. /* EXTERNAL MEMORY CONTROLLER (EMC) */
  28. /* 外部总线控制器 */
  29. #define BCFG0           (*((volatile unsigned int *) 0xFFE00000))       /* lpc22xx only */
  30. #define BCFG1           (*((volatile unsigned int *) 0xFFE00004))       /* lpc22xx only */
  31. #define BCFG2           (*((volatile unsigned int *) 0xFFE00008))       /* lpc22xx only */
  32. #define BCFG3           (*((volatile unsigned int *) 0xFFE0000C))       /* lpc22xx only */
  33. /* External Interrupts */
  34. /* 外部中断控制寄存器 */
  35. #define EXTINT          (*((volatile unsigned char *) 0xE01FC140))
  36. #define EXTWAKE         (*((volatile unsigned char *) 0xE01FC144))
  37. #define INTWAKE         (*((volatile unsigned long *) 0xE01FC144))      /* lpc213x only */
  38. #define EXTMODE         (*((volatile unsigned char *) 0xE01FC148))      /* no in lpc210x*/
  39. #define EXTPOLAR        (*((volatile unsigned char *) 0xE01FC14C))      /* no in lpc210x*/
  40. /* SMemory mapping control. */
  41. /* 内存remap控制寄存器 */
  42. #define MEMMAP          (*((volatile unsigned long *) 0xE01FC040))
  43. /* Phase Locked Loop (PLL) */
  44. /* PLL控制寄存器 */
  45. #define PLLCON          (*((volatile unsigned char *) 0xE01FC080))
  46. #define PLLCFG          (*((volatile unsigned char *) 0xE01FC084))
  47. #define PLLSTAT         (*((volatile unsigned short*) 0xE01FC088))
  48. #define PLLFEED         (*((volatile unsigned char *) 0xE01FC08C))
  49. /* Power Control */
  50. /* 功率控制寄存器 */
  51. #define PCON            (*((volatile unsigned char *) 0xE01FC0C0))
  52. #define PCONP           (*((volatile unsigned long *) 0xE01FC0C4))
  53. /* VPB Divider */
  54. /* VLSI外设总线(VPB)分频寄存器 */
  55. #define VPBDIV          (*((volatile unsigned char *) 0xE01FC100))
  56. /* Reset Source Identification Register */ 
  57. /* 复位源识别寄存器 */
  58. #define RSIR            (*((volatile unsigned char *) 0xE01FC180))      /* lpc2130 only */
  59. /* Code Security Protection Register */
  60. /* 代码安全寄存器 */
  61. #define CSPR            (*((volatile unsigned char *) 0xE01FC184))      /* lpc2130 only */
  62. /* Memory Accelerator Module (MAM) */
  63. /* 存储器加速模块 */
  64. #define MAMCR           (*((volatile unsigned char *) 0xE01FC000))
  65. #define MAMTIM          (*((volatile unsigned char *) 0xE01FC004))
  66. /* Vectored Interrupt Controller (VIC) */
  67. /* 向量中断控制器(VIC)的特殊寄存器 */
  68. #define VICIRQStatus    (*((volatile unsigned long *) 0xFFFFF000))
  69. #define VICFIQStatus    (*((volatile unsigned long *) 0xFFFFF004))
  70. #define VICRawIntr      (*((volatile unsigned long *) 0xFFFFF008))
  71. #define VICIntSelect    (*((volatile unsigned long *) 0xFFFFF00C))
  72. #define VICIntEnable    (*((volatile unsigned long *) 0xFFFFF010))
  73. #define VICIntEnClr     (*((volatile unsigned long *) 0xFFFFF014))
  74. #define VICSoftInt      (*((volatile unsigned long *) 0xFFFFF018))
  75. #define VICSoftIntClear (*((volatile unsigned long *) 0xFFFFF01C))
  76. #define VICProtection   (*((volatile unsigned long *) 0xFFFFF020))
  77. #define VICVectAddr     (*((volatile unsigned long *) 0xFFFFF030))
  78. #define VICDefVectAddr  (*((volatile unsigned long *) 0xFFFFF034))
  79. #define VICVectAddr0    (*((volatile unsigned long *) 0xFFFFF100))
  80. #define VICVectAddr1    (*((volatile unsigned long *) 0xFFFFF104))
  81. #define VICVectAddr2    (*((volatile unsigned long *) 0xFFFFF108))
  82. #define VICVectAddr3    (*((volatile unsigned long *) 0xFFFFF10C))
  83. #define VICVectAddr4    (*((volatile unsigned long *) 0xFFFFF110))
  84. #define VICVectAddr5    (*((volatile unsigned long *) 0xFFFFF114))
  85. #define VICVectAddr6    (*((volatile unsigned long *) 0xFFFFF118))
  86. #define VICVectAddr7    (*((volatile unsigned long *) 0xFFFFF11C))
  87. #define VICVectAddr8    (*((volatile unsigned long *) 0xFFFFF120))
  88. #define VICVectAddr9    (*((volatile unsigned long *) 0xFFFFF124))
  89. #define VICVectAddr10   (*((volatile unsigned long *) 0xFFFFF128))
  90. #define VICVectAddr11   (*((volatile unsigned long *) 0xFFFFF12C))
  91. #define VICVectAddr12   (*((volatile unsigned long *) 0xFFFFF130))
  92. #define VICVectAddr13   (*((volatile unsigned long *) 0xFFFFF134))
  93. #define VICVectAddr14   (*((volatile unsigned long *) 0xFFFFF138))
  94. #define VICVectAddr15   (*((volatile unsigned long *) 0xFFFFF13C))
  95. #define VICVectCntl0    (*((volatile unsigned long *) 0xFFFFF200))
  96. #define VICVectCntl1    (*((volatile unsigned long *) 0xFFFFF204))
  97. #define VICVectCntl2    (*((volatile unsigned long *) 0xFFFFF208))
  98. #define VICVectCntl3    (*((volatile unsigned long *) 0xFFFFF20C))
  99. #define VICVectCntl4    (*((volatile unsigned long *) 0xFFFFF210))
  100. #define VICVectCntl5    (*((volatile unsigned long *) 0xFFFFF214))
  101. #define VICVectCntl6    (*((volatile unsigned long *) 0xFFFFF218))
  102. #define VICVectCntl7    (*((volatile unsigned long *) 0xFFFFF21C))
  103. #define VICVectCntl8    (*((volatile unsigned long *) 0xFFFFF220))
  104. #define VICVectCntl9    (*((volatile unsigned long *) 0xFFFFF224))
  105. #define VICVectCntl10   (*((volatile unsigned long *) 0xFFFFF228))
  106. #define VICVectCntl11   (*((volatile unsigned long *) 0xFFFFF22C))
  107. #define VICVectCntl12   (*((volatile unsigned long *) 0xFFFFF230))
  108. #define VICVectCntl13   (*((volatile unsigned long *) 0xFFFFF234))
  109. #define VICVectCntl14   (*((volatile unsigned long *) 0xFFFFF238))
  110. #define VICVectCntl15   (*((volatile unsigned long *) 0xFFFFF23C))
  111. /* Pin Connect Block */
  112. /* 管脚连接模块控制寄存器 */
  113. #define PINSEL0         (*((volatile unsigned long *) 0xE002C000))
  114. #define PINSEL1         (*((volatile unsigned long *) 0xE002C004))
  115. #define PINSEL2         (*((volatile unsigned long *) 0xE002C014))      /* no in lpc210x*/
  116. /* General Purpose Input/Output (GPIO) */
  117. /* 通用并行IO口的特殊寄存器 */
  118. #define IOPIN           (*((volatile unsigned long *) 0xE0028000))      /* lpc210x only */
  119. #define IOSET           (*((volatile unsigned long *) 0xE0028004))      /* lpc210x only */
  120. #define IODIR           (*((volatile unsigned long *) 0xE0028008))      /* lpc210x only */
  121. #define IOCLR           (*((volatile unsigned long *) 0xE002800C))      /* lpc210x only */
  122. #define IO0PIN          (*((volatile unsigned long *) 0xE0028000))      /* no in lpc210x*/
  123. #define IO0SET          (*((volatile unsigned long *) 0xE0028004))      /* no in lpc210x*/
  124. #define IO0DIR          (*((volatile unsigned long *) 0xE0028008))      /* no in lpc210x*/
  125. #define IO0CLR          (*((volatile unsigned long *) 0xE002800C))      /* no in lpc210x*/
  126. #define IO1PIN          (*((volatile unsigned long *) 0xE0028010))      /* no in lpc210x*/
  127. #define IO1SET          (*((volatile unsigned long *) 0xE0028014))      /* no in lpc210x*/
  128. #define IO1DIR          (*((volatile unsigned long *) 0xE0028018))      /* no in lpc210x*/
  129. #define IO1CLR          (*((volatile unsigned long *) 0xE002801C))      /* no in lpc210x*/
  130. #define IO2PIN          (*((volatile unsigned long *) 0xE0028020))      /* lpc22xx only */
  131. #define IO2SET          (*((volatile unsigned long *) 0xE0028024))      /* lpc22xx only */
  132. #define IO2DIR          (*((volatile unsigned long *) 0xE0028028))      /* lpc22xx only */
  133. #define IO2CLR          (*((volatile unsigned long *) 0xE002802C))      /* lpc22xx only */
  134. #define IO3PIN          (*((volatile unsigned long *) 0xE0028030))      /* lpc22xx only */
  135. #define IO3SET          (*((volatile unsigned long *) 0xE0028034))      /* lpc22xx only */
  136. #define IO3DIR          (*((volatile unsigned long *) 0xE0028038))      /* lpc22xx only */
  137. #define IO3CLR          (*((volatile unsigned long *) 0xE002803C))      /* lpc22xx only */
  138. /* Universal Asynchronous Receiver Transmitter 0 (UART0) */
  139. /* 通用异步串行口0(UART0)的特殊寄存器 */
  140. #define U0RBR           (*((volatile unsigned char *) 0xE000C000))
  141. #define U0THR           (*((volatile unsigned char *) 0xE000C000))
  142. #define U0IER           (*((volatile unsigned char *) 0xE000C004))
  143. #define U0IIR           (*((volatile unsigned char *) 0xE000C008))
  144. #define U0FCR           (*((volatile unsigned char *) 0xE000C008))
  145. #define U0LCR           (*((volatile unsigned char *) 0xE000C00C))
  146. #define U0LSR           (*((volatile unsigned char *) 0xE000C014))
  147. #define U0SCR           (*((volatile unsigned char *) 0xE000C01C))
  148. #define U0DLL           (*((volatile unsigned char *) 0xE000C000))
  149. #define U0DLM           (*((volatile unsigned char *) 0xE000C004))
  150. /* Universal Asynchronous Receiver Transmitter 1 (UART1) */
  151. /* 通用异步串行口1(UART1)的特殊寄存器 */
  152. #define U1RBR           (*((volatile unsigned char *) 0xE0010000))
  153. #define U1THR           (*((volatile unsigned char *) 0xE0010000))
  154. #define U1IER           (*((volatile unsigned char *) 0xE0010004))
  155. #define U1IIR           (*((volatile unsigned char *) 0xE0010008))
  156. #define U1FCR           (*((volatile unsigned char *) 0xE0010008))
  157. #define U1LCR           (*((volatile unsigned char *) 0xE001000C))
  158. #define U1MCR           (*((volatile unsigned char *) 0xE0010010))
  159. #define U1LSR           (*((volatile unsigned char *) 0xE0010014))
  160. #define U1MSR           (*((volatile unsigned char *) 0xE0010018))
  161. #define U1SCR           (*((volatile unsigned char *) 0xE001001C))
  162. #define U1DLL           (*((volatile unsigned char *) 0xE0010000))
  163. #define U1DLM           (*((volatile unsigned char *) 0xE0010004))
  164. /* I2C (8/16 bit data bus) */
  165. /* 芯片间总线(I2C)的特殊寄存器 */
  166. #define I2CONSET        (*((volatile unsigned long *) 0xE001C000))
  167. #define I2STAT          (*((volatile unsigned long *) 0xE001C004))
  168. #define I2DAT           (*((volatile unsigned long *) 0xE001C008))
  169. #define I2ADR           (*((volatile unsigned long *) 0xE001C00C))
  170. #define I2SCLH          (*((volatile unsigned long *) 0xE001C010))
  171. #define I2SCLL          (*((volatile unsigned long *) 0xE001C014))
  172. #define I2CONCLR        (*((volatile unsigned long *) 0xE001C018))
  173. /* I2C0 (8/16 bit data bus) */
  174. /* 芯片间总线(I2C0)的特殊寄存器 */
  175. #define I2C0CONSET      (*((volatile unsigned long *) 0xE001C000))
  176. #define I2C0STAT        (*((volatile unsigned long *) 0xE001C004))
  177. #define I2C0DAT         (*((volatile unsigned long *) 0xE001C008))
  178. #define I2C0ADR         (*((volatile unsigned long *) 0xE001C00C))
  179. #define I2C0SCLH        (*((volatile unsigned long *) 0xE001C010))
  180. #define I2C0SCLL        (*((volatile unsigned long *) 0xE001C014))
  181. #define I2C0CONCLR      (*((volatile unsigned long *) 0xE001C018))
  182. /* I2C1 (8/16 bit data bus) */
  183. /* 芯片间总线(I2C1)的特殊寄存器 */
  184. #define I2C1CONSET      (*((volatile unsigned long *) 0xE005C000))      /* lpc213x only */
  185. #define I2C1STAT        (*((volatile unsigned long *) 0xE005C004))      /* lpc213x only */
  186. #define I2C1DAT         (*((volatile unsigned long *) 0xE005C008))      /* lpc213x only */
  187. #define I2C1ADR         (*((volatile unsigned long *) 0xE005C00C))      /* lpc213x only */
  188. #define I2C1SCLH        (*((volatile unsigned long *) 0xE005C010))      /* lpc213x only */
  189. #define I2C1SCLL        (*((volatile unsigned long *) 0xE005C014))      /* lpc213x only */
  190. #define I2C1CONCLR      (*((volatile unsigned long *) 0xE005C018))      /* lpc213x only */
  191. /* SPI (Serial Peripheral Interface) */
  192. /* SPI总线接口的特殊寄存器 */
  193. /* only for lpc210x*/
  194. #define SPI_SPCR        (*((volatile unsigned char *) 0xE0020000))
  195. #define SPI_SPSR        (*((volatile unsigned char *) 0xE0020004))
  196. #define SPI_SPDR        (*((volatile unsigned char *) 0xE0020008))
  197. #define SPI_SPCCR       (*((volatile unsigned char *) 0xE002000C))
  198. #define SPI_SPINT       (*((volatile unsigned char *) 0xE002001C))
  199. /* for lpc211x/212x/22xx */
  200. #define S0PCR           (*((volatile unsigned char *) 0xE0020000))      /* no in lpc210x*/
  201. #define S0PSR           (*((volatile unsigned char *) 0xE0020004))      /* no in lpc210x*/
  202. #define S0PDR           (*((volatile unsigned char *) 0xE0020008))      /* no in lpc210x*/
  203. #define S0PCCR          (*((volatile unsigned char *) 0xE002000C))      /* no in lpc210x*/
  204. #define S0PINT          (*((volatile unsigned char *) 0xE002001C))      /* no in lpc210x*/
  205. #define S1PCR           (*((volatile unsigned char *) 0xE0030000))      /* no in lpc210x*/
  206. #define S1PSR           (*((volatile unsigned char *) 0xE0030004))      /* no in lpc210x*/
  207. #define S1PDR           (*((volatile unsigned char *) 0xE0030008))      /* no in lpc210x*/
  208. #define S1PCCR          (*((volatile unsigned char *) 0xE003000C))      /* no in lpc210x*/
  209. #define S1PINT          (*((volatile unsigned char *) 0xE003001C))      /* no in lpc210x*/
  210. /* for lpc213x */
  211. #define SPCR            (*((volatile unsigned char *) 0xE0020000))      
  212. #define SPSR            (*((volatile unsigned char *) 0xE0020004))      
  213. #define SPDR            (*((volatile unsigned char *) 0xE0020008))     
  214. #define SPCCR           (*((volatile unsigned char *) 0xE002000C))     
  215. #define SPINT           (*((volatile unsigned char *) 0xE002001C))    
  216.  
  217. #define SSPCR0          (*((volatile unsigned long *) 0xE0068000))      /* lpc21322138 only */
  218. #define SSPCR1          (*((volatile unsigned long *) 0xE0068004))      /* lpc21322138 only */
  219. #define SSPDR           (*((volatile unsigned long *) 0xE0068008))      /* lpc21322138 only */
  220. #define SSPSR           (*((volatile unsigned long *) 0xE006800C))      /* lpc21322138 only */
  221. #define SSPCPSR         (*((volatile unsigned long *) 0xE0068010))      /* lpc21322138 only */
  222. #define SSPIMSC         (*((volatile unsigned long *) 0xE0068014))      /* lpc21322138 only */
  223. #define SSPRIS          (*((volatile unsigned long *) 0xE0068018))      /* lpc21322138 only */
  224. #define SSPMIS          (*((volatile unsigned long *) 0xE006801C))      /* lpc21322138 only */
  225. #define SSPICR          (*((volatile unsigned long *) 0xE0068020))      /* lpc21322138 only */
  226. /* CAN CONTROLLERS AND ACCEPTANCE FILTER */
  227. /* CAN控制器和接收路波器 */
  228. #define CAN1MOD         (*((volatile unsigned char *) 0xE0044000))      /* lpc2119lpc2129lpc2292lpc2294 only */
  229. #define CAN1CMR         (*((volatile unsigned char *) 0xE0044004))      /* lpc2119lpc2129lpc2292lpc2294 only */
  230. #define CAN1GSR         (*((volatile unsigned char *) 0xE0044008))      /* lpc2119lpc2129lpc2292lpc2294 only */
  231. #define CAN1ICR         (*((volatile unsigned char *) 0xE004400C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  232. #define CAN1IER         (*((volatile unsigned char *) 0xE0044010))      /* lpc2119lpc2129lpc2292lpc2294 only */
  233. #define CAN1BTR         (*((volatile unsigned char *) 0xE0044014))      /* lpc2119lpc2129lpc2292lpc2294 only */
  234. #define CAN1EWL         (*((volatile unsigned char *) 0xE004401C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  235. #define CAN1SR          (*((volatile unsigned char *) 0xE0044020))      /* lpc2119lpc2129lpc2292lpc2294 only */
  236. #define CAN1RFS         (*((volatile unsigned char *) 0xE0044024))      /* lpc2119lpc2129lpc2292lpc2294 only */
  237. #define CAN1RDA         (*((volatile unsigned char *) 0xE0044028))      /* lpc2119lpc2129lpc2292lpc2294 only */
  238. #define CAN1RDB         (*((volatile unsigned char *) 0xE004402C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  239. #define CAN1TFI1        (*((volatile unsigned char *) 0xE0044030))      /* lpc2119lpc2129lpc2292lpc2294 only */
  240. #define CAN1TID1        (*((volatile unsigned char *) 0xE0044034))      /* lpc2119lpc2129lpc2292lpc2294 only */
  241. #define CAN1TDA1        (*((volatile unsigned char *) 0xE0044038))      /* lpc2119lpc2129lpc2292lpc2294 only */
  242. #define CAN1TDB1        (*((volatile unsigned char *) 0xE004403C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  243. #define CAN1TFI2        (*((volatile unsigned char *) 0xE0044040))      /* lpc2119lpc2129lpc2292lpc2294 only */
  244. #define CAN1TID2        (*((volatile unsigned char *) 0xE0044044))      /* lpc2119lpc2129lpc2292lpc2294 only */
  245. #define CAN1TDA2        (*((volatile unsigned char *) 0xE0044048))      /* lpc2119lpc2129lpc2292lpc2294 only */
  246. #define CAN1TDB2        (*((volatile unsigned char *) 0xE004404C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  247. #define CAN1TFI3        (*((volatile unsigned char *) 0xE0044050))      /* lpc2119lpc2129lpc2292lpc2294 only */
  248. #define CAN1TID3        (*((volatile unsigned char *) 0xE0044054))      /* lpc2119lpc2129lpc2292lpc2294 only */
  249. #define CAN1TDA3        (*((volatile unsigned char *) 0xE0044058))      /* lpc2119lpc2129lpc2292lpc2294 only */
  250. #define CAN1TDB3        (*((volatile unsigned char *) 0xE004405C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  251. #define CAN2MOD         (*((volatile unsigned char *) 0xE0048000))      /* lpc2119lpc2129lpc2292lpc2294 only */
  252. #define CAN2CMR         (*((volatile unsigned char *) 0xE0048004))      /* lpc2119lpc2129lpc2292lpc2294 only */
  253. #define CAN2GSR         (*((volatile unsigned char *) 0xE0048008))      /* lpc2119lpc2129lpc2292lpc2294 only */
  254. #define CAN2ICR         (*((volatile unsigned char *) 0xE004800C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  255. #define CAN2IER         (*((volatile unsigned char *) 0xE0048010))      /* lpc2119lpc2129lpc2292lpc2294 only */
  256. #define CAN2BTR         (*((volatile unsigned char *) 0xE0048014))      /* lpc2119lpc2129lpc2292lpc2294 only */
  257. #define CAN2EWL         (*((volatile unsigned char *) 0xE004801C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  258. #define CAN2SR          (*((volatile unsigned char *) 0xE0048020))      /* lpc2119lpc2129lpc2292lpc2294 only */
  259. #define CAN2RFS         (*((volatile unsigned char *) 0xE0048024))      /* lpc2119lpc2129lpc2292lpc2294 only */
  260. #define CAN2RDA         (*((volatile unsigned char *) 0xE0048028))      /* lpc2119lpc2129lpc2292lpc2294 only */
  261. #define CAN2RDB         (*((volatile unsigned char *) 0xE004802C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  262. #define CAN2TFI1        (*((volatile unsigned char *) 0xE0048030))      /* lpc2119lpc2129lpc2292lpc2294 only */
  263. #define CAN2TID1        (*((volatile unsigned char *) 0xE0048034))      /* lpc2119lpc2129lpc2292lpc2294 only */
  264. #define CAN2TDA1        (*((volatile unsigned char *) 0xE0048038))      /* lpc2119lpc2129lpc2292lpc2294 only */
  265. #define CAN2TDB1        (*((volatile unsigned char *) 0xE004803C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  266. #define CAN2TFI2        (*((volatile unsigned char *) 0xE0048040))      /* lpc2119lpc2129lpc2292lpc2294 only */
  267. #define CAN2TID2        (*((volatile unsigned char *) 0xE0048044))      /* lpc2119lpc2129lpc2292lpc2294 only */
  268. #define CAN2TDA2        (*((volatile unsigned char *) 0xE0048048))      /* lpc2119lpc2129lpc2292lpc2294 only */
  269. #define CAN2TDB2        (*((volatile unsigned char *) 0xE004804C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  270. #define CAN2TFI3        (*((volatile unsigned char *) 0xE0048050))      /* lpc2119lpc2129lpc2292lpc2294 only */
  271. #define CAN2TID3        (*((volatile unsigned char *) 0xE0048054))      /* lpc2119lpc2129lpc2292lpc2294 only */
  272. #define CAN2TDA3        (*((volatile unsigned char *) 0xE0048058))      /* lpc2119lpc2129lpc2292lpc2294 only */
  273. #define CAN2TDB3        (*((volatile unsigned char *) 0xE004805C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  274. #define CAN3MOD         (*((volatile unsigned char *) 0xE004C000))      /* lpc2119lpc2129lpc2292lpc2294 only */
  275. #define CAN3CMR         (*((volatile unsigned char *) 0xE004C004))      /* lpc2119lpc2129lpc2292lpc2294 only */
  276. #define CAN3GSR         (*((volatile unsigned char *) 0xE004C008))      /* lpc2119lpc2129lpc2292lpc2294 only */
  277. #define CAN3ICR         (*((volatile unsigned char *) 0xE004C00C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  278. #define CAN3IER         (*((volatile unsigned char *) 0xE004C010))      /* lpc2119lpc2129lpc2292lpc2294 only */
  279. #define CAN3BTR         (*((volatile unsigned char *) 0xE004C014))      /* lpc2119lpc2129lpc2292lpc2294 only */
  280. #define CAN3EWL         (*((volatile unsigned char *) 0xE004C01C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  281. #define CAN3SR          (*((volatile unsigned char *) 0xE004C020))      /* lpc2119lpc2129lpc2292lpc2294 only */
  282. #define CAN3RFS         (*((volatile unsigned char *) 0xE004C024))      /* lpc2119lpc2129lpc2292lpc2294 only */
  283. #define CAN3RDA         (*((volatile unsigned char *) 0xE004C028))      /* lpc2119lpc2129lpc2292lpc2294 only */
  284. #define CAN3RDB         (*((volatile unsigned char *) 0xE004C02C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  285. #define CAN3TFI1        (*((volatile unsigned char *) 0xE004C030))      /* lpc2119lpc2129lpc2292lpc2294 only */
  286. #define CAN3TID1        (*((volatile unsigned char *) 0xE004C034))      /* lpc2119lpc2129lpc2292lpc2294 only */
  287. #define CAN3TDA1        (*((volatile unsigned char *) 0xE004C038))      /* lpc2119lpc2129lpc2292lpc2294 only */
  288. #define CAN3TDB1        (*((volatile unsigned char *) 0xE004C03C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  289. #define CAN3TFI2        (*((volatile unsigned char *) 0xE004C040))      /* lpc2119lpc2129lpc2292lpc2294 only */
  290. #define CAN3TID2        (*((volatile unsigned char *) 0xE004C044))      /* lpc2119lpc2129lpc2292lpc2294 only */
  291. #define CAN3TDA2        (*((volatile unsigned char *) 0xE004C048))      /* lpc2119lpc2129lpc2292lpc2294 only */
  292. #define CAN3TDB2        (*((volatile unsigned char *) 0xE004C04C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  293. #define CAN3TFI3        (*((volatile unsigned char *) 0xE004C050))      /* lpc2119lpc2129lpc2292lpc2294 only */
  294. #define CAN3TID3        (*((volatile unsigned char *) 0xE004C054))      /* lpc2119lpc2129lpc2292lpc2294 only */
  295. #define CAN3TDA3        (*((volatile unsigned char *) 0xE004C058))      /* lpc2119lpc2129lpc2292lpc2294 only */
  296. #define CAN3TDB3        (*((volatile unsigned char *) 0xE004C05C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  297. #define CAN4MOD         (*((volatile unsigned char *) 0xE0050000))      /* lpc2119lpc2129lpc2292lpc2294 only */
  298. #define CAN4CMR         (*((volatile unsigned char *) 0xE0050004))      /* lpc2119lpc2129lpc2292lpc2294 only */
  299. #define CAN4GSR         (*((volatile unsigned char *) 0xE0050008))      /* lpc2119lpc2129lpc2292lpc2294 only */
  300. #define CAN4ICR         (*((volatile unsigned char *) 0xE005000C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  301. #define CAN4IER         (*((volatile unsigned char *) 0xE0050010))      /* lpc2119lpc2129lpc2292lpc2294 only */
  302. #define CAN4BTR         (*((volatile unsigned char *) 0xE0050014))      /* lpc2119lpc2129lpc2292lpc2294 only */
  303. #define CAN4EWL         (*((volatile unsigned char *) 0xE005001C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  304. #define CAN4SR          (*((volatile unsigned char *) 0xE0050020))      /* lpc2119lpc2129lpc2292lpc2294 only */
  305. #define CAN4RFS         (*((volatile unsigned char *) 0xE0050024))      /* lpc2119lpc2129lpc2292lpc2294 only */
  306. #define CAN4RDA         (*((volatile unsigned char *) 0xE0050028))      /* lpc2119lpc2129lpc2292lpc2294 only */
  307. #define CAN4RDB         (*((volatile unsigned char *) 0xE005002C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  308. #define CAN4TFI1        (*((volatile unsigned char *) 0xE0050030))      /* lpc2119lpc2129lpc2292lpc2294 only */
  309. #define CAN4TID1        (*((volatile unsigned char *) 0xE0050034))      /* lpc2119lpc2129lpc2292lpc2294 only */
  310. #define CAN4TDA1        (*((volatile unsigned char *) 0xE0050038))      /* lpc2119lpc2129lpc2292lpc2294 only */
  311. #define CAN4TDB1        (*((volatile unsigned char *) 0xE005003C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  312. #define CAN4TFI2        (*((volatile unsigned char *) 0xE0050040))      /* lpc2119lpc2129lpc2292lpc2294 only */
  313. #define CAN4TID2        (*((volatile unsigned char *) 0xE0050044))      /* lpc2119lpc2129lpc2292lpc2294 only */
  314. #define CAN4TDA2        (*((volatile unsigned char *) 0xE0050048))      /* lpc2119lpc2129lpc2292lpc2294 only */
  315. #define CAN4TDB2        (*((volatile unsigned char *) 0xE005004C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  316. #define CAN4TFI3        (*((volatile unsigned char *) 0xE0050050))      /* lpc2119lpc2129lpc2292lpc2294 only */
  317. #define CAN4TID3        (*((volatile unsigned char *) 0xE0050054))      /* lpc2119lpc2129lpc2292lpc2294 only */
  318. #define CAN4TDA3        (*((volatile unsigned char *) 0xE0050058))      /* lpc2119lpc2129lpc2292lpc2294 only */
  319. #define CAN4TDB3        (*((volatile unsigned char *) 0xE005005C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  320. #define CAN5MOD         (*((volatile unsigned char *) 0xE0054000))      /* lpc2119lpc2129lpc2292lpc2294 only */
  321. #define CAN5CMR         (*((volatile unsigned char *) 0xE0054004))      /* lpc2119lpc2129lpc2292lpc2294 only */
  322. #define CAN5GSR         (*((volatile unsigned char *) 0xE0054008))      /* lpc2119lpc2129lpc2292lpc2294 only */
  323. #define CAN5ICR         (*((volatile unsigned char *) 0xE005400C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  324. #define CAN5IER         (*((volatile unsigned char *) 0xE0054010))      /* lpc2119lpc2129lpc2292lpc2294 only */
  325. #define CAN5BTR         (*((volatile unsigned char *) 0xE0054014))      /* lpc2119lpc2129lpc2292lpc2294 only */
  326. #define CAN5EWL         (*((volatile unsigned char *) 0xE005401C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  327. #define CAN5SR          (*((volatile unsigned char *) 0xE0054020))      /* lpc2119lpc2129lpc2292lpc2294 only */
  328. #define CAN5RFS         (*((volatile unsigned char *) 0xE0054024))      /* lpc2119lpc2129lpc2292lpc2294 only */
  329. #define CAN5RDA         (*((volatile unsigned char *) 0xE0054028))      /* lpc2119lpc2129lpc2292lpc2294 only */
  330. #define CAN5RDB         (*((volatile unsigned char *) 0xE005402C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  331. #define CAN5TFI1        (*((volatile unsigned char *) 0xE0054030))      /* lpc2119lpc2129lpc2292lpc2294 only */
  332. #define CAN5TID1        (*((volatile unsigned char *) 0xE0054034))      /* lpc2119lpc2129lpc2292lpc2294 only */
  333. #define CAN5TDA1        (*((volatile unsigned char *) 0xE0054038))      /* lpc2119lpc2129lpc2292lpc2294 only */
  334. #define CAN5TDB1        (*((volatile unsigned char *) 0xE005403C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  335. #define CAN5TFI2        (*((volatile unsigned char *) 0xE0054040))      /* lpc2119lpc2129lpc2292lpc2294 only */
  336. #define CAN5TID2        (*((volatile unsigned char *) 0xE0054044))      /* lpc2119lpc2129lpc2292lpc2294 only */
  337. #define CAN5TDA2        (*((volatile unsigned char *) 0xE0054048))      /* lpc2119lpc2129lpc2292lpc2294 only */
  338. #define CAN5TDB2        (*((volatile unsigned char *) 0xE005404C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  339. #define CAN5TFI3        (*((volatile unsigned char *) 0xE0054050))      /* lpc2119lpc2129lpc2292lpc2294 only */
  340. #define CAN5TID3        (*((volatile unsigned char *) 0xE0054054))      /* lpc2119lpc2129lpc2292lpc2294 only */
  341. #define CAN5TDA3        (*((volatile unsigned char *) 0xE0054058))      /* lpc2119lpc2129lpc2292lpc2294 only */
  342. #define CAN5TDB3        (*((volatile unsigned char *) 0xE005405C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  343. #define CAN6MOD         (*((volatile unsigned char *) 0xE0058000))      /* lpc2292lpc2294 only */
  344. #define CAN6CMR         (*((volatile unsigned char *) 0xE0058004))      /* lpc2292lpc2294 only */
  345. #define CAN6GSR         (*((volatile unsigned char *) 0xE0058008))      /* lpc2292lpc2294 only */
  346. #define CAN6ICR         (*((volatile unsigned char *) 0xE005800C))      /* lpc2292lpc2294 only */
  347. #define CAN6IER         (*((volatile unsigned char *) 0xE0058010))      /* lpc2292lpc2294 only */
  348. #define CAN6BTR         (*((volatile unsigned char *) 0xE0058014))      /* lpc2292lpc2294 only */
  349. #define CAN6EWL         (*((volatile unsigned char *) 0xE005801C))      /* lpc2292lpc2294 only */
  350. #define CAN6SR          (*((volatile unsigned char *) 0xE0058020))      /* lpc2292lpc2294 only */
  351. #define CAN6RFS         (*((volatile unsigned char *) 0xE0058024))      /* lpc2292lpc2294 only */
  352. #define CAN6RDA         (*((volatile unsigned char *) 0xE0058028))      /* lpc2292lpc2294 only */
  353. #define CAN6RDB         (*((volatile unsigned char *) 0xE005802C))      /* lpc2292lpc2294 only */
  354. #define CAN6TFI1        (*((volatile unsigned char *) 0xE0058030))      /* lpc2292lpc2294 only */
  355. #define CAN6TID1        (*((volatile unsigned char *) 0xE0058034))      /* lpc2292lpc2294 only */
  356. #define CAN6TDA1        (*((volatile unsigned char *) 0xE0058038))      /* lpc2292lpc2294 only */
  357. #define CAN6TDB1        (*((volatile unsigned char *) 0xE005803C))      /* lpc2292lpc2294 only */
  358. #define CAN6TFI2        (*((volatile unsigned char *) 0xE0058040))      /* lpc2292lpc2294 only */
  359. #define CAN6TID2        (*((volatile unsigned char *) 0xE0058044))      /* lpc2292lpc2294 only */
  360. #define CAN6TDA2        (*((volatile unsigned char *) 0xE0058048))      /* lpc2292lpc2294 only */
  361. #define CAN6TDB2        (*((volatile unsigned char *) 0xE005804C))      /* lpc2292lpc2294 only */
  362. #define CAN6TFI3        (*((volatile unsigned char *) 0xE0058050))      /* lpc2292lpc2294 only */
  363. #define CAN6TID3        (*((volatile unsigned char *) 0xE0058054))      /* lpc2292lpc2294 only */
  364. #define CAN6TDA3        (*((volatile unsigned char *) 0xE0058058))      /* lpc2292lpc2294 only */
  365. #define CAN6TDB3        (*((volatile unsigned char *) 0xE005805C))      /* lpc2292lpc2294 only */
  366. #define CANTxSR         (*((volatile unsigned char *) 0xE0040000))      /* lpc2119lpc2129lpc2292lpc2294 only */
  367. #define CANRxSR         (*((volatile unsigned char *) 0xE0040004))      /* lpc2119lpc2129lpc2292lpc2294 only */
  368. #define CANMSR          (*((volatile unsigned char *) 0xE0040008))      /* lpc2119lpc2129lpc2292lpc2294 only */
  369. #define CANAFMR         (*((volatile unsigned char *) 0xE003C000))      /* lpc2119lpc2129lpc2292lpc2294 only */
  370. #define CANSFF_sa       (*((volatile unsigned char *) 0xE003C004))      /* lpc2119lpc2129lpc2292lpc2294 only */
  371. #define CANSFF_GRP_sa   (*((volatile unsigned char *) 0xE003C008))      /* lpc2119lpc2129lpc2292lpc2294 only */
  372. #define CANEFF_sa       (*((volatile unsigned char *) 0xE003C00C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  373. #define CANEFF_GRP_sa   (*((volatile unsigned char *) 0xE003C010))      /* lpc2119lpc2129lpc2292lpc2294 only */
  374. #define CANENDofTable   (*((volatile unsigned char *) 0xE003C014))      /* lpc2119lpc2129lpc2292lpc2294 only */
  375. #define CANLUTerrAd     (*((volatile unsigned char *) 0xE003C018))      /* lpc2119lpc2129lpc2292lpc2294 only */
  376. #define CANLUTerr       (*((volatile unsigned char *) 0xE003C01C))      /* lpc2119lpc2129lpc2292lpc2294 only */
  377. /* Timer 0 */
  378. /* 定时器0的特殊寄存器 */
  379. #define T0IR            (*((volatile unsigned long *) 0xE0004000))
  380. #define T0TCR           (*((volatile unsigned long *) 0xE0004004))
  381. #define T0TC            (*((volatile unsigned long *) 0xE0004008))
  382. #define T0PR            (*((volatile unsigned long *) 0xE000400C))
  383. #define T0PC            (*((volatile unsigned long *) 0xE0004010))
  384. #define T0MCR           (*((volatile unsigned long *) 0xE0004014))
  385. #define T0MR0           (*((volatile unsigned long *) 0xE0004018))
  386. #define T0MR1           (*((volatile unsigned long *) 0xE000401C))
  387. #define T0MR2           (*((volatile unsigned long *) 0xE0004020))
  388. #define T0MR3           (*((volatile unsigned long *) 0xE0004024))
  389. #define T0CCR           (*((volatile unsigned long *) 0xE0004028))
  390. #define T0CR0           (*((volatile unsigned long *) 0xE000402C))
  391. #define T0CR1           (*((volatile unsigned long *) 0xE0004030))
  392. #define T0CR2           (*((volatile unsigned long *) 0xE0004034))
  393. #define T0CR3           (*((volatile unsigned long *) 0xE0004038))
  394. #define T0EMR           (*((volatile unsigned long *) 0xE000403C))
  395. // 为LPC213x增加定时器0计数控制器  2005-02-22
  396. #define T0CTCR          (*((volatile unsigned long *) 0xE0004070))
  397. /* Timer 1 */
  398. /* 定时器1的特殊寄存器 */
  399. #define T1IR            (*((volatile unsigned long *) 0xE0008000))
  400. #define T1TCR           (*((volatile unsigned long *) 0xE0008004))
  401. #define T1TC            (*((volatile unsigned long *) 0xE0008008))
  402. #define T1PR            (*((volatile unsigned long *) 0xE000800C))
  403. #define T1PC            (*((volatile unsigned long *) 0xE0008010))
  404. #define T1MCR           (*((volatile unsigned long *) 0xE0008014))
  405. #define T1MR0           (*((volatile unsigned long *) 0xE0008018))
  406. #define T1MR1           (*((volatile unsigned long *) 0xE000801C))
  407. #define T1MR2           (*((volatile unsigned long *) 0xE0008020))
  408. #define T1MR3           (*((volatile unsigned long *) 0xE0008024))
  409. #define T1CCR           (*((volatile unsigned long *) 0xE0008028))
  410. #define T1CR0           (*((volatile unsigned long *) 0xE000802C))
  411. #define T1CR1           (*((volatile unsigned long *) 0xE0008030))
  412. #define T1CR2           (*((volatile unsigned long *) 0xE0008034))
  413. #define T1CR3           (*((volatile unsigned long *) 0xE0008038))
  414. #define T1EMR           (*((volatile unsigned long *) 0xE000803C))
  415. // 为LPC213x增加定时器1计数控制器  2005-02-22
  416. #define T1CTCR          (*((volatile unsigned long *) 0xE0008070))
  417. /* Pulse Width Modulator (PWM) */
  418. /* 脉宽调制器的特殊寄存器 */
  419. #define PWMIR           (*((volatile unsigned long *) 0xE0014000))
  420. #define PWMTCR          (*((volatile unsigned long *) 0xE0014004))
  421. #define PWMTC           (*((volatile unsigned long *) 0xE0014008))
  422. #define PWMPR           (*((volatile unsigned long *) 0xE001400C))
  423. #define PWMPC           (*((volatile unsigned long *) 0xE0014010))
  424. #define PWMMCR          (*((volatile unsigned long *) 0xE0014014))
  425. #define PWMMR0          (*((volatile unsigned long *) 0xE0014018))
  426. #define PWMMR1          (*((volatile unsigned long *) 0xE001401C))
  427. #define PWMMR2          (*((volatile unsigned long *) 0xE0014020))
  428. #define PWMMR3          (*((volatile unsigned long *) 0xE0014024))
  429. #define PWMMR4          (*((volatile unsigned long *) 0xE0014040))
  430. #define PWMMR5          (*((volatile unsigned long *) 0xE0014044))
  431. #define PWMMR6          (*((volatile unsigned long *) 0xE0014048))
  432. #define PWMPCR          (*((volatile unsigned long *) 0xE001404C))
  433. #define PWMLER          (*((volatile unsigned long *) 0xE0014050))
  434. /* A/D CONVERTER */
  435. /* A/D转换器 */
  436. #define ADCR            (*((volatile unsigned long *) 0xE0034000))      /* no in lpc210x*/
  437. #define ADDR            (*((volatile unsigned long *) 0xE0034004))      /* no in lpc210x*/
  438. /* for lpc2138 */
  439. #define AD0CR           (*((volatile unsigned long *) 0xE0034000))      
  440. #define AD0DR           (*((volatile unsigned long *) 0xE0034004))      
  441. #define ADGSM           (*((volatile unsigned long *) 0xE0034008))      
  442. #define AD1CR           (*((volatile unsigned long *) 0xE0060000))      
  443. #define AD1DR           (*((volatile unsigned long *) 0xE0060004))      
  444. /* D/A CONVERTER */
  445. /* D/A转换器 */
  446. #define DACR            (*((volatile unsigned long *) 0xE006C000))      /* lpc2138 only */
  447. /* Real Time Clock */
  448. /* 实时时钟的特殊寄存器 */
  449. #define ILR             (*((volatile unsigned char *) 0xE0024000))
  450. #define CTC             (*((volatile unsigned short*) 0xE0024004))
  451. #define CCR             (*((volatile unsigned char *) 0xE0024008))
  452. #define CIIR            (*((volatile unsigned char *) 0xE002400C))
  453. #define AMR             (*((volatile unsigned char *) 0xE0024010))
  454. #define CTIME0          (*((volatile unsigned long *) 0xE0024014))
  455. #define CTIME1          (*((volatile unsigned long *) 0xE0024018))
  456. #define CTIME2          (*((volatile unsigned long *) 0xE002401C))
  457. #define SEC             (*((volatile unsigned char *) 0xE0024020))
  458. #define MIN             (*((volatile unsigned char *) 0xE0024024))
  459. #define HOUR            (*((volatile unsigned char *) 0xE0024028))
  460. #define DOM             (*((volatile unsigned char *) 0xE002402C))
  461. #define DOW             (*((volatile unsigned char *) 0xE0024030))
  462. #define DOY             (*((volatile unsigned short*) 0xE0024034))
  463. #define MONTH           (*((volatile unsigned char *) 0xE0024038))
  464. #define YEAR            (*((volatile unsigned short*) 0xE002403C))
  465. #define ALSEC           (*((volatile unsigned char *) 0xE0024060))
  466. #define ALMIN           (*((volatile unsigned char *) 0xE0024064))
  467. #define ALHOUR          (*((volatile unsigned char *) 0xE0024068))
  468. #define ALDOM           (*((volatile unsigned char *) 0xE002406C))
  469. #define ALDOW           (*((volatile unsigned char *) 0xE0024070))
  470. #define ALDOY           (*((volatile unsigned short*) 0xE0024074))
  471. #define ALMON           (*((volatile unsigned char *) 0xE0024078))
  472. #define ALYEAR          (*((volatile unsigned short*) 0xE002407C))
  473. #define PREINT          (*((volatile unsigned short*) 0xE0024080))
  474. #define PREFRAC         (*((volatile unsigned short*) 0xE0024084))
  475. /* Watchdog */
  476. /* 看门狗的特殊寄存器 */
  477. #define WDMOD           (*((volatile unsigned char *) 0xE0000000))
  478. #define WDTC            (*((volatile unsigned long *) 0xE0000004))
  479. #define WDFEED          (*((volatile unsigned char *) 0xE0000008))
  480. #define WDTV            (*((volatile unsigned long *) 0xE000000C))
  481. /* Define firmware Functions */
  482. /* 定义固件函数 */
  483. #define rm_init_entry()             ((void (*)())(0x7fffff91))()
  484. #define rm_undef_handler()          ((void (*)())(0x7fffffa0))()
  485. #define rm_prefetchabort_handler()  ((void (*)())(0x7fffffb0))()
  486. #define rm_dataabort_handler()      ((void (*)())(0x7fffffc0))()
  487. #define rm_irqhandler()             ((void (*)())(0x7fffffd0))()
  488. #define rm_irqhandler2()            ((void (*)())(0x7fffffe0))()
  489. #define iap_entry(a, b)             ((void (*)())(0x7ffffff1))(a, b)
  490. /*********************************************************************************************************
  491. **                            End Of File
  492. ********************************************************************************************************/