summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2002-05-24 15:22:33 +0000
committerBjörn Stenberg <bjorn@haxx.se>2002-05-24 15:22:33 +0000
commit6eb771721c1df01348577f85d6570cfd9a53617d (patch)
tree0d3bab7c496152ec1133748a337ca5d134f641d2
parent1ac4600e5bf3ff937d404622158111b576651829 (diff)
downloadrockbox-6eb771721c1df01348577f85d6570cfd9a53617d.zip
rockbox-6eb771721c1df01348577f85d6570cfd9a53617d.tar.gz
rockbox-6eb771721c1df01348577f85d6570cfd9a53617d.tar.bz2
rockbox-6eb771721c1df01348577f85d6570cfd9a53617d.tar.xz
Fixed interrupt display and led flash
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@696 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/system.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/firmware/system.c b/firmware/system.c
index cc039b3..6e73053 100644
--- a/firmware/system.c
+++ b/firmware/system.c
@@ -16,7 +16,7 @@
* KIND, either express or implied.
*
****************************************************************************/
-
+#include <stdio.h>
#include "config.h"
#include <lcd.h>
@@ -299,27 +299,21 @@ void system_reboot (void)
void UIE (unsigned int pc) /* Unexpected Interrupt or Exception */
{
- unsigned int i;
-
-#if 0
+ bool state = true;
unsigned int n;
+ char str[32];
- lcd_stop ();
asm volatile ("sts\tpr,%0" : "=r"(n));
n = (n - (unsigned)UIE0 - 4)>>2; // get exception or interrupt number
- lcd_start ();
- lcd_goto (0,0); lcd_puts ("** UIE00 **");
- lcd_goto (0,1); lcd_puts ("AT 00000000");
- lcd_goto (6,0); lcd_puthex (n,2);
- lcd_goto (3,1); lcd_puthex (pc,8); /* or pc - 4 !? */
- lcd_stop ();
-#endif
+ snprintf(str,sizeof(str),"** UIE%02x **",n);
+ lcd_puts(0,0,str);
+ snprintf(str,sizeof(str),"at %08x",pc);
+ lcd_puts(0,1,str);
while (1)
{
- bool state = true;
-
+ volatile int i;
led (state);
state = state?false:true;