printf through uart
int __io_putchar(int ch) { // Code to write character 'ch' on the UART } int __io_getchar(void) { // Code to read a character from the UART }
The only thing that was not (yet) done by the provided code s to allow to open several “files” on various devices and write or read from them. For this to work you should just redefine _open, _read and _write, probably by modifying the syscalls.c file, and this will work seamlessly.
Furthermore, if you use some RTOS (like FreeRTOS) you can write your low-level I/O routines to sleep while waiting characters and send output using a buffer and interrupts; probably this would need modifying the _read and _write routines in a quite natural way.
Bernard