Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void init_gpio(void)
- {
- /* PRU GPIOs */
- GPIO1_CTRL = 0x00000001; /* enable, full clock speed */
- GPIO1_OE &= ~(LED0_BIT | LED1_BIT | LED2_BIT | LED3_BIT);
- GPIO1_OE &= ~(0x80000000); /* PRU1 connector P8 pin 20 */
- /* pin mux pin A13 mcasp0_aclkx (GPIO3_14) -> pru0_r31_0 (mode6) */
- /* 28 bit shift mode is set up in PRU0 */
- GPIO3_CTRL = 0x00000001; /* enable, full clock speed */
- GPIO3_OE |= 1 << 14;
- GPIO3_DEBOUNCENABLE |= 1 << 14;
- CONF_MCASP0_ACLKX = 0x06;
- /* pin mux pin R1 lcd_data0 (GPIO2_6) -> pru1_r31_0 (mode6) */
- /* 28 bit shift mode is set up in PRU1 */
- GPIO2_CTRL = 0x00000001; /* enable, full clock speed */
- GPIO2_OE |= 1 << 6;
- GPIO2_DEBOUNCENABLE |= 1 << 6;
- CONF_LCD_DATA0 = 0x06;
- }
- START:
- // constant 4: PRU-ICSS CFG, register SYSCFG
- LBCO r0, C4, 0x04, 4
- CLR r0, r0, 4 // clear b4: Enable OCP master ports
- SBCO r0, C4, 0x04, 4
- // PRU0
- // constant 4: PRU-ICSS CFG, register GPCFG0
- // set up serial 28 bit shift mode
- // at 200 MHz
- MOV r20, 0x00000002
- SBCO r20, C4, 0x08, 4
- // r20 as write shadow of GPCFG0
- SET r20, r20, 13
- // PRU1
- // constant 4: PRU-ICSS CFG, register GPCFG1
- // set up serial 28 bit shift mode
- // at 200 MHz
- MOV r21, 0x00000002
- SBCO r21, C4, 0x0c, 4
- // r21 as write shadow of GPCFG1
- SET r21, r21, 13
- start_capture28:
- CLR r31, 29
- SBCO r20, C4, 0x08, 4
- SBCO r21, C4, 0x0c, 4
- poll_capture28_done:
- // // r22 as read shadow of GPCFG0
- // LBCO r22, C4, 0x08, 4
- // QBBS capture28_done, r22, 13
- // // r23 as read shadow of GPCFG0
- // LBCO r23, C4, 0x08, 4
- // QBBC poll_capture28_done, r23, 13
- QBBC poll_capture28_done, r31, 29
- capture28_done:
- // raise ARM interrupt
- MOV R31.b0, PRU_VECTOR_VALID + PRU_VECTOR + PRU_NR
- JMP start_capture28
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement