From 4f32bbc46a48276bba949364dc44d532c19dae78 Mon Sep 17 00:00:00 2001 From: taitep Date: Thu, 29 Jan 2026 21:27:36 +0100 Subject: i think i managed to make a working uart driver for the new interface?? --- src/syscalls.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/syscalls.c') diff --git a/src/syscalls.c b/src/syscalls.c index 443c9cd..5c5d577 100644 --- a/src/syscalls.c +++ b/src/syscalls.c @@ -44,17 +44,21 @@ int _lseek(int file, int ptr, int dir) { return 0; } int _open(const char *name, int flags, int mode) { return -1; } int _read(int file, char *buf, int len) { - while (!uart_rx_ready()) - ; + uint32_t uart_data; + do { + uart_data = UART_RXDATA; + } while (uart_data & UART_RXDATA_EMPTY); int i; for (i = 0; i < len; i++) { - if (!uart_rx_ready()) { + buf[i] = (char)uart_data; + uart_data = UART_RXDATA; + if (uart_data & UART_RXDATA_EMPTY) { break; } - buf[i] = uart_getc_nonblocking(); } - return i; + // *(volatile int *)1 = i; + return i + 1; } void *_sbrk(int incr) { @@ -91,9 +95,11 @@ int _wait(int *status) { } int _write(int file, char *buf, int len) { + // uart_puts("_write called\n"); for (int i = 0; i < len; i++) { uart_putc(buf[i]); } + // *(volatile int *)0 = len; return len; } -- cgit v1.2.3