/* PRU_CTRL register set */ typedef struct{ /* PRU_CTRL_CONTROL register bit field */ union { volatile uint32_t CTRL; volatile struct{ unsigned SOFT_RST_N : 1; unsigned EN : 1; unsigned SLEEPING : 1; unsigned CTR_EN : 1; unsigned rsvd4 : 4; unsigned SINGLE_STEP : 1; unsigned rsvd9 : 6; unsigned RUNSTATE : 1; unsigned PCTR_RST_VAL : 16; } CONTROL_bit; } ; // 0x0 /* PRU_CTRL_STATUS register bit field */ union { volatile uint32_t STS; volatile struct{ unsigned PCTR : 16; unsigned rsvd16 : 16; } STATUS_bit; } ; // 0x4 /* PRU_CTRL_WAKEUP_EN register bit field */ union { volatile uint32_t WAKEUP_EN; volatile struct{ unsigned BITWISE_ENS : 32; } WAKEUP_EN_bit; } ; // 0x8 /* PRU_CTRL_CYCLE register bit field */ union { volatile uint32_t CYCLE; volatile struct{ unsigned CYCLECOUNT : 32; } CYCLE_bit; } ; // 0xC /* PRU_CTRL_STALL register bit field */ union { volatile uint32_t STALL; volatile struct{ unsigned STALLCOUNT : 32; } STALL_bit; } ; // 0x10 uint32_t rsvd14[3]; // 0x14 - 0x1C /* PRU_CTRL_CTBIR0 register bit field */ union { volatile uint32_t CTBIR0; volatile struct{ unsigned C24_BLK_IDX : 8; unsigned rsvd8 : 8; unsigned C25_BLK_IDX : 8; unsigned rsvd24 : 8; } CTBIR0_bit; } ; // 0x20 /* PRU_CTRL_CTBIR1 register bit field */ union { volatile uint32_t CTBIR1; volatile struct{ unsigned C26_BLK_IDX : 8; unsigned rsvd8 : 8; unsigned C27_BLK_IDX : 8; unsigned rsvd24 : 8; } CTBIR1_bit; } ; // 0x24 /* PRU_CTRL_CTPPR0 register bit field */ union { volatile uint32_t CTPPR0; volatile struct{ unsigned C28_BLK_POINTER : 16; unsigned C29_BLK_POINTER : 16; } CTPPR0_bit; } ; // 0x28 /* PRU_CTRL_CTPPR1 register bit field */ union { volatile uint32_t CTPPR1; volatile struct{ unsigned C30_BLK_POINTER : 16; unsigned C31_BLK_POINTER : 16; } CTPPR1_bit; } ; // 0x2C } pruCtrl; /* Definition of control register structures. */ #define PRU0_CTRL (*((volatile pruCtrl*)0x22000)) #define PRU1_CTRL (*((volatile pruCtrl*)0x24000))