Each of the 4 GPIO ports contains 8 ouput and 8 input pins. The ports are not as fast as the integrated GPIO ports of the microcontroller.
The code snippets below show how to use the GPIO.
#include "reg_ctboard.h" uint8_t data_byte = CT_GPIO->IN.BYTE.P1; /* Read byte from P1. */ uint16_t data_hword = CT_GPIO->IN.HWORD.P2_1; /* Read half word from P1 and P2. */ uint32_t data_word = CT_GPIO->IN.WORD; /* Read word from all ports (P1..4). */ CT_GPIO->OUT.BYTE.P3 = (uint8_t) data_byte; /* Write byte of data to P3. */ CT_GPIO->OUT.HWORD.P4_3 = (uint16_t) data_halfword; /* Write halfword of data to P3..4 */ CT_GPIO->OUT.WORD = (uint32_t) data_word; /* Write word of data to all ports (P1..4). */
.equ ADDR_GPIO_IN, 0x60000410
.equ ADDR_GPIO_OUT, 0x60000400
ldr r0, =ADDR_GPIO_IN
ldrb r1, [r0, #0] // Read byte from P1.
ldrw r1, [r0, #0] // Read half word from P1 and P2.
ldr r1, [r0, #0] // Read word from all ports (P1..4).
ldr r0, =ADDR_GPIO_OUT
strb r1, [r0, #2] // Write byte of data to P3.
strh r1, [r0, #2] // Write halfword of data to P3..4.
str r1, [r0, #0] // Write word of data to all ports (P1..4).