⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 regs_gpio.h

📁 cache test for arm920 core
💻 H
字号:
/*======================================================================= * *  FILE:       regs_gpio.h * *  DESCRIPTION:    GPIO Register Definition * *  Copyright Cirrus Logic, 2001-2002 * *======================================================================= */#ifndef _REGS_GPIO_H_#define _REGS_GPIO_H_typedef union {    struct     {        unsigned int Px0DATA:1;        unsigned int Px1DATA:1;        unsigned int Px2DATA:1;        unsigned int Px3DATA:1;        unsigned int Px4DATA:1;        unsigned int Px5DATA:1;        unsigned int Px6DATA:1;        unsigned int Px7DATA:1;        unsigned int RSVD:24;    } Field;    unsigned int Value;} GPIO_DATA_REG_TYPE;typedef union {    struct     {        unsigned int Px0DIR:1;        unsigned int Px1DIR:1;        unsigned int Px2DIR:1;        unsigned int Px3DIR:1;        unsigned int Px4DIR:1;        unsigned int Px5DIR:1;        unsigned int Px6DIR:1;        unsigned int Px7DIR:1;        unsigned int RSVD:24;    } Field;    unsigned int Value;} GPIO_DATA_DIR_REG_TYPE;typedef union {    struct     {        unsigned int PxINT0:1;        unsigned int PxINT1:1;        unsigned int PxINT2:1;        unsigned int PxINT3:1;        unsigned int PxINT4:1;        unsigned int PxINT5:1;        unsigned int PxINT6:1;        unsigned int PxINT7:1;        unsigned int RSVD:24;    } Field;    unsigned int Value;} GPIO_INT_EN_REG_TYPE;typedef union {    struct     {        unsigned int Px0INTE:1;        unsigned int Px1INTE:1;        unsigned int Px2INTE:1;        unsigned int Px3INTE:1;        unsigned int Px4INTE:1;        unsigned int Px5INTE:1;        unsigned int Px6INTE:1;        unsigned int Px7INTE:1;        unsigned int RSVD:24;    } Field;    unsigned int Value;} GPIO_INT_TYPE1_REG_TYPE;typedef union {    struct     {        unsigned int Px0INTR:1;        unsigned int Px1INTR:1;        unsigned int Px2INTR:1;        unsigned int Px3INTR:1;        unsigned int Px4INTR:1;        unsigned int Px5INTR:1;        unsigned int Px6INTR:1;        unsigned int Px7INTR:1;        unsigned int RSVD:24;    } Field;    unsigned int Value;} GPIO_INT_TYPE2_REG_TYPE;typedef unsigned int GPIO_EOI_TYPE; // write onlytypedef union {    struct     {        unsigned int D0:1;        unsigned int D1:1;        unsigned int D2:1;        unsigned int D3:1;        unsigned int D4:1;        unsigned int D5:1;        unsigned int D6:1;        unsigned int D7:1;        unsigned int RSVD:24;    } Field;    unsigned int Value;} GPIO_DEBOUNCE_REG_TYPE, GPIO_INT_STATUS_TYPE;typedef struct tGPIO{    // Data Registers and Data Direction Registers for     // GPIO ports A-H    GPIO_DATA_REG_TYPE          PADR;                   // 0000    GPIO_DATA_REG_TYPE          PBDR;                   // 0004    GPIO_DATA_REG_TYPE          PCDR;                   // 0008    GPIO_DATA_REG_TYPE          PDDR;                   // 000C        GPIO_DATA_DIR_REG_TYPE      PADDR;                  // 0010    GPIO_DATA_DIR_REG_TYPE      PBDDR;                  // 0014    GPIO_DATA_DIR_REG_TYPE      PCDDR;                  // 0018    GPIO_DATA_DIR_REG_TYPE      PDDDR;                  // 001C        GPIO_DATA_REG_TYPE          PEDR;                   // 0020    GPIO_DATA_DIR_REG_TYPE      PEDDR;                  // 0024        unsigned int const          RESERVED1;              // 0028    unsigned int const          RESERVED2;              // 002C    GPIO_DATA_REG_TYPE          PFDR;                   // 0030    GPIO_DATA_DIR_REG_TYPE      PFDDR;                  // 0034        GPIO_DATA_REG_TYPE          PGDR;                   // 0038    GPIO_DATA_DIR_REG_TYPE      PGDDR;                  // 003C        GPIO_DATA_REG_TYPE          PHDR;                   // 0040    GPIO_DATA_DIR_REG_TYPE      PHDDR;                  // 0044        unsigned int const          RESERVED3;              // 0048    //    // GPIO Port F interrupt and debounce registers    //    GPIO_INT_TYPE1_REG_TYPE     GPIOFINTTYPE1;          // 004C    GPIO_INT_TYPE2_REG_TYPE     GPIOFINTTYPE2;          // 0050    GPIO_EOI_TYPE               GPIOFEOI;               // 0054  - write only    GPIO_INT_EN_REG_TYPE        GPIOFINTEN;             // 0058    GPIO_INT_STATUS_TYPE        INTSTATUSF;             // 005C  - read only    GPIO_INT_STATUS_TYPE        RAWINTSTATUSF;          // 0060  - read only    GPIO_DEBOUNCE_REG_TYPE      GPIOFDB;                // 0064        unsigned int const  RESERVED5[(-(0x68-0x90))>>2];   // 0068 - 0090    //    // GPIO Port A interrupt and debounce registers    //    GPIO_INT_TYPE1_REG_TYPE     GPIOAINTTYPE1;          // 0090    GPIO_INT_TYPE2_REG_TYPE     GPIOAINTTYPE2;          // 0094    GPIO_EOI_TYPE               GPIOAEOI;               // 0098  - write only    GPIO_INT_EN_REG_TYPE        GPIOAINTEN;             // 009C    GPIO_INT_STATUS_TYPE        INTSTATUSA;             // 00A0  - read only    GPIO_INT_STATUS_TYPE        RAWINTSTATUSA;          // 00A4  - read only    GPIO_DEBOUNCE_REG_TYPE      GPIOADB;                // 00A8    //    // GPIO Port B interrupt and debounce registers    //    GPIO_INT_TYPE1_REG_TYPE     GPIOBINTTYPE1;          // 00AC    GPIO_INT_TYPE2_REG_TYPE     GPIOBINTTYPE2;          // 00B0    GPIO_EOI_TYPE               GPIOBEOI;               // 00B4  - write only    GPIO_INT_EN_REG_TYPE        GPIOBINTEN;             // 00B8    GPIO_INT_STATUS_TYPE        INTSTATUSB;             // 00BC  - read only    GPIO_INT_STATUS_TYPE        RAWINTSTATUSB;          // 00C0  - read only    GPIO_DEBOUNCE_REG_TYPE      GPIOBDB;                // 00C4    union    {        struct         {            unsigned int CLKOD:1;            unsigned int DATOD:1;            unsigned int RSVD:30;        } Field;        unsigned int Value;    }  EEDRIVE;                                         // 00C8    //    // Test registers    //    unsigned int RESERVED8;                             // 00CC    unsigned int GPIOTCR;                               // 00D0    unsigned int GPIOTISRA;                             // 00D4    unsigned int GPIOTISRB;                             // 00D8    unsigned int GPIOTISRC;                             // 00DC    unsigned int GPIOTISRD;                             // 00E0    unsigned int GPIOTISRE;                             // 00E4    unsigned int GPIOTISRF;                             // 00E8    unsigned int GPIOTISRG;                             // 00EC    unsigned int GPIOTISRH;                             // 00F0    unsigned int GPIOCER;                               // 00F4   } GPIO;/*    union     {        struct         {            unsigned int :;        } Field;        unsigned int Value;    } ;*///-----------------------------------------------------------------------------// Global Register Anchor Definitions//-----------------------------------------------------------------------------static volatile GPIO * const gpio = (GPIO * const)0x80840000;// typedef enum{//     PortA = 0,//     PortB,//     PortC,//     PortD,//     PortE,//     PortF,//     PortG,//     PortH// } GPIO_PORT_NUMBERS;// // typedef struct{//     GPIO_DATA_REG_TYPE      * const DR;//     GPIO_DATA_DIR_REG_TYPE  * const DDR;//     GPIO_INT_TYPE1_REG_TYPE * const INT_TYPE1;//     GPIO_INT_TYPE2_REG_TYPE * const INT_TYPE2;//     GPIO_INT_EN_REG_TYPE    * const INT_EN;//     GPIO_INT_STATUS_TYPE    * const INT_STATUS;//     GPIO_INT_STATUS_TYPE    * const RAW_INT_STATUS;//     GPIO_DEBOUNCE_REG_TYPE  * const DEBOUNCE;// } GPIO_REG_SET_TYPE;// // volatile GPIO_REG_SET_TYPE  GPIOREG[8] =// {//     // Port A//     {//         (GPIO_DATA_REG_TYPE      *  ) ( 0x80840000 + 0x00 ),//         (GPIO_DATA_DIR_REG_TYPE  *  ) ( 0x80840000 + 0x10 ),//         (GPIO_INT_TYPE1_REG_TYPE *  ) ( 0x80840000 + 0x90 ),//         (GPIO_INT_TYPE2_REG_TYPE *  ) ( 0x80840000 + 0x94 ),//         (GPIO_INT_EN_REG_TYPE    *  ) ( 0x80840000 + 0x9C ),//         (GPIO_INT_STATUS_TYPE    *  ) ( 0x80840000 + 0xA0 ),//         (GPIO_INT_STATUS_TYPE    *  ) ( 0x80840000 + 0xA4 ),//         (GPIO_DEBOUNCE_REG_TYPE  *  ) ( 0x80840000 + 0xA8 )//     },// //     // Port B//     {//         (GPIO_DATA_REG_TYPE      *  ) ( 0x80840000 + 0x04 ),//         (GPIO_DATA_DIR_REG_TYPE  *  ) ( 0x80840000 + 0x14 ),//         (GPIO_INT_TYPE1_REG_TYPE *  ) ( 0x80840000 + 0xAC ),//         (GPIO_INT_TYPE2_REG_TYPE *  ) ( 0x80840000 + 0xB0 ),//         (GPIO_INT_EN_REG_TYPE    *  ) ( 0x80840000 + 0xB8 ),//         (GPIO_INT_STATUS_TYPE    *  ) ( 0x80840000 + 0xBC ),//         (GPIO_INT_STATUS_TYPE    *  ) ( 0x80840000 + 0xC0 ),//         (GPIO_DEBOUNCE_REG_TYPE  *  ) ( 0x80840000 + 0xC4 )//     },// //     // Port C//     {//         (GPIO_DATA_REG_TYPE      *  ) ( 0x80840000 + 0x08 ),//         (GPIO_DATA_DIR_REG_TYPE  *  ) ( 0x80840000 + 0x18 ),//         (GPIO_INT_TYPE1_REG_TYPE *  ) 0,//         (GPIO_INT_TYPE2_REG_TYPE *  ) 0,//         (GPIO_INT_EN_REG_TYPE    *  ) 0,//         (GPIO_INT_STATUS_TYPE    *  ) 0,//         (GPIO_INT_STATUS_TYPE    *  ) 0,//         (GPIO_DEBOUNCE_REG_TYPE  *  ) 0//     },// //     // Port D//     {//         (GPIO_DATA_REG_TYPE      *  ) ( 0x80840000 + 0x0C ),//         (GPIO_DATA_DIR_REG_TYPE  *  ) ( 0x80840000 + 0x1C ),//         (GPIO_INT_TYPE1_REG_TYPE *  ) 0,//         (GPIO_INT_TYPE2_REG_TYPE *  ) 0,//         (GPIO_INT_EN_REG_TYPE    *  ) 0,//         (GPIO_INT_STATUS_TYPE    *  ) 0,//         (GPIO_INT_STATUS_TYPE    *  ) 0,//         (GPIO_DEBOUNCE_REG_TYPE  *  ) 0//     },// //     // Port E//     {//         (GPIO_DATA_REG_TYPE      *  ) ( 0x80840000 + 0x20 ),//         (GPIO_DATA_DIR_REG_TYPE  *  ) ( 0x80840000 + 0x24 ),//         (GPIO_INT_TYPE1_REG_TYPE *  ) 0,//         (GPIO_INT_TYPE2_REG_TYPE *  ) 0,//         (GPIO_INT_EN_REG_TYPE    *  ) 0,//         (GPIO_INT_STATUS_TYPE    *  ) 0,//         (GPIO_INT_STATUS_TYPE    *  ) 0,//         (GPIO_DEBOUNCE_REG_TYPE  *  ) 0//     },// //     // Port F//     {//         (GPIO_DATA_REG_TYPE      *  ) ( 0x80840000 + 0x30 ),//         (GPIO_DATA_DIR_REG_TYPE  *  ) ( 0x80840000 + 0x34 ),//         (GPIO_INT_TYPE1_REG_TYPE *  ) ( 0x80840000 + 0x4C ),//         (GPIO_INT_TYPE2_REG_TYPE *  ) ( 0x80840000 + 0x50 ),//         (GPIO_INT_EN_REG_TYPE    *  ) ( 0x80840000 + 0x58 ),//         (GPIO_INT_STATUS_TYPE    *  ) ( 0x80840000 + 0x5C ),//         (GPIO_INT_STATUS_TYPE    *  ) ( 0x80840000 + 0x60 ),//         (GPIO_DEBOUNCE_REG_TYPE  *  ) ( 0x80840000 + 0x64 )//     },// //     // Port G//     {//         (GPIO_DATA_REG_TYPE      *  ) ( 0x80840000 + 0x38 ),//         (GPIO_DATA_DIR_REG_TYPE  *  ) ( 0x80840000 + 0x3C ),//         (GPIO_INT_TYPE1_REG_TYPE *  ) 0,//         (GPIO_INT_TYPE2_REG_TYPE *  ) 0,//         (GPIO_INT_EN_REG_TYPE    *  ) 0,//         (GPIO_INT_STATUS_TYPE    *  ) 0,//         (GPIO_INT_STATUS_TYPE    *  ) 0,//         (GPIO_DEBOUNCE_REG_TYPE  *  ) 0//     },// //     // Port H//     {//         (GPIO_DATA_REG_TYPE      *  ) ( 0x80840000 + 0x40 ),//         (GPIO_DATA_DIR_REG_TYPE  *  ) ( 0x80840000 + 0x44 ),//         (GPIO_INT_TYPE1_REG_TYPE *  ) 0,//         (GPIO_INT_TYPE2_REG_TYPE *  ) 0,//         (GPIO_INT_EN_REG_TYPE    *  ) 0,//         (GPIO_INT_STATUS_TYPE    *  ) 0,//         (GPIO_INT_STATUS_TYPE    *  ) 0,//         (GPIO_DEBOUNCE_REG_TYPE  *  ) 0//     }// };    //-----------------------------------------------------------------------------// Bit definitionses//-----------------------------------------------------------------------------//=============================================================================//=============================================================================#endif /* _REGS_GPIO_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -