|
|
|
|
|
|
|
|
#define PGC_CPU_SR_PSR ((uint32_t)(1<<0)) |
|
|
#define PGC_CPU_SR_PSR ((uint32_t)(1<<0)) |
|
|
|
|
|
|
|
|
// 12.5.1: page 961 |
|
|
// 12.5.1: page 961 |
|
|
#define IMXRT_GPIO1 (*(IMXRT_REGISTER32_t *)0x401B8000) |
|
|
|
|
|
#define GPIO1_DR (IMXRT_GPIO1.offset000) |
|
|
|
|
|
#define GPIO1_GDIR (IMXRT_GPIO1.offset004) |
|
|
|
|
|
#define GPIO1_PSR (IMXRT_GPIO1.offset008) |
|
|
|
|
|
#define GPIO1_ICR1 (IMXRT_GPIO1.offset00C) |
|
|
|
|
|
#define GPIO1_ICR2 (IMXRT_GPIO1.offset010) |
|
|
|
|
|
#define GPIO1_IMR (IMXRT_GPIO1.offset014) |
|
|
|
|
|
#define GPIO1_ISR (IMXRT_GPIO1.offset018) |
|
|
|
|
|
#define GPIO1_EDGE_SEL (IMXRT_GPIO1.offset01C) |
|
|
|
|
|
#define GPIO1_DR_SET (IMXRT_GPIO1.offset084) |
|
|
|
|
|
#define GPIO1_DR_CLEAR (IMXRT_GPIO1.offset088) |
|
|
|
|
|
#define GPIO1_DR_TOGGLE (IMXRT_GPIO1.offset08C) |
|
|
|
|
|
#define IMXRT_GPIO2 (*(IMXRT_REGISTER32_t *)0x401BC000) |
|
|
|
|
|
#define GPIO2_DR (IMXRT_GPIO2.offset000) |
|
|
|
|
|
#define GPIO2_GDIR (IMXRT_GPIO2.offset004) |
|
|
|
|
|
#define GPIO2_PSR (IMXRT_GPIO2.offset008) |
|
|
|
|
|
#define GPIO2_ICR1 (IMXRT_GPIO2.offset00C) |
|
|
|
|
|
#define GPIO2_ICR2 (IMXRT_GPIO2.offset010) |
|
|
|
|
|
#define GPIO2_IMR (IMXRT_GPIO2.offset014) |
|
|
|
|
|
#define GPIO2_ISR (IMXRT_GPIO2.offset018) |
|
|
|
|
|
#define GPIO2_EDGE_SEL (IMXRT_GPIO2.offset01C) |
|
|
|
|
|
#define GPIO2_DR_SET (IMXRT_GPIO2.offset084) |
|
|
|
|
|
#define GPIO2_DR_CLEAR (IMXRT_GPIO2.offset088) |
|
|
|
|
|
#define GPIO2_DR_TOGGLE (IMXRT_GPIO2.offset08C) |
|
|
|
|
|
#define IMXRT_GPIO3 (*(IMXRT_REGISTER32_t *)0x401C0000) |
|
|
|
|
|
#define GPIO3_DR (IMXRT_GPIO3.offset000) |
|
|
|
|
|
#define GPIO3_GDIR (IMXRT_GPIO3.offset004) |
|
|
|
|
|
#define GPIO3_PSR (IMXRT_GPIO3.offset008) |
|
|
|
|
|
#define GPIO3_ICR1 (IMXRT_GPIO3.offset00C) |
|
|
|
|
|
#define GPIO3_ICR2 (IMXRT_GPIO3.offset010) |
|
|
|
|
|
#define GPIO3_IMR (IMXRT_GPIO3.offset014) |
|
|
|
|
|
#define GPIO3_ISR (IMXRT_GPIO3.offset018) |
|
|
|
|
|
#define GPIO3_EDGE_SEL (IMXRT_GPIO3.offset01C) |
|
|
|
|
|
#define GPIO3_DR_SET (IMXRT_GPIO3.offset084) |
|
|
|
|
|
#define GPIO3_DR_CLEAR (IMXRT_GPIO3.offset088) |
|
|
|
|
|
#define GPIO3_DR_TOGGLE (IMXRT_GPIO3.offset08C) |
|
|
|
|
|
#define IMXRT_GPIO4 (*(IMXRT_REGISTER32_t *)0x401C4000) |
|
|
|
|
|
#define GPIO4_DR (IMXRT_GPIO4.offset000) |
|
|
|
|
|
#define GPIO4_GDIR (IMXRT_GPIO4.offset004) |
|
|
|
|
|
#define GPIO4_PSR (IMXRT_GPIO4.offset008) |
|
|
|
|
|
#define GPIO4_ICR1 (IMXRT_GPIO4.offset00C) |
|
|
|
|
|
#define GPIO4_ICR2 (IMXRT_GPIO4.offset010) |
|
|
|
|
|
#define GPIO4_IMR (IMXRT_GPIO4.offset014) |
|
|
|
|
|
#define GPIO4_ISR (IMXRT_GPIO4.offset018) |
|
|
|
|
|
#define GPIO4_EDGE_SEL (IMXRT_GPIO4.offset01C) |
|
|
|
|
|
#define GPIO4_DR_SET (IMXRT_GPIO4.offset084) |
|
|
|
|
|
#define GPIO4_DR_CLEAR (IMXRT_GPIO4.offset088) |
|
|
|
|
|
#define GPIO4_DR_TOGGLE (IMXRT_GPIO4.offset08C) |
|
|
|
|
|
#define IMXRT_GPIO5 (*(IMXRT_REGISTER32_t *)0x400C0000) |
|
|
|
|
|
#define GPIO5_DR (IMXRT_GPIO5.offset000) |
|
|
|
|
|
#define GPIO5_GDIR (IMXRT_GPIO5.offset004) |
|
|
|
|
|
#define GPIO5_PSR (IMXRT_GPIO5.offset008) |
|
|
|
|
|
#define GPIO5_ICR1 (IMXRT_GPIO5.offset00C) |
|
|
|
|
|
#define GPIO5_ICR2 (IMXRT_GPIO5.offset010) |
|
|
|
|
|
#define GPIO5_IMR (IMXRT_GPIO5.offset014) |
|
|
|
|
|
#define GPIO5_ISR (IMXRT_GPIO5.offset018) |
|
|
|
|
|
#define GPIO5_EDGE_SEL (IMXRT_GPIO5.offset01C) |
|
|
|
|
|
#define GPIO5_DR_SET (IMXRT_GPIO5.offset084) |
|
|
|
|
|
#define GPIO5_DR_CLEAR (IMXRT_GPIO5.offset088) |
|
|
|
|
|
#define GPIO5_DR_TOGGLE (IMXRT_GPIO5.offset08C) |
|
|
|
|
|
#define IMXRT_GPIO6 (*(IMXRT_REGISTER32_t *)0x42000000) |
|
|
|
|
|
#define GPIO6_DR (IMXRT_GPIO6.offset000) |
|
|
|
|
|
#define GPIO6_GDIR (IMXRT_GPIO6.offset004) |
|
|
|
|
|
#define GPIO6_PSR (IMXRT_GPIO6.offset008) |
|
|
|
|
|
#define GPIO6_ICR1 (IMXRT_GPIO6.offset00C) |
|
|
|
|
|
#define GPIO6_ICR2 (IMXRT_GPIO6.offset010) |
|
|
|
|
|
#define GPIO6_IMR (IMXRT_GPIO6.offset014) |
|
|
|
|
|
#define GPIO6_ISR (IMXRT_GPIO6.offset018) |
|
|
|
|
|
#define GPIO6_EDGE_SEL (IMXRT_GPIO6.offset01C) |
|
|
|
|
|
#define GPIO6_DR_SET (IMXRT_GPIO6.offset084) |
|
|
|
|
|
#define GPIO6_DR_CLEAR (IMXRT_GPIO6.offset088) |
|
|
|
|
|
#define GPIO6_DR_TOGGLE (IMXRT_GPIO6.offset08C) |
|
|
|
|
|
#define IMXRT_GPIO7 (*(IMXRT_REGISTER32_t *)0x42004000) |
|
|
|
|
|
#define GPIO7_DR (IMXRT_GPIO7.offset000) |
|
|
|
|
|
#define GPIO7_GDIR (IMXRT_GPIO7.offset004) |
|
|
|
|
|
#define GPIO7_PSR (IMXRT_GPIO7.offset008) |
|
|
|
|
|
#define GPIO7_ICR1 (IMXRT_GPIO7.offset00C) |
|
|
|
|
|
#define GPIO7_ICR2 (IMXRT_GPIO7.offset010) |
|
|
|
|
|
#define GPIO7_IMR (IMXRT_GPIO7.offset014) |
|
|
|
|
|
#define GPIO7_ISR (IMXRT_GPIO7.offset018) |
|
|
|
|
|
#define GPIO7_EDGE_SEL (IMXRT_GPIO7.offset01C) |
|
|
|
|
|
#define GPIO7_DR_SET (IMXRT_GPIO7.offset084) |
|
|
|
|
|
#define GPIO7_DR_CLEAR (IMXRT_GPIO7.offset088) |
|
|
|
|
|
#define GPIO7_DR_TOGGLE (IMXRT_GPIO7.offset08C) |
|
|
|
|
|
#define IMXRT_GPIO8 (*(IMXRT_REGISTER32_t *)0x42008000) |
|
|
|
|
|
#define GPIO8_DR (IMXRT_GPIO8.offset000) |
|
|
|
|
|
#define GPIO8_GDIR (IMXRT_GPIO8.offset004) |
|
|
|
|
|
#define GPIO8_PSR (IMXRT_GPIO8.offset008) |
|
|
|
|
|
#define GPIO8_ICR1 (IMXRT_GPIO8.offset00C) |
|
|
|
|
|
#define GPIO8_ICR2 (IMXRT_GPIO8.offset010) |
|
|
|
|
|
#define GPIO8_IMR (IMXRT_GPIO8.offset014) |
|
|
|
|
|
#define GPIO8_ISR (IMXRT_GPIO8.offset018) |
|
|
|
|
|
#define GPIO8_EDGE_SEL (IMXRT_GPIO8.offset01C) |
|
|
|
|
|
#define GPIO8_DR_SET (IMXRT_GPIO8.offset084) |
|
|
|
|
|
#define GPIO8_DR_CLEAR (IMXRT_GPIO8.offset088) |
|
|
|
|
|
#define GPIO8_DR_TOGGLE (IMXRT_GPIO8.offset08C) |
|
|
|
|
|
#define IMXRT_GPIO9 (*(IMXRT_REGISTER32_t *)0x4200C000) |
|
|
|
|
|
#define GPIO9_DR (IMXRT_GPIO9.offset000) |
|
|
|
|
|
#define GPIO9_GDIR (IMXRT_GPIO9.offset004) |
|
|
|
|
|
#define GPIO9_PSR (IMXRT_GPIO9.offset008) |
|
|
|
|
|
#define GPIO9_ICR1 (IMXRT_GPIO9.offset00C) |
|
|
|
|
|
#define GPIO9_ICR2 (IMXRT_GPIO9.offset010) |
|
|
|
|
|
#define GPIO9_IMR (IMXRT_GPIO9.offset014) |
|
|
|
|
|
#define GPIO9_ISR (IMXRT_GPIO9.offset018) |
|
|
|
|
|
#define GPIO9_EDGE_SEL (IMXRT_GPIO9.offset01C) |
|
|
|
|
|
#define GPIO9_DR_SET (IMXRT_GPIO9.offset084) |
|
|
|
|
|
#define GPIO9_DR_CLEAR (IMXRT_GPIO9.offset088) |
|
|
|
|
|
#define GPIO9_DR_TOGGLE (IMXRT_GPIO9.offset08C) |
|
|
|
|
|
|
|
|
typedef struct { |
|
|
|
|
|
volatile uint32_t DR; // 00 |
|
|
|
|
|
volatile uint32_t GDIR; // 04 |
|
|
|
|
|
volatile uint32_t PSR; // 08 |
|
|
|
|
|
volatile uint32_t ICR1; // 0C |
|
|
|
|
|
volatile uint32_t ICR2; // 10 |
|
|
|
|
|
volatile uint32_t IMR; // 14 |
|
|
|
|
|
volatile uint32_t ICR; // 18 |
|
|
|
|
|
volatile uint32_t EDGE_SEL; // 1C |
|
|
|
|
|
uint32_t UNUSED[25]; // 20 - 83 |
|
|
|
|
|
volatile uint32_t DR_SET; // 84 |
|
|
|
|
|
volatile uint32_t DR_CLEAR; // 88 |
|
|
|
|
|
volatile uint32_t DR_TOGGLE; // 8C |
|
|
|
|
|
|
|
|
|
|
|
} IMXRT_GPIO_t; |
|
|
|
|
|
|
|
|
|
|
|
#define IMXRT_GPIO1 (*(IMXRT_GPIO_t *)0x401B8000) |
|
|
|
|
|
#define GPIO1_DR (IMXRT_GPIO1.DR) |
|
|
|
|
|
#define GPIO1_GDIR (IMXRT_GPIO1.GDIR) |
|
|
|
|
|
#define GPIO1_PSR (IMXRT_GPIO1.PSR) |
|
|
|
|
|
#define GPIO1_ICR1 (IMXRT_GPIO1.ICR1) |
|
|
|
|
|
#define GPIO1_ICR2 (IMXRT_GPIO1.ICR2) |
|
|
|
|
|
#define GPIO1_IMR (IMXRT_GPIO1.IMR) |
|
|
|
|
|
#define GPIO1_ISR (IMXRT_GPIO1.ISR) |
|
|
|
|
|
#define GPIO1_EDGE_SEL (IMXRT_GPIO1.EDGE_SEL) |
|
|
|
|
|
#define GPIO1_DR_SET (IMXRT_GPIO1.DR_SET) |
|
|
|
|
|
#define GPIO1_DR_CLEAR (IMXRT_GPIO1.DR_CLEAR) |
|
|
|
|
|
#define GPIO1_DR_TOGGLE (IMXRT_GPIO1.DR_TOGGLE) |
|
|
|
|
|
#define IMXRT_GPIO2 (*(IMXRT_GPIO_t *)0x401BC000) |
|
|
|
|
|
#define GPIO2_DR (IMXRT_GPIO2.DR) |
|
|
|
|
|
#define GPIO2_GDIR (IMXRT_GPIO2.GDIR) |
|
|
|
|
|
#define GPIO2_PSR (IMXRT_GPIO2.PSR) |
|
|
|
|
|
#define GPIO2_ICR1 (IMXRT_GPIO2.ICR1) |
|
|
|
|
|
#define GPIO2_ICR2 (IMXRT_GPIO2.ICR2) |
|
|
|
|
|
#define GPIO2_IMR (IMXRT_GPIO2.IMR) |
|
|
|
|
|
#define GPIO2_ISR (IMXRT_GPIO2.ISR) |
|
|
|
|
|
#define GPIO2_EDGE_SEL (IMXRT_GPIO2.EDGE_SEL) |
|
|
|
|
|
#define GPIO2_DR_SET (IMXRT_GPIO2.DR_SET) |
|
|
|
|
|
#define GPIO2_DR_CLEAR (IMXRT_GPIO2.DR_CLEAR) |
|
|
|
|
|
#define GPIO2_DR_TOGGLE (IMXRT_GPIO2.DR_TOGGLE) |
|
|
|
|
|
#define IMXRT_GPIO3 (*(IMXRT_GPIO_t *)0x401C0000) |
|
|
|
|
|
#define GPIO3_DR (IMXRT_GPIO3.DR) |
|
|
|
|
|
#define GPIO3_GDIR (IMXRT_GPIO3.GDIR) |
|
|
|
|
|
#define GPIO3_PSR (IMXRT_GPIO3.PSR) |
|
|
|
|
|
#define GPIO3_ICR1 (IMXRT_GPIO3.ICR1) |
|
|
|
|
|
#define GPIO3_ICR2 (IMXRT_GPIO3.ICR2) |
|
|
|
|
|
#define GPIO3_IMR (IMXRT_GPIO3.IMR) |
|
|
|
|
|
#define GPIO3_ISR (IMXRT_GPIO3.ISR) |
|
|
|
|
|
#define GPIO3_EDGE_SEL (IMXRT_GPIO3.EDGE_SEL) |
|
|
|
|
|
#define GPIO3_DR_SET (IMXRT_GPIO3.DR_SET) |
|
|
|
|
|
#define GPIO3_DR_CLEAR (IMXRT_GPIO3.DR_CLEAR) |
|
|
|
|
|
#define GPIO3_DR_TOGGLE (IMXRT_GPIO3.DR_TOGGLE) |
|
|
|
|
|
#define IMXRT_GPIO4 (*(IMXRT_GPIO_t *)0x401C4000) |
|
|
|
|
|
#define GPIO4_DR (IMXRT_GPIO4.DR) |
|
|
|
|
|
#define GPIO4_GDIR (IMXRT_GPIO4.GDIR) |
|
|
|
|
|
#define GPIO4_PSR (IMXRT_GPIO4.PSR) |
|
|
|
|
|
#define GPIO4_ICR1 (IMXRT_GPIO4.ICR1) |
|
|
|
|
|
#define GPIO4_ICR2 (IMXRT_GPIO4.ICR2) |
|
|
|
|
|
#define GPIO4_IMR (IMXRT_GPIO4.IMR) |
|
|
|
|
|
#define GPIO4_ISR (IMXRT_GPIO4.ISR) |
|
|
|
|
|
#define GPIO4_EDGE_SEL (IMXRT_GPIO4.EDGE_SEL) |
|
|
|
|
|
#define GPIO4_DR_SET (IMXRT_GPIO4.DR_SET) |
|
|
|
|
|
#define GPIO4_DR_CLEAR (IMXRT_GPIO4.DR_CLEAR) |
|
|
|
|
|
#define GPIO4_DR_TOGGLE (IMXRT_GPIO4.DR_TOGGLE) |
|
|
|
|
|
#define IMXRT_GPIO5 (*(IMXRT_GPIO_t *)0x400C0000) |
|
|
|
|
|
#define GPIO5_DR (IMXRT_GPIO5.DR) |
|
|
|
|
|
#define GPIO5_GDIR (IMXRT_GPIO5.GDIR) |
|
|
|
|
|
#define GPIO5_PSR (IMXRT_GPIO5.PSR) |
|
|
|
|
|
#define GPIO5_ICR1 (IMXRT_GPIO5.ICR1) |
|
|
|
|
|
#define GPIO5_ICR2 (IMXRT_GPIO5.ICR2) |
|
|
|
|
|
#define GPIO5_IMR (IMXRT_GPIO5.IMR) |
|
|
|
|
|
#define GPIO5_ISR (IMXRT_GPIO5.ISR) |
|
|
|
|
|
#define GPIO5_EDGE_SEL (IMXRT_GPIO5.EDGE_SEL) |
|
|
|
|
|
#define GPIO5_DR_SET (IMXRT_GPIO5.DR_SET) |
|
|
|
|
|
#define GPIO5_DR_CLEAR (IMXRT_GPIO5.DR_CLEAR) |
|
|
|
|
|
#define GPIO5_DR_TOGGLE (IMXRT_GPIO5.DR_TOGGLE) |
|
|
|
|
|
#define IMXRT_GPIO6 (*(IMXRT_GPIO_t *)0x42000000) |
|
|
|
|
|
#define GPIO6_DR (IMXRT_GPIO6.DR) |
|
|
|
|
|
#define GPIO6_GDIR (IMXRT_GPIO6.GDIR) |
|
|
|
|
|
#define GPIO6_PSR (IMXRT_GPIO6.PSR) |
|
|
|
|
|
#define GPIO6_ICR1 (IMXRT_GPIO6.ICR1) |
|
|
|
|
|
#define GPIO6_ICR2 (IMXRT_GPIO6.ICR2) |
|
|
|
|
|
#define GPIO6_IMR (IMXRT_GPIO6.IMR) |
|
|
|
|
|
#define GPIO6_ISR (IMXRT_GPIO6.ISR) |
|
|
|
|
|
#define GPIO6_EDGE_SEL (IMXRT_GPIO6.EDGE_SEL) |
|
|
|
|
|
#define GPIO6_DR_SET (IMXRT_GPIO6.DR_SET) |
|
|
|
|
|
#define GPIO6_DR_CLEAR (IMXRT_GPIO6.DR_CLEAR) |
|
|
|
|
|
#define GPIO6_DR_TOGGLE (IMXRT_GPIO6.DR_TOGGLE) |
|
|
|
|
|
#define IMXRT_GPIO7 (*(IMXRT_GPIO_t *)0x42004000) |
|
|
|
|
|
#define GPIO7_DR (IMXRT_GPIO7.DR) |
|
|
|
|
|
#define GPIO7_GDIR (IMXRT_GPIO7.GDIR) |
|
|
|
|
|
#define GPIO7_PSR (IMXRT_GPIO7.PSR) |
|
|
|
|
|
#define GPIO7_ICR1 (IMXRT_GPIO7.ICR1) |
|
|
|
|
|
#define GPIO7_ICR2 (IMXRT_GPIO7.ICR2) |
|
|
|
|
|
#define GPIO7_IMR (IMXRT_GPIO7.IMR) |
|
|
|
|
|
#define GPIO7_ISR (IMXRT_GPIO7.ISR) |
|
|
|
|
|
#define GPIO7_EDGE_SEL (IMXRT_GPIO7.EDGE_SEL) |
|
|
|
|
|
#define GPIO7_DR_SET (IMXRT_GPIO7.DR_SET) |
|
|
|
|
|
#define GPIO7_DR_CLEAR (IMXRT_GPIO7.DR_CLEAR) |
|
|
|
|
|
#define GPIO7_DR_TOGGLE (IMXRT_GPIO7.DR_TOGGLE) |
|
|
|
|
|
#define IMXRT_GPIO8 (*(IMXRT_GPIO_t *)0x42008000) |
|
|
|
|
|
#define GPIO8_DR (IMXRT_GPIO8.DR) |
|
|
|
|
|
#define GPIO8_GDIR (IMXRT_GPIO8.GDIR) |
|
|
|
|
|
#define GPIO8_PSR (IMXRT_GPIO8.PSR) |
|
|
|
|
|
#define GPIO8_ICR1 (IMXRT_GPIO8.ICR1) |
|
|
|
|
|
#define GPIO8_ICR2 (IMXRT_GPIO8.ICR2) |
|
|
|
|
|
#define GPIO8_IMR (IMXRT_GPIO8.IMR) |
|
|
|
|
|
#define GPIO8_ISR (IMXRT_GPIO8.ISR) |
|
|
|
|
|
#define GPIO8_EDGE_SEL (IMXRT_GPIO8.EDGE_SEL) |
|
|
|
|
|
#define GPIO8_DR_SET (IMXRT_GPIO8.DR_SET) |
|
|
|
|
|
#define GPIO8_DR_CLEAR (IMXRT_GPIO8.DR_CLEAR) |
|
|
|
|
|
#define GPIO8_DR_TOGGLE (IMXRT_GPIO8.DR_TOGGLE) |
|
|
|
|
|
#define IMXRT_GPIO9 (*(IMXRT_GPIO_t *)0x4200C000) |
|
|
|
|
|
#define GPIO9_DR (IMXRT_GPIO9.DR) |
|
|
|
|
|
#define GPIO9_GDIR (IMXRT_GPIO9.GDIR) |
|
|
|
|
|
#define GPIO9_PSR (IMXRT_GPIO9.PSR) |
|
|
|
|
|
#define GPIO9_ICR1 (IMXRT_GPIO9.ICR1) |
|
|
|
|
|
#define GPIO9_ICR2 (IMXRT_GPIO9.ICR2) |
|
|
|
|
|
#define GPIO9_IMR (IMXRT_GPIO9.IMR) |
|
|
|
|
|
#define GPIO9_ISR (IMXRT_GPIO9.ISR) |
|
|
|
|
|
#define GPIO9_EDGE_SEL (IMXRT_GPIO9.EDGE_SEL) |
|
|
|
|
|
#define GPIO9_DR_SET (IMXRT_GPIO9.DR_SET) |
|
|
|
|
|
#define GPIO9_DR_CLEAR (IMXRT_GPIO9.DR_CLEAR) |
|
|
|
|
|
#define GPIO9_DR_TOGGLE (IMXRT_GPIO9.DR_TOGGLE) |
|
|
|
|
|
|
|
|
// 52.7: page 2957 |
|
|
// 52.7: page 2957 |
|
|
#define IMXRT_GPT1 (*(IMXRT_REGISTER32_t *)0x401EC000) |
|
|
#define IMXRT_GPT1 (*(IMXRT_REGISTER32_t *)0x401EC000) |