void pok_fatal (const char* message) { pok_write ("FATAL ERROR: \n", 13); pok_write (message , debug_strlen(message)); POK_DEBUG_PRINT_CURRENT_STATE pok_arch_idle (); }
void debug_printf(const char* fmt, ...) { va_list list; int i; const char* str; if (!uart_isInit()) return; va_start(list, fmt); for (const char* ptr = fmt; *ptr != '\0'; ptr++) { if (*ptr != '%') { uart_send(ptr, 1); } else { ptr++; switch (*ptr) { case 0: return; case 'i': i = va_arg(list, int); itoa(i, strBuf, 10); uart_send(strBuf, debug_strlen(strBuf)); break; case 'x': i = va_arg(list, int); itoa(i, strBuf, 16); uart_send(strBuf, debug_strlen(strBuf)); break; case 's': str = va_arg(list, const char*); uart_send(str, debug_strlen(str)); break; } } } va_end(list); }