#include #include #ifndef FLASH extern XIO *xio; #endif void putchar(int c) { #ifdef FLASH XIO *xio = (XIO*) 0x03000000; #endif xframe *debugframe = (xframe*) xio->dbg; debugframe->u.b[xio->debugcount++] = c; if((xio->debugcount == 128) || (c == '\n')) { debugframe->cmd = XCMD_DEBUG; debugframe->len = 8 + xio->debugcount; xio_rpc(xio, debugframe); xio->debugcount = 0; } } void puts(const char *s) { while(*s) putchar(*s++); } int kvprintf(char const *fmt, void (*func)(int), void *arg, int radix, va_list ap); int printf(const char *fmt, ...) { va_list ap; va_start(ap, fmt); kvprintf(fmt, (void(*)(int))putchar, 0, 10, ap); va_end(ap); return 0; }