Overview
The io. object controls your Size 3 Linux Tibbo Project PCB (LTPP3), Gen. 2's individual I/O lines and ports. Each port groups eight I/O lines. You can control the state of each line or entire port individually.
Two enum constant sets — pl_io_num and pl_io_port_num — define the set of available lines and ports, respectively.
There are two different methods for controlling I/O lines (ports):
The I/O lines of your LTPP3(G2) can work as both inputs and outputs — Controlling Output Buffers explains this.
The Plus1 SoC at the heart of the LTPP3(G2) features Flexible Peripheral Multiplexing (PinMux), which allows you to map nearly any I/O line to suit your needs. This greatly increases the options when configuring your system's lines. In practical terms, it also means that any I/O line can serve as one of your eight interrupts, but some extra care is required during configuration compared with TiOS-based platforms. See Working With Interrupts for the explanation. The pl_int_num enum defines the set of related constants.
A number of I/O lines may be shared with the inputs/outputs of special function blocks (serial ports, etc.). When a special function block is enabled, the I/O lines it uses cannot (should not) be manipulated though the io. object.