summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Arends <edx@rockbox.org>2002-06-24 11:35:13 +0000
committerFelix Arends <edx@rockbox.org>2002-06-24 11:35:13 +0000
commitb38c2d996d339a68f33a8b681cce359a86f65bcf (patch)
treec158eca05665a49e885e40392321302da53fe430
parentc40ac3249a851cdf5ed1f6e096a8411b569cb6ab (diff)
downloadrockbox-b38c2d996d339a68f33a8b681cce359a86f65bcf.tar.gz
rockbox-b38c2d996d339a68f33a8b681cce359a86f65bcf.zip
Exception handler clears and updates the screen now (so one can read the error message)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1146 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/system.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/firmware/system.c b/firmware/system.c
index f02bbb821d..c9d1c6e153 100644
--- a/firmware/system.c
+++ b/firmware/system.c
@@ -323,12 +323,19 @@ void UIE (unsigned int pc) /* Unexpected Interrupt or Exception */
323 323
324 asm volatile ("sts\tpr,%0" : "=r"(n)); 324 asm volatile ("sts\tpr,%0" : "=r"(n));
325 325
326 /* clear screen */
327 lcd_clear_display ();
328 /* output exception */
326 n = (n - (unsigned)UIE0 - 4)>>2; // get exception or interrupt number 329 n = (n - (unsigned)UIE0 - 4)>>2; // get exception or interrupt number
327 snprintf(str,sizeof(str),"I%02x:%s",n,irqname[n]); 330 snprintf(str,sizeof(str),"I%02x:%s",n,irqname[n]);
328 lcd_puts(0,0,str); 331 lcd_puts(0,0,str);
329 snprintf(str,sizeof(str),"at %08x",pc); 332 snprintf(str,sizeof(str),"at %08x",pc);
330 lcd_puts(0,1,str); 333 lcd_puts(0,1,str);
331 334
335#ifdef HAVE_LCD_BITMAP
336 lcd_update ();
337#endif
338
332 while (1) 339 while (1)
333 { 340 {
334 volatile int i; 341 volatile int i;