LPC2106.h
上传用户:yyhongfa
上传日期:2013-01-18
资源大小:267k
文件大小:15k
开发平台:

C/C++

  1. /****************************************Copyright (c)**************************************************
  2. **                               广州周立功单片机发展有限公司
  3. **                                     研    究    所
  4. **                                        产品一部 
  5. **
  6. **                                 http://www.zlgmcu.com
  7. **
  8. **--------------文件信息--------------------------------------------------------------------------------
  9. **文   件   名: LPC2106.h
  10. **创   建   人: 陈明计
  11. **最后修改日期: 2003年7月23日
  12. **描        述: 定义lpc2104/lpc2105/lpc2106的特殊寄存器及固件程序
  13. **
  14. **--------------历史版本信息----------------------------------------------------------------------------
  15. ** 创建人: 陈明计
  16. ** 版  本: v1.0
  17. ** 日 期: 2003年7月1日
  18. ** 描 述: 原始版本
  19. **
  20. **-------------------------------------------------------------------------------------------------
  21. ** 创建人: 陈明计
  22. ** 版  本: v1.1
  23. ** 日 期: 2003年7月7日
  24. ** 描 述: 改变I2c的定义
  25. **
  26. **-------------------------------------------------------------------------------------------------
  27. ** 创建人: 陈明计
  28. ** 版  本: v1.2
  29. ** 日 期: 2003年7月19日
  30. ** 描 述: 增加存储器加速模块的特殊寄存器
  31. **
  32. **-------------------------------------------------------------------------------------------------
  33. ** 创建人: 陈明计
  34. ** 版  本: v1.3
  35. ** 日 期: 2003年7月23日
  36. ** 描 述: 根据正式文档更改寄存器名,增加固件函数入口
  37. **
  38. **--------------当前版本修订------------------------------------------------------------------------------
  39. ** 修改人: 
  40. ** 日 期:
  41. ** 描 述:
  42. **
  43. **------------------------------------------------------------------------------------------------------
  44. ********************************************************************************************************/
  45. /* external Interrupts */
  46. /* 外部中断控制寄存器 */
  47. #define EXTINT          (*((volatile unsigned char *) 0xE01FC140))
  48. #define EXTWAKE         (*((volatile unsigned char *) 0xE01FC144))
  49. /* SMemory mapping control. */
  50. /* 内存remap控制寄存器 */
  51. #define MEMMAP          (*((volatile unsigned long *) 0xE01FC040))
  52. /* Phase Locked Loop (PLL) */
  53. /* PLL控制寄存器 */
  54. #define PLLCON          (*((volatile unsigned char *) 0xE01FC080))
  55. #define PLLCFG          (*((volatile unsigned char *) 0xE01FC084))
  56. #define PLLSTAT         (*((volatile unsigned short*) 0xE01FC088))
  57. #define PLLFEED         (*((volatile unsigned char *) 0xE01FC08C))
  58. /* Power Control */
  59. /* 功率控制寄存器 */
  60. #define PCON            (*((volatile unsigned char *) 0xE01FC0C0))
  61. #define PCONP           (*((volatile unsigned long *) 0xE01FC0C4))
  62. /* VPB Divider */
  63. /* VLSI外设总线(VPB)分频寄存器 */
  64. #define VPBDIV          (*((volatile unsigned char *) 0xE01FC100))
  65. /* Memory Accelerator Module (MAM) */
  66. /* 存储器加速模块 */
  67. #define MAMCR           (*((volatile unsigned char *) 0xE01FC000))
  68. #define MAMTIM          (*((volatile unsigned char *) 0xE01FC004))
  69. /* Vectored Interrupt Controller (VIC) */
  70. /* 向量中断控制器(VIC)的特殊寄存器 */
  71. #define VICIRQStatus    (*((volatile unsigned long *) 0xFFFFF000))
  72. #define VICFIQStatus    (*((volatile unsigned long *) 0xFFFFF004))
  73. #define VICRawIntr      (*((volatile unsigned long *) 0xFFFFF008))
  74. #define VICIntSelect    (*((volatile unsigned long *) 0xFFFFF00C))
  75. #define VICIntEnable    (*((volatile unsigned long *) 0xFFFFF010))
  76. #define VICIntEnClr     (*((volatile unsigned long *) 0xFFFFF014))
  77. #define VICSoftInt      (*((volatile unsigned long *) 0xFFFFF018))
  78. #define VICSoftIntClear (*((volatile unsigned long *) 0xFFFFF01C))
  79. #define VICProtection   (*((volatile unsigned long *) 0xFFFFF020))
  80. #define VICVectAddr     (*((volatile unsigned long *) 0xFFFFF030))
  81. #define VICDefVectAddr  (*((volatile unsigned long *) 0xFFFFF034))
  82. #define VICVectAddr0    (*((volatile unsigned long *) 0xFFFFF100))
  83. #define VICVectAddr1    (*((volatile unsigned long *) 0xFFFFF104))
  84. #define VICVectAddr2    (*((volatile unsigned long *) 0xFFFFF108))
  85. #define VICVectAddr3    (*((volatile unsigned long *) 0xFFFFF10C))
  86. #define VICVectAddr4    (*((volatile unsigned long *) 0xFFFFF110))
  87. #define VICVectAddr5    (*((volatile unsigned long *) 0xFFFFF114))
  88. #define VICVectAddr6    (*((volatile unsigned long *) 0xFFFFF118))
  89. #define VICVectAddr7    (*((volatile unsigned long *) 0xFFFFF11C))
  90. #define VICVectAddr8    (*((volatile unsigned long *) 0xFFFFF120))
  91. #define VICVectAddr9    (*((volatile unsigned long *) 0xFFFFF124))
  92. #define VICVectAddr10   (*((volatile unsigned long *) 0xFFFFF128))
  93. #define VICVectAddr11   (*((volatile unsigned long *) 0xFFFFF12C))
  94. #define VICVectAddr12   (*((volatile unsigned long *) 0xFFFFF130))
  95. #define VICVectAddr13   (*((volatile unsigned long *) 0xFFFFF134))
  96. #define VICVectAddr14   (*((volatile unsigned long *) 0xFFFFF138))
  97. #define VICVectAddr15   (*((volatile unsigned long *) 0xFFFFF13C))
  98. #define VICVectCntl0    (*((volatile unsigned long *) 0xFFFFF200))
  99. #define VICVectCntl1    (*((volatile unsigned long *) 0xFFFFF204))
  100. #define VICVectCntl2    (*((volatile unsigned long *) 0xFFFFF208))
  101. #define VICVectCntl3    (*((volatile unsigned long *) 0xFFFFF20C))
  102. #define VICVectCntl4    (*((volatile unsigned long *) 0xFFFFF210))
  103. #define VICVectCntl5    (*((volatile unsigned long *) 0xFFFFF214))
  104. #define VICVectCntl6    (*((volatile unsigned long *) 0xFFFFF218))
  105. #define VICVectCntl7    (*((volatile unsigned long *) 0xFFFFF21C))
  106. #define VICVectCntl8    (*((volatile unsigned long *) 0xFFFFF220))
  107. #define VICVectCntl9    (*((volatile unsigned long *) 0xFFFFF224))
  108. #define VICVectCntl10   (*((volatile unsigned long *) 0xFFFFF228))
  109. #define VICVectCntl11   (*((volatile unsigned long *) 0xFFFFF22C))
  110. #define VICVectCntl12   (*((volatile unsigned long *) 0xFFFFF230))
  111. #define VICVectCntl13   (*((volatile unsigned long *) 0xFFFFF234))
  112. #define VICVectCntl14   (*((volatile unsigned long *) 0xFFFFF238))
  113. #define VICVectCntl15   (*((volatile unsigned long *) 0xFFFFF23C))
  114. /* General Purpose Input/Output (GPIO) */
  115. /* 通用并行IO口的特殊寄存器 */
  116. #define IOPIN           (*((volatile unsigned long *) 0xE0028000))
  117. #define IOSET           (*((volatile unsigned long *) 0xE0028004))
  118. #define IODIR           (*((volatile unsigned long *) 0xE0028008))
  119. #define IOCLR           (*((volatile unsigned long *) 0xE002800C))
  120. /* Pin Connect Block */
  121. /* 管脚连接模块控制寄存器 */
  122. #define PINSEL0         (*((volatile unsigned long *) 0xE002C000))
  123. #define PINSEL1         (*((volatile unsigned long *) 0xE002C004))
  124. /* Universal Asynchronous Receiver Transmitter 0 (UART0) */
  125. /* 通用异步串行口0(UART0)的特殊寄存器 */
  126. #define U0RBR           (*((volatile unsigned char *) 0xE000C000))
  127. #define U0THR           (*((volatile unsigned char *) 0xE000C000))
  128. #define U0IER           (*((volatile unsigned char *) 0xE000C004))
  129. #define U0IIR           (*((volatile unsigned char *) 0xE000C008))
  130. #define U0FCR           (*((volatile unsigned char *) 0xE000C008))
  131. #define U0LCR           (*((volatile unsigned char *) 0xE000C00C))
  132. #define U0LSR           (*((volatile unsigned char *) 0xE000C014))
  133. #define U0SCR           (*((volatile unsigned char *) 0xE000C01C))
  134. #define U0DLL           (*((volatile unsigned char *) 0xE000C000))
  135. #define U0DLM           (*((volatile unsigned char *) 0xE000C004))
  136. /* Universal Asynchronous Receiver Transmitter 1 (UART1) */
  137. /* 通用异步串行口1(UART1)的特殊寄存器 */
  138. #define U1RBR           (*((volatile unsigned char *) 0xE0010000))
  139. #define U1THR           (*((volatile unsigned char *) 0xE0010000))
  140. #define U1IER           (*((volatile unsigned char *) 0xE0010004))
  141. #define U1IIR           (*((volatile unsigned char *) 0xE0010008))
  142. #define U1FCR           (*((volatile unsigned char *) 0xE0010008))
  143. #define U1LCR           (*((volatile unsigned char *) 0xE001000C))
  144. #define U1MCR           (*((volatile unsigned char *) 0xE0010010))
  145. #define U1LSR           (*((volatile unsigned char *) 0xE0010014))
  146. #define U1MSR           (*((volatile unsigned char *) 0xE0010018))
  147. #define U1SCR           (*((volatile unsigned char *) 0xE001001C))
  148. #define U1DLL           (*((volatile unsigned char *) 0xE0010000))
  149. #define U1DLM           (*((volatile unsigned char *) 0xE0010004))
  150. /* I2C (8/16 bit data bus) */
  151. /* 芯片间总线(I2C)的特殊寄存器 */
  152. #define I2CONSET        (*((volatile unsigned long *) 0xE001C000))
  153. #define I2STAT          (*((volatile unsigned long *) 0xE001C004))
  154. #define I2DAT           (*((volatile unsigned long *) 0xE001C008))
  155. #define I2ADR           (*((volatile unsigned long *) 0xE001C00C))
  156. #define I2SCLH          (*((volatile unsigned long *) 0xE001C010))
  157. #define I2SCLL          (*((volatile unsigned long *) 0xE001C014))
  158. #define I2CONCLR        (*((volatile unsigned long *) 0xE001C018))
  159. /* SPI (Serial Peripheral Interface) */
  160. /* SPI总线接口的特殊寄存器 */
  161. #define SPI_SPCR        (*((volatile unsigned char *) 0xE0020000))
  162. #define SPI_SPSR        (*((volatile unsigned char *) 0xE0020004))
  163. #define SPI_SPDR        (*((volatile unsigned char *) 0xE0020008))
  164. #define SPI_SPCCR       (*((volatile unsigned char *) 0xE002000C))
  165. #define SPI_SPINT       (*((volatile unsigned char *) 0xE002001C))
  166. /* Timer 0 */
  167. /* 定时器0的特殊寄存器 */
  168. #define T0IR            (*((volatile unsigned long *) 0xE0004000))
  169. #define T0TCR           (*((volatile unsigned long *) 0xE0004004))
  170. #define T0TC            (*((volatile unsigned long *) 0xE0004008))
  171. #define T0PR            (*((volatile unsigned long *) 0xE000400C))
  172. #define T0PC            (*((volatile unsigned long *) 0xE0004010))
  173. #define T0MCR           (*((volatile unsigned long *) 0xE0004014))
  174. #define T0MR0           (*((volatile unsigned long *) 0xE0004018))
  175. #define T0MR1           (*((volatile unsigned long *) 0xE000401C))
  176. #define T0MR2           (*((volatile unsigned long *) 0xE0004020))
  177. #define T0MR3           (*((volatile unsigned long *) 0xE0004024))
  178. #define T0CCR           (*((volatile unsigned long *) 0xE0004028))
  179. #define T0CR0           (*((volatile unsigned long *) 0xE000402C))
  180. #define T0CR1           (*((volatile unsigned long *) 0xE0004030))
  181. #define T0CR2           (*((volatile unsigned long *) 0xE0004034))
  182. #define T0CR3           (*((volatile unsigned long *) 0xE0004038))
  183. #define T0EMR           (*((volatile unsigned long *) 0xE000403C))
  184. /* Timer 1 */
  185. /* 定时器1的特殊寄存器 */
  186. #define T1IR            (*((volatile unsigned long *) 0xE0008000))
  187. #define T1TCR           (*((volatile unsigned long *) 0xE0008004))
  188. #define T1TC            (*((volatile unsigned long *) 0xE0008008))
  189. #define T1PR            (*((volatile unsigned long *) 0xE000800C))
  190. #define T1PC            (*((volatile unsigned long *) 0xE0008010))
  191. #define T1MCR           (*((volatile unsigned long *) 0xE0008014))
  192. #define T1MR0           (*((volatile unsigned long *) 0xE0008018))
  193. #define T1MR1           (*((volatile unsigned long *) 0xE000801C))
  194. #define T1MR2           (*((volatile unsigned long *) 0xE0008020))
  195. #define T1MR3           (*((volatile unsigned long *) 0xE0008024))
  196. #define T1CCR           (*((volatile unsigned long *) 0xE0008028))
  197. #define T1CR0           (*((volatile unsigned long *) 0xE000802C))
  198. #define T1CR1           (*((volatile unsigned long *) 0xE0008030))
  199. #define T1CR2           (*((volatile unsigned long *) 0xE0008034))
  200. #define T1CR3           (*((volatile unsigned long *) 0xE0008038))
  201. #define T1EMR           (*((volatile unsigned long *) 0xE000803C))
  202. /* Pulse Width Modulator (PWM) */
  203. /* 脉宽调制器的特殊寄存器 */
  204. #define PWMIR           (*((volatile unsigned long *) 0xE0014000))
  205. #define PWMTCR          (*((volatile unsigned long *) 0xE0014004))
  206. #define PWMTC           (*((volatile unsigned long *) 0xE0014008))
  207. #define PWMPR           (*((volatile unsigned long *) 0xE001400C))
  208. #define PWMPC           (*((volatile unsigned long *) 0xE0014010))
  209. #define PWMMCR          (*((volatile unsigned long *) 0xE0014014))
  210. #define PWMMR0          (*((volatile unsigned long *) 0xE0014018))
  211. #define PWMMR1          (*((volatile unsigned long *) 0xE001401C))
  212. #define PWMMR2          (*((volatile unsigned long *) 0xE0014020))
  213. #define PWMMR3          (*((volatile unsigned long *) 0xE0014024))
  214. #define PWMMR4          (*((volatile unsigned long *) 0xE0014040))
  215. #define PWMMR5          (*((volatile unsigned long *) 0xE0014044))
  216. #define PWMMR6          (*((volatile unsigned long *) 0xE0014048))
  217. #define PWMPCR          (*((volatile unsigned long *) 0xE001404C))
  218. #define PWMLER          (*((volatile unsigned long *) 0xE0014050))
  219. /* Real Time Clock */
  220. /* 实时时钟的特殊寄存器 */
  221. #define ILR             (*((volatile unsigned char *) 0xE0024000))
  222. #define CTC             (*((volatile unsigned short*) 0xE0024004))
  223. #define CCR             (*((volatile unsigned char *) 0xE0024008))
  224. #define CIIR            (*((volatile unsigned char *) 0xE002400C))
  225. #define AMR             (*((volatile unsigned char *) 0xE0024010))
  226. #define CTIME0          (*((volatile unsigned long *) 0xE0024014))
  227. #define CTIME1          (*((volatile unsigned long *) 0xE0024018))
  228. #define CTIME2          (*((volatile unsigned long *) 0xE002401C))
  229. #define SEC             (*((volatile unsigned char *) 0xE0024020))
  230. #define MIN             (*((volatile unsigned char *) 0xE0024024))
  231. #define HOUR            (*((volatile unsigned char *) 0xE0024028))
  232. #define DOM             (*((volatile unsigned char *) 0xE002402C))
  233. #define DOW             (*((volatile unsigned char *) 0xE0024030))
  234. #define DOY             (*((volatile unsigned short*) 0xE0024034))
  235. #define MONTH           (*((volatile unsigned char *) 0xE0024038))
  236. #define YEAR            (*((volatile unsigned short*) 0xE002403C))
  237. #define ALSEC           (*((volatile unsigned char *) 0xE0024060))
  238. #define ALMIN           (*((volatile unsigned char *) 0xE0024064))
  239. #define ALHOUR          (*((volatile unsigned char *) 0xE0024068))
  240. #define ALDOM           (*((volatile unsigned char *) 0xE002406C))
  241. #define ALDOW           (*((volatile unsigned char *) 0xE0024070))
  242. #define ALDOY           (*((volatile unsigned short*) 0xE0024074))
  243. #define ALMON           (*((volatile unsigned char *) 0xE0024078))
  244. #define ALYEAR          (*((volatile unsigned short*) 0xE002407C))
  245. #define PREINT          (*((volatile unsigned short*) 0xE0024080))
  246. #define PREFRAC         (*((volatile unsigned short*) 0xE0024084))
  247. /* Watchdog */
  248. /* 看门狗的特殊寄存器 */
  249. #define WDMOD           (*((volatile unsigned char *) 0xE0000000))
  250. #define WDTC            (*((volatile unsigned long *) 0xE0000004))
  251. #define WDFEED          (*((volatile unsigned char *) 0xE0000008))
  252. #define WDTV            (*((volatile unsigned long *) 0xE000000C))
  253. /* Define firmware Functions */
  254. /* 定义固件函数 */
  255. #define rm_init_entry()             ((void (*)())(0x7fffff91))()
  256. #define rm_undef_handler()          ((void (*)())(0x7fffffa0))()
  257. #define rm_prefetchabort_handler()  ((void (*)())(0x7fffffb0))()
  258. #define rm_dataabort_handler()      ((void (*)())(0x7fffffc0))()
  259. #define rm_irqhandler()             ((void (*)())(0x7fffffd0))()
  260. #define rm_irqhandler2()            ((void (*)())(0x7fffffe0))()
  261. #define iap_entry(a, b)             ((void (*)())(0x7ffffff1))(a, b)
  262. /*********************************************************************************************************
  263. **                            End Of File
  264. ********************************************************************************************************/