diff --git a/pycardium/mphalport.c b/pycardium/mphalport.c index b8ae7ec38b886b4fc3b97eed21cde3c4390c8e8d..fdfb592d8830699f8d222952d9a4f99095b60ae3 100644 --- a/pycardium/mphalport.c +++ b/pycardium/mphalport.c @@ -44,7 +44,21 @@ int DEBUG_printf(const char *fmt, ...) /* newlib syscall to allow printf to work */ long _write(int fd, const char *buf, size_t cnt) { - epic_uart_write_str(buf, cnt); + /* + * Only print one line at a time. Insert `\r` between lines so + * they are properly displayed on the serial console. + */ + size_t i, last = 0; + for (i = 0; i < cnt; i++) { + if (buf[i] == '\n') { + epic_uart_write_str(&buf[last], i - last); + epic_uart_write_str("\r", 1); + last = i; + } + } + if (last != i) { + epic_uart_write_str(&buf[last], cnt - last); + } return cnt; }