typedef struct _GPIO{
volatile unsigned int PORTCFG0; // 0x000 R/W Port Configuration Register 0
volatile unsigned int PORTCFG1; // 0x004 R/W Port Configuration Register 1
volatile unsigned int PORTCFG2; // 0x008 R/W Port Configuration Register 2
volatile unsigned int PORTCFG3; // 0x00C R/W Port Configuration Register 3
volatile unsigned int PORTCFG4; // 0x010 R/W Port Configuration Register 4
volatile unsigned int PORTCFG5; // 0x014 R/W Port Configuration Register 5
volatile unsigned int PORTCFG6; // 0x018 R/W Port Configuration Register 6
volatile unsigned int PORTCFG7; // 0x01C R/W Port Configuration Register 7
volatile unsigned int PORTCFG8; // 0x020 R/W Port Configuration Register 8
volatile unsigned int PORTCFG9; // 0x024 R/W Port Configuration Register 9
volatile unsigned int PORTCFG10; // 0x028 R/W Port Configuration Register 10
volatile unsigned int PORTCFG11; // 0x02C R/W Port Configuration Register 11
volatile unsigned int PORTCFG12; // 0x030 R/W Port Configuration Register 12
volatile unsigned int PORTCFG13; // 0x034 R/W Port Configuration Register 13
volatile unsigned int NOTDEFINE0; // 0x038 -
volatile unsigned int NOTDEFINE1; // 0x03C -
volatile unsigned int GPADAT; // 0x040 R/W 0x00000000 GPA Data Register
volatile unsigned int GPAEN; // 0x044 R/W 0x00000000 GPA Output Enable Register
volatile unsigned int GPASET; // 0x048 W - OR function on GPA Output Data
volatile unsigned int GPACLR; // 0x04C W - BIC function on GPA Output Data
volatile unsigned int GPAXOR; // 0x050 W - XOR function on GPA Output Data
volatile unsigned int NOTDEFINE2; // 0x054
volatile unsigned int NOTDEFINE3; // 0x058
volatile unsigned int NOTDEFINE4; // 0x05C
volatile unsigned int GPBDAT; // 0x060 R/W 0x00000000 GPB Data Register
volatile unsigned int GPBEN; // 0x064 R/W 0x00000000 GPB Output Enable Registe
volatile unsigned int GPBSET; // 0x068 W - OR function on GPB Output Data
volatile unsigned int GPBCLR; // 0x06C W - BIC function on GPB Output Data
volatile unsigned int GPBXOR; // 0x070 W - XOR function on GPB Output Data
volatile unsigned int NOTDEFINE5; // 0x074
volatile unsigned int NOTDEFINE6; // 0x078
volatile unsigned int NOTDEFINE7; // 0x07C
volatile unsigned int GPCDAT; // 0x080 R/W 0x00000000 GPC Data Register
volatile unsigned int GPCEN; // 0x084 R/W 0x00000000 GPC Output Enable Register
volatile unsigned int GPCSET; // 0x088 W - OR function on GPC Output Data
volatile unsigned int GPCCLR; // 0x08C W - BIC function on GPC Output Data
volatile unsigned int GPCXOR; // 0x090 W - XOR function on GPC Output Data
volatile unsigned int NOTDEFINE8; // 0x094
volatile unsigned int NOTDEFINE9; // 0x098
volatile unsigned int NOTDEFINE10; // 0x09C
volatile unsigned int GPDDAT; // 0x0A0 R/W 0x00000000 GPD Data Register
volatile unsigned int GPDEN; // 0x0A4 R/W 0x00000000 GPD Output Enable Register
volatile unsigned int GPDSET; // 0x0A8 W - OR function on GPD Output Data
volatile unsigned int GPDCLR; // 0x0AC W - BIC function on GPD Output Data
volatile unsigned int GPDXOR; // 0x0B0 W - XOR function on GPD Output Data
volatile unsigned int NOTDEFINE11; // 0x0B4
volatile unsigned int NOTDEFINE12; // 0x0B8
volatile unsigned int NOTDEFINE13; // 0x0BC
volatile unsigned int GPEDAT; // 0x0C0 R/W 0x00000000 GPE Data Register
volatile unsigned int GPEEN; // 0x0C4 R/W 0x00000000 GPE Output Enable Register
volatile unsigned int GPESET; // 0x0C8 W - OR function on GPE Output Data
volatile unsigned int GPECLR; // 0x0CC W - BIC function on GPE Output Data
volatile unsigned int GPEXOR; // 0x0D0 W - XOR function on GPE Output Data
volatile unsigned int NOTDEFINE14[3]; // 0x0D4,0x0D8,0x0DC
volatile unsigned int GPFDAT; // 0x0E0 R/W 0x00000000 GPF Data Register
volatile unsigned int GPFEN; //0x0E4 R/W 0x00000000 GPF Output Enable Register
volatile unsigned int GPFSET; //0x0E8 W - OR function on GPF Output Data
volatile unsigned int GPFCLR; //0x0EC W - BIC function on GPF Output Data
volatile unsigned int GPFXOR; //0x0F0 W - XOR function on GPF Output Data
volatile unsigned int NOTDEFINE15[3]; //RESERVED 0x0F4 0x0F8 0x0FC
volatile unsigned int CPUD0 ; //0x100 R/W Pull-Up/Down Control Register 0
volatile unsigned int CPUD1; // 0x104 R/W Pull-Up/Down Control Register 1
volatile unsigned int CPUD2 ; //0x108 R/W Pull-Up/Down Control Register 2
volatile unsigned int CPUD3 ; //0x10C R/W Pull-Up/Down Control Register 3
volatile unsigned int CPUD4; // 0x110 R/W Pull-Up/Down Control Register 4
volatile unsigned int CPUD5; // 0x114 R/W Pull-Up/Down Control Register 5
volatile unsigned int CPUD6; // 0x118 R/W Pull-Up/Down Control Register 6
volatile unsigned int CPUD7; // 0x11C R/W Pull-Up/Down Control Register 7
volatile unsigned int CPUD8; // 0x120 R/W Pull-Up/Down Control Register 8
volatile unsigned int CPUD9 ; //0x124 R/W Pull-Up/Down Control Register 9
volatile unsigned int CPDRV0; // 0x128 R/W Driver strength Control Register 0
volatile unsigned int CPDRV1; // 0x12C R/W
volatile unsigned int AINCFG; // 0x130 R/W 0x00000000 Analog Input Pad Control Register
volatile unsigned int EINTSEL0; // 0x134 R/W 0x00000000 External Interrupt Select Register 0
volatile unsigned int EINTSEL1; // 0x138 R/W 0x00000000 External Interrupt Select Register 1
volatile unsigned int IRQSEL; // 0x13C R/W 0x00000000 Interrupt Select Register
}GPIO, *PGPIO;