#include "stdint.h" #include "stdarg.h" #include "string.h" #include "uart.h" uint8_t console = UART_ID_0; extern void uart_write_block(uint8_t uart_id, uint8_t *data, uint32_t length); int putchar(int c) { uart_write_block(console, (uint8_t *)c, 1); return c; } int puts(const char *c) { int len; len = strlen(c); uart_write_block(console, (uint8_t *)c, len); return len; } int putstring(const char *c) { int len; if (c == NULL) { return 0; } len = strlen(c); uart_write_block(console, (uint8_t *)c, len); return len; } #if defined(CONFIG_VSNPRINTF_NANO) && CONFIG_VSNPRINTF_NANO int printf(const char *fmt, ...) { char print_buf[512]; int len; va_list ap; va_start(ap, fmt); len = vsnprintf(print_buf, sizeof(print_buf), fmt, ap); va_end(ap); len = (len > sizeof(print_buf)) ? sizeof(print_buf) : len; uart_write_block(console, (uint8_t *)print_buf, len); return len; } #else extern int console_vsnprintf(const char *fmt, va_list args); int printf(const char *fmt, ...) { int len; va_list ap; va_start(ap, fmt); len = console_vsnprintf(fmt, ap); va_end(ap); return len; } #endif