00001 #ifndef lpc2000_h
00002 #define lpc2000_h
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #define REG8 (volatile unsigned char*)
00022 #define REG16 (volatile unsigned short*)
00023 #define REG32 (volatile unsigned int*)
00024
00025
00026
00027
00028
00029
00030
00031 #define VECTDATA_IRQ 0xE51FFFF0
00032 #define VECTDATA_FIQ
00033
00034
00035
00036
00037
00038
00039 #define VICIRQStatus (*(REG32 (0xFFFFF000)))
00040 #define VICFIQStatus (*(REG32 (0xFFFFF004)))
00041 #define VICRawIntr (*(REG32 (0xFFFFF008)))
00042 #define VICIntSelect (*(REG32 (0xFFFFF00C)))
00043 #define VICIntEnable (*(REG32 (0xFFFFF010)))
00044 #define VICIntEnClear (*(REG32 (0xFFFFF014)))
00045 #define VICSoftInt (*(REG32 (0xFFFFF018)))
00046 #define VICSoftIntClear (*(REG32 (0xFFFFF01C)))
00047 #define VICProtection (*(REG32 (0xFFFFF020)))
00048 #define VICVectAddr (*(REG32 (0xFFFFF030)))
00049 #define VICDefVectAddr (*(REG32 (0xFFFFF034)))
00050
00051 #define VICVectAddr0 (*(REG32 (0xFFFFF100)))
00052 #define VICVectAddr1 (*(REG32 (0xFFFFF104)))
00053 #define VICVectAddr2 (*(REG32 (0xFFFFF108)))
00054 #define VICVectAddr3 (*(REG32 (0xFFFFF10C)))
00055 #define VICVectAddr4 (*(REG32 (0xFFFFF110)))
00056 #define VICVectAddr5 (*(REG32 (0xFFFFF114)))
00057 #define VICVectAddr6 (*(REG32 (0xFFFFF118)))
00058 #define VICVectAddr7 (*(REG32 (0xFFFFF11C)))
00059 #define VICVectAddr8 (*(REG32 (0xFFFFF120)))
00060 #define VICVectAddr9 (*(REG32 (0xFFFFF124)))
00061 #define VICVectAddr10 (*(REG32 (0xFFFFF128)))
00062 #define VICVectAddr11 (*(REG32 (0xFFFFF12C)))
00063 #define VICVectAddr12 (*(REG32 (0xFFFFF130)))
00064 #define VICVectAddr13 (*(REG32 (0xFFFFF134)))
00065 #define VICVectAddr14 (*(REG32 (0xFFFFF138)))
00066 #define VICVectAddr15 (*(REG32 (0xFFFFF13C)))
00067
00068 #define VICVectCntl0 (*(REG32 (0xFFFFF200)))
00069 #define VICVectCntl1 (*(REG32 (0xFFFFF204)))
00070 #define VICVectCntl2 (*(REG32 (0xFFFFF208)))
00071 #define VICVectCntl3 (*(REG32 (0xFFFFF20C)))
00072 #define VICVectCntl4 (*(REG32 (0xFFFFF210)))
00073 #define VICVectCntl5 (*(REG32 (0xFFFFF214)))
00074 #define VICVectCntl6 (*(REG32 (0xFFFFF218)))
00075 #define VICVectCntl7 (*(REG32 (0xFFFFF21C)))
00076 #define VICVectCntl8 (*(REG32 (0xFFFFF220)))
00077 #define VICVectCntl9 (*(REG32 (0xFFFFF224)))
00078 #define VICVectCntl10 (*(REG32 (0xFFFFF228)))
00079 #define VICVectCntl11 (*(REG32 (0xFFFFF22C)))
00080 #define VICVectCntl12 (*(REG32 (0xFFFFF230)))
00081 #define VICVectCntl13 (*(REG32 (0xFFFFF234)))
00082 #define VICVectCntl14 (*(REG32 (0xFFFFF238)))
00083 #define VICVectCntl15 (*(REG32 (0xFFFFF23C)))
00084
00085 #define VICITCR (*(REG32 (0xFFFFF300)))
00086 #define VICITIP1 (*(REG32 (0xFFFFF304)))
00087 #define VICITIP2 (*(REG32 (0xFFFFF308)))
00088 #define VICITOP1 (*(REG32 (0xFFFFF30C)))
00089 #define VICITOP2 (*(REG32 (0xFFFFF310)))
00090 #define VICPeriphID0 (*(REG32 (0xFFFFFFE0)))
00091 #define VICPeriphID1 (*(REG32 (0xFFFFFFE4)))
00092 #define VICPeriphID2 (*(REG32 (0xFFFFFFE8)))
00093 #define VICPeriphID3 (*(REG32 (0xFFFFFFEC)))
00094
00095 #define VICIntEnClr VICIntEnClear
00096 #define VICSoftIntClr VICSoftIntClear
00097
00098
00099
00100
00101
00102
00103 #define PCB_PINSEL0 (*(REG32 (0xE002C000)))
00104 #define PCB_PINSEL1 (*(REG32 (0xE002C004)))
00105 #define PCB_PINSEL2 (*(REG32 (0xE002C014)))
00106
00107
00108
00109
00110
00111
00112 #define GPIO_IOPIN (*(REG32 (0xE0028000)))
00113 #define GPIO_IOSET (*(REG32 (0xE0028004)))
00114 #define GPIO_IODIR (*(REG32 (0xE0028008)))
00115 #define GPIO_IOCLR (*(REG32 (0xE002800C)))
00116
00117 #define GPIO0_IOPIN (*(REG32 (0xE0028000)))
00118 #define GPIO0_IOSET (*(REG32 (0xE0028004)))
00119 #define GPIO0_IODIR (*(REG32 (0xE0028008)))
00120 #define GPIO0_IOCLR (*(REG32 (0xE002800C)))
00121
00122 #define GPIO1_IOPIN (*(REG32 (0xE0028010)))
00123 #define GPIO1_IOSET (*(REG32 (0xE0028014)))
00124 #define GPIO1_IODIR (*(REG32 (0xE0028018)))
00125 #define GPIO1_IOCLR (*(REG32 (0xE002801C)))
00126
00127
00128
00129
00130
00131
00132
00133 #define UART0_RBR (*(REG32 (0xE000C000)))
00134 #define UART0_THR (*(REG32 (0xE000C000)))
00135 #define UART0_IER (*(REG32 (0xE000C004)))
00136 #define UART0_IIR (*(REG32 (0xE000C008)))
00137 #define UART0_FCR (*(REG32 (0xE000C008)))
00138 #define UART0_LCR (*(REG32 (0xE000C00C)))
00139 #define UART0_LSR (*(REG32 (0xE000C014)))
00140 #define UART0_SCR (*(REG32 (0xE000C01C)))
00141 #define UART0_DLL (*(REG32 (0xE000C000)))
00142 #define UART0_DLM (*(REG32 (0xE000C004)))
00143
00144
00145 #define UART1_RBR (*(REG32 (0xE0010000)))
00146 #define UART1_THR (*(REG32 (0xE0010000)))
00147 #define UART1_IER (*(REG32 (0xE0010004)))
00148 #define UART1_IIR (*(REG32 (0xE0010008)))
00149 #define UART1_FCR (*(REG32 (0xE0010008)))
00150 #define UART1_LCR (*(REG32 (0xE001000C)))
00151 #define UART1_LSR (*(REG32 (0xE0010014)))
00152 #define UART1_SCR (*(REG32 (0xE001001C)))
00153 #define UART1_DLL (*(REG32 (0xE0010000)))
00154 #define UART1_DLM (*(REG32 (0xE0010004)))
00155 #define UART1_MCR (*(REG32 (0xE0010010)))
00156 #define UART1_MSR (*(REG32 (0xE0010018)))
00157
00158
00159
00160
00161
00162
00163 #define I2C_I2CONSET (*(REG32 (0xE001C000)))
00164 #define I2C_I2STAT (*(REG32 (0xE001C004)))
00165 #define I2C_I2DAT (*(REG32 (0xE001C008)))
00166 #define I2C_I2ADR (*(REG32 (0xE001C00C)))
00167 #define I2C_I2SCLH (*(REG32 (0xE001C010)))
00168 #define I2C_I2SCLL (*(REG32 (0xE001C014)))
00169 #define I2C_I2CONCLR (*(REG32 (0xE001C018)))
00170
00171
00172
00173
00174
00175
00176 #define SPI_SPCR (*(REG32 (0xE0020000)))
00177 #define SPI_SPSR (*(REG32 (0xE0020004)))
00178 #define SPI_SPDR (*(REG32 (0xE0020008)))
00179 #define SPI_SPCCR (*(REG32 (0xE002000C)))
00180 #define SPI_SPTCR (*(REG32 (0xE0020010)))
00181 #define SPI_SPTSR (*(REG32 (0xE0020014)))
00182 #define SPI_SPTOR (*(REG32 (0xE0020018)))
00183 #define SPI_SPINT (*(REG32 (0xE002001C)))
00184
00185 #define SPI0_SPCR (*(REG32 (0xE0020000)))
00186 #define SPI0_SPSR (*(REG32 (0xE0020004)))
00187 #define SPI0_SPDR (*(REG32 (0xE0020008)))
00188 #define SPI0_SPCCR (*(REG32 (0xE002000C)))
00189 #define SPI0_SPTCR (*(REG32 (0xE0020010)))
00190 #define SPI0_SPTSR (*(REG32 (0xE0020014)))
00191 #define SPI0_SPTOR (*(REG32 (0xE0020018)))
00192 #define SPI0_SPINT (*(REG32 (0xE002001C)))
00193
00194 #define SPI1_SPCR (*(REG32 (0xE0030000)))
00195 #define SPI1_SPSR (*(REG32 (0xE0030004)))
00196 #define SPI1_SPDR (*(REG32 (0xE0030008)))
00197 #define SPI1_SPCCR (*(REG32 (0xE003000C)))
00198 #define SPI1_SPTCR (*(REG32 (0xE0030010)))
00199 #define SPI1_SPTSR (*(REG32 (0xE0030014)))
00200 #define SPI1_SPTOR (*(REG32 (0xE0030018)))
00201 #define SPI1_SPINT (*(REG32 (0xE003001C)))
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216 #define T0_IR (*(REG32 (0xE0004000)))
00217 #define T0_TCR (*(REG32 (0xE0004004)))
00218 #define T0_TC (*(REG32 (0xE0004008)))
00219 #define T0_PR (*(REG32 (0xE000400C)))
00220 #define T0_PC (*(REG32 (0xE0004010)))
00221 #define T0_MCR (*(REG32 (0xE0004014)))
00222 #define T0_MR0 (*(REG32 (0xE0004018)))
00223 #define T0_MR1 (*(REG32 (0xE000401C)))
00224 #define T0_MR2 (*(REG32 (0xE0004020)))
00225 #define T0_MR3 (*(REG32 (0xE0004024)))
00226 #define T0_CCR (*(REG32 (0xE0004028)))
00227 #define T0_CR0 (*(REG32 (0xE000402C)))
00228 #define T0_CR1 (*(REG32 (0xE0004030)))
00229 #define T0_CR2 (*(REG32 (0xE0004034)))
00230 #define T0_CR3 (*(REG32 (0xE0004038)))
00231 #define T0_EMR (*(REG32 (0xE000403C)))
00232
00233
00234 #define T1_IR (*(REG32 (0xE0008000)))
00235 #define T1_TCR (*(REG32 (0xE0008004)))
00236 #define T1_TC (*(REG32 (0xE0008008)))
00237 #define T1_PR (*(REG32 (0xE000800C)))
00238 #define T1_PC (*(REG32 (0xE0008010)))
00239 #define T1_MCR (*(REG32 (0xE0008014)))
00240 #define T1_MR0 (*(REG32 (0xE0008018)))
00241 #define T1_MR1 (*(REG32 (0xE000801C)))
00242 #define T1_MR2 (*(REG32 (0xE0008020)))
00243 #define T1_MR3 (*(REG32 (0xE0008024)))
00244 #define T1_CCR (*(REG32 (0xE0008028)))
00245 #define T1_CR0 (*(REG32 (0xE000802C)))
00246 #define T1_CR1 (*(REG32 (0xE0008030)))
00247 #define T1_CR2 (*(REG32 (0xE0008034)))
00248 #define T1_CR3 (*(REG32 (0xE0008038)))
00249 #define T1_EMR (*(REG32 (0xE000803C)))
00250
00251
00252
00253
00254
00255
00256 #define PWM_IR (*(REG32 (0xE0014000)))
00257 #define PWM_TCR (*(REG32 (0xE0014004)))
00258 #define PWM_TC (*(REG32 (0xE0014008)))
00259 #define PWM_PR (*(REG32 (0xE001400C)))
00260 #define PWM_PC (*(REG32 (0xE0014010)))
00261 #define PWM_MCR (*(REG32 (0xE0014014)))
00262 #define PWM_MR0 (*(REG32 (0xE0014018)))
00263 #define PWM_MR1 (*(REG32 (0xE001401C)))
00264 #define PWM_MR2 (*(REG32 (0xE0014020)))
00265 #define PWM_MR3 (*(REG32 (0xE0014024)))
00266 #define PWM_MR4 (*(REG32 (0xE0014040)))
00267 #define PWM_MR5 (*(REG32 (0xE0014044)))
00268 #define PWM_MR6 (*(REG32 (0xE0014048)))
00269 #define PWM_EMR (*(REG32 (0xE001403C)))
00270 #define PWM_PCR (*(REG32 (0xE001404C)))
00271 #define PWM_LER (*(REG32 (0xE0014050)))
00272 #define PWM_CCR (*(REG32 (0xE0014028)))
00273 #define PWM_CR0 (*(REG32 (0xE001402C)))
00274 #define PWM_CR1 (*(REG32 (0xE0014030)))
00275 #define PWM_CR2 (*(REG32 (0xE0014034)))
00276 #define PWM_CR3 (*(REG32 (0xE0014038)))
00277
00278
00279
00280
00281
00282
00283 #define RTC_ILR (*(REG32 (0xE0024000)))
00284 #define RTC_CTC (*(REG32 (0xE0024004)))
00285 #define RTC_CCR (*(REG32 (0xE0024008)))
00286 #define RTC_CIIR (*(REG32 (0xE002400C)))
00287 #define RTC_AMR (*(REG32 (0xE0024010)))
00288 #define RTC_CTIME0 (*(REG32 (0xE0024014)))
00289 #define RTC_CTIME1 (*(REG32 (0xE0024018)))
00290 #define RTC_CTIME2 (*(REG32 (0xE002401C)))
00291
00292
00293 #define RTC_SEC (*(REG32 (0xE0024020)))
00294 #define RTC_MIN (*(REG32 (0xE0024024)))
00295 #define RTC_HOUR (*(REG32 (0xE0024028)))
00296 #define RTC_DOM (*(REG32 (0xE002402C)))
00297 #define RTC_DOW (*(REG32 (0xE0024030)))
00298 #define RTC_DOY (*(REG32 (0xE0024034)))
00299 #define RTC_MONTH (*(REG32 (0xE0024038)))
00300 #define RTC_YEAR (*(REG32 (0xE002403C)))
00301
00302
00303 #define RTC_ALSEC (*(REG32 (0xE0024060)))
00304 #define RTC_ALMIN (*(REG32 (0xE0024064)))
00305 #define RTC_ALHOUR (*(REG32 (0xE0024068)))
00306 #define RTC_ALDOM (*(REG32 (0xE002406C)))
00307 #define RTC_ALDOW (*(REG32 (0xE0024070)))
00308 #define RTC_ALDOY (*(REG32 (0xE0024074)))
00309 #define RTC_ALMON (*(REG32 (0xE0024078)))
00310 #define RTC_ALYEAR (*(REG32 (0xE002407C)))
00311
00312
00313 #define RTC_PREINT (*(REG32 (0xE0024080)))
00314 #define RTC_PREFRAC (*(REG32 (0xE0024084)))
00315
00316
00317
00318
00319
00320
00321 #define AD_ADCR (*(REG32 (0xE0034000)))
00322 #define AD_ADDR (*(REG32 (0xE0034004)))
00323
00324
00325
00326
00327
00328
00329 #define WD_WDMOD (*(REG32 (0xE0000000)))
00330 #define WD_WDTC (*(REG32 (0xE0000004)))
00331 #define WD_WDFEED (*(REG32 (0xE0000008)))
00332 #define WD_WDTV (*(REG32 (0xE000000C)))
00333
00334
00335
00336
00337
00338
00339 #define SCB_EXTINT (*(REG32 (0xE01FC140)))
00340 #define SCB_EXTWAKE (*(REG32 (0xE01FC144)))
00341 #define SCB_EXTMODE (*(REG32 (0xE01FC148)))
00342 #define SCB_EXTPOLAR (*(REG32 (0xE01FC14C)))
00343 #define SCB_MEMMAP (*(REG32 (0xE01FC040)))
00344 #define SCB_PLLCON (*(REG32 (0xE01FC080)))
00345 #define SCB_PLLCFG (*(REG32 (0xE01FC084)))
00346 #define SCB_PLLSTAT (*(REG32 (0xE01FC088)))
00347 #define SCB_PLLFEED (*(REG32 (0xE01FC08C)))
00348 #define SCB_PCON (*(REG32 (0xE01FC0C0)))
00349 #define SCB_PCONP (*(REG32 (0xE01FC0C4)))
00350 #define SCB_VPBDIV (*(REG32 (0xE01FC100)))
00351
00352
00353
00354
00355
00356
00357 #define MAM_MAMCR (*(REG32 (0xE01FC000)))
00358 #define MAM_MAMTIM (*(REG32 (0xE01FC004)))
00359 #define MAM_MAMMAP (*(REG32 (0xE01FC040)))
00360
00361
00362 #endif
00363