57 lines
777 B
C
57 lines
777 B
C
#include "common.h"
|
|
#include "bus/uart.h"
|
|
|
|
#include <stdio.h>
|
|
|
|
static void Puts(const char *str);
|
|
static void PrintArgs(const char *fmt, va_list ap);
|
|
|
|
void Print(const char *fmt, ...)
|
|
{
|
|
va_list ap;
|
|
|
|
va_start(ap, fmt);
|
|
PrintArgs(fmt, ap);
|
|
va_end(ap);
|
|
}
|
|
|
|
void Info(const char *fmt, ...)
|
|
{
|
|
va_list ap;
|
|
|
|
va_start(ap, fmt);
|
|
Puts("[CORE] ");
|
|
PrintArgs(fmt, ap);
|
|
Puts("\r\n");
|
|
va_end(ap);
|
|
}
|
|
|
|
void Error(const char *fmt, ...)
|
|
{
|
|
va_list ap;
|
|
|
|
va_start(ap, fmt);
|
|
Puts("[CORE] Error: ");
|
|
PrintArgs(fmt, ap);
|
|
Puts("\r\n");
|
|
va_end(ap);
|
|
|
|
// XXX: Force reset?
|
|
}
|
|
|
|
static void Puts(const char *str)
|
|
{
|
|
while (*str != '\0') {
|
|
UART_Putc(*str++);
|
|
}
|
|
}
|
|
|
|
static void PrintArgs(const char *fmt, va_list ap)
|
|
{
|
|
char msg[256];
|
|
|
|
vsnprintf(msg, sizeof(msg), fmt, ap);
|
|
|
|
Puts(msg);
|
|
}
|