diff options
| author | Björn Stenberg <bjorn@haxx.se> | 2003-06-29 15:09:01 +0000 |
|---|---|---|
| committer | Björn Stenberg <bjorn@haxx.se> | 2003-06-29 15:09:01 +0000 |
| commit | 9bcbe3fd723d23a709873a0855f27b86bc5c96f1 (patch) | |
| tree | 480b63814f0f6571b8dcdf81578a9ea8399e19fe | |
| parent | 0dcc4a6fb95b4d567425ebeaabc9b6abfa0c754d (diff) | |
| download | rockbox-9bcbe3fd723d23a709873a0855f27b86bc5c96f1.zip rockbox-9bcbe3fd723d23a709873a0855f27b86bc5c96f1.tar.gz rockbox-9bcbe3fd723d23a709873a0855f27b86bc5c96f1.tar.bz2 rockbox-9bcbe3fd723d23a709873a0855f27b86bc5c96f1.tar.xz | |
Added restart option to system exception screen (press ON)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3768 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | firmware/system.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/firmware/system.c b/firmware/system.c index 3f75e02..1d5bb21 100644 --- a/firmware/system.c +++ b/firmware/system.c @@ -23,6 +23,7 @@ #include "font.h" #include "led.h" #include "system.h" +#include "rolo.h" #define default_interrupt(name,number) \ extern __attribute__((weak,alias("UIE" #number))) void name (void); void UIE##number (void) @@ -323,7 +324,7 @@ void UIE (unsigned int pc) /* Unexpected Interrupt or Exception */ char str[32]; asm volatile ("sts\tpr,%0" : "=r"(n)); - + /* clear screen */ lcd_clear_display (); #ifdef HAVE_LCD_BITMAP @@ -347,6 +348,15 @@ void UIE (unsigned int pc) /* Unexpected Interrupt or Exception */ state = state?false:true; for (i = 0; i < 240000; ++i); + + /* try to restart firmware if ON is pressed */ +#ifdef HAVE_LCD_CHARCELLS + if (!(PADR & 0x20)) + rolo_load("/archos.mod"); +#else + if (!(PBDR & PBDR_BTN_ON)) + rolo_load("/ajbrec.ajz"); +#endif } } |