diff options
author | Felix Arends <edx@rockbox.org> | 2002-06-24 11:35:13 +0000 |
---|---|---|
committer | Felix Arends <edx@rockbox.org> | 2002-06-24 11:35:13 +0000 |
commit | b38c2d996d339a68f33a8b681cce359a86f65bcf (patch) | |
tree | c158eca05665a49e885e40392321302da53fe430 /firmware | |
parent | c40ac3249a851cdf5ed1f6e096a8411b569cb6ab (diff) | |
download | rockbox-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
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/system.c | 7 |
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; |