27 lines
600 B
C
27 lines
600 B
C
#include <uart.h>
|
|
#include <mini-printf.h>
|
|
#include <stddef.h>
|
|
|
|
int stdout_puts(char *s, int len, void *unused) {
|
|
(void)unused;
|
|
// Example: UART write loop
|
|
for (int i = 0; i < len; i++) {
|
|
uart_putc(s[i]); // <-- your low-level "put char" routine
|
|
}
|
|
return len;
|
|
}
|
|
|
|
/*
|
|
* %% - print '%'
|
|
* %c - character
|
|
* %s - string
|
|
* %d, %u - decimal integer
|
|
* %x, %X - hex integer
|
|
*/
|
|
int kprintf(const char *restrict fmt, ...) {
|
|
va_list ap;
|
|
va_start(ap, fmt);
|
|
int ret = mini_vpprintf(stdout_puts, NULL, fmt, ap);
|
|
va_end(ap);
|
|
return ret;
|
|
}
|