FreeRTOS+IO abstracts away the peripheral interface details, including the implementation of any interrupt service routines that may be required. Various different data transfer modes are catered for, using different techniques to both read and write data, making FreeRTOS+IO applicable to a wide range of applications.
View the quick and simple source code examples to understand the FreeRTOS+IO concept, and see its API in action. More comprehensive demonstrations come with the board support package(s) - including examples of FreeRTOS+IO and FreeRTOS+CLI being used to create a telnet like server that can be used to manipulate files on an SD card and view FreeRTOS statistics.
The FreeRTOS+IO layer sits between the user application and the peripherals.
| Transfer Mode | Data Direction | Description |
| Polled | Read and write | The most basic read and write mode, where busy waits are used instead of interrupts. |
| Interrupt driven circular buffer | Read only | An interrupt driven mode where received data is placed into a buffer by an interrupt service routine, reads then remove data from the buffer. |
| Interrupt driven zero copy | Write only | An efficient mode where an interrupt service routine transmits data directly from a write buffer, with not additional RAM required for intermediary storage, and no additional copy required. |
| Interrupt driven character queue | Read and write | A simple mode where FreeRTOS queues are used to buffer data between an interrupt service routine and the read or write operation. |