я сам писал для недостающих областей нужно дописать...
#ifndef __LPC2138_REGMAP_H__
#define __LPC2138_REGMAP_H__
#include "gpub.h"
#define VPBCLOCK 60000000L
#define LPC2138_VPBBASE 0xE0000000
#define LPC2138_VICBASE 0xFFFFF000
#define LPC2138_GPIOBASE (LPC2138_VPBBASE + 0x00028000)
#define LPC2138_MAMBASE (LPC2138_VPBBASE + 0x001FC000)
#define LPC2138_PLLBASE (LPC2138_VPBBASE + 0x001FC080)
#define LPC2138_PINBASE (LPC2138_VPBBASE + 0x0002C000)
#define LPC2138_SPI0BASE (LPC2138_VPBBASE + 0x00020000)
#define LPC2138_TMR0BASE (LPC2138_VPBBASE + 0x00004000)
#define LPC2138_TMR1BASE (LPC2138_VPBBASE + 0x00008000)
#define MEMMAP (*((volatile u32_t *) 0xE01FC040))
/* Timer/Counter registers */
typedef struct {
u32_t IR ;
u32_t TCR ;
u32_t TC ;
u32_t PR ;
u32_t PC ;
u32_t MCR ;
u32_t MR0 ;
u32_t MR1 ;
u32_t MR2 ;
u32_t MR3 ;
u32_t CCR ;
u32_t CR0 ;
u32_t CR1 ;
u32_t CR2 ;
u32_t CR3 ;
u32_t EMR ;
u32_t pad0[12];
u32_t CTCR ;
} TMR2138Set;
/* SPIO registers */
typedef struct {
u32_t SPCR ;
u32_t SPSR ;
u32_t SPDR ;
u32_t SPCCR ;
u32_t pad[3] ;
u32_t SPINT ;
} SPI02138Set;
/* PINSEL registers */
typedef struct {
u32_t PINSEL0 ;
u32_t PINSEL1 ;
u32_t pad0[3] ;
u32_t PINSEL2 ;
} PIN2138Set;
/* GPIO registers */
typedef struct {
u32_t IO0PIN ;
u32_t IO0SET ;
u32_t IO0DIR ;
u32_t IO0CLR ;
u32_t IO1PIN ;
u32_t IO1SET ;
u32_t IO1DIR ;
u32_t IO1CLR ;
} GPIO2138Set;
/* MAM registers */
typedef struct {
u32_t MAMCR ;
u32_t MAMTIM ;
} MAM2138Set;
/* PLL registers */
typedef struct {
u32_t PLLCON ;
u32_t PLLCFG ;
u32_t PLLSTAT ;
u32_t PLLFEED ;
} PLL2138Set;
/* VIC registers */
typedef struct {
u32_t VICIRQStatus ;
u32_t VICFIQStatus ;
u32_t VICRawIntr ;
u32_t VICIntSelect ;
u32_t VICIntEnable ;
u32_t VICIntEnClr ;
u32_t VICSoftInt ;
u32_t VICSoftIntClear ;
u32_t VICProtection ;
u32_t pad0[3] ;
u32_t VICVectAddr ;
u32_t VICDefVectAddr ;
u32_t pad1[50] ;
u32_t VICVectAddr0 ;
u32_t VICVectAddr1 ;
u32_t VICVectAddr2 ;
u32_t VICVectAddr3 ;
u32_t VICVectAddr4 ;
u32_t VICVectAddr5 ;
u32_t VICVectAddr6 ;
u32_t VICVectAddr7 ;
u32_t VICVectAddr8 ;
u32_t VICVectAddr9 ;
u32_t VICVectAddr10 ;
u32_t VICVectAddr11 ;
u32_t VICVectAddr12 ;
u32_t VICVectAddr13 ;
u32_t VICVectAddr14 ;
u32_t VICVectAddr15 ;
u32_t pad2[48] ;
u32_t VICVectCntl0 ;
u32_t VICVectCntl1 ;
u32_t VICVectCntl2 ;
u32_t VICVectCntl3 ;
u32_t VICVectCntl4 ;
u32_t VICVectCntl5 ;
u32_t VICVectCntl6 ;
u32_t VICVectCntl7 ;
u32_t VICVectCntl8 ;
u32_t VICVectCntl9 ;
u32_t VICVectCntl10 ;
u32_t VICVectCntl11 ;
u32_t VICVectCntl12 ;
u32_t VICVectCntl13 ;
u32_t VICVectCntl14 ;
u32_t VICVectCntl15 ;
} VIC2138Set;
#define GPIO2138 ((volatile GPIO2138Set *) LPC2138_GPIOBASE)
#define MAM2138 ((volatile MAM2138Set *) LPC2138_MAMBASE )
#define PLL2138 ((volatile PLL2138Set *) LPC2138_PLLBASE )
#define VIC2138 ((volatile VIC2138Set *) LPC2138_VICBASE )
#define PIN2138 ((volatile PIN2138Set *) LPC2138_PINBASE )
#define SPI02138 ((volatile SPI02138Set *) LPC2138_SPI0BASE)
#define TMR02138 ((volatile TMR2138Set *) LPC2138_TMR0BASE)
#define TMR12138 ((volatile TMR2138Set *) LPC2138_TMR1BASE)
#endif