diff --git a/firmware/panic.c b/firmware/panic.c index 3dd5e157bf..df8afdfda3 100644 --- a/firmware/panic.c +++ b/firmware/panic.c @@ -19,10 +19,12 @@ #include #include +#include #include "panic.h" #include "lcd.h" #include "font.h" #include "debug.h" +#include "led.h" static char panic_buf[128]; @@ -34,6 +36,8 @@ void panicf( char *fmt, ...) va_list ap; #ifndef SIMULATOR + bool state = false; + /* Disable interrupts */ asm volatile ("ldc\t%0,sr" : : "r"(15<<4)); #endif @@ -44,17 +48,36 @@ void panicf( char *fmt, ...) #ifdef HAVE_LCD_CHARCELLS lcd_double_height(false); - lcd_puts(0,0,panic_buf); + lcd_puts(0,0,"*PANIC*"); + lcd_puts(0,1,panic_buf); #elif defined(HAVE_LCD_BITMAP) lcd_clear_display(); - lcd_setfont(FONT_SYSFIXED); - lcd_putsxy(0,0,panic_buf); + lcd_puts(0,0,"*PANIC*"); + { + /* wrap panic line */ + int i, y=1, len = strlen(panic_buf); + for (i=0; i