summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/system.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/firmware/system.c b/firmware/system.c
index de45c3785a..bb541493fa 100644
--- a/firmware/system.c
+++ b/firmware/system.c
@@ -141,16 +141,9 @@ default_interrupt (TEI1, 107);
141reserve_interrupt ( 108); 141reserve_interrupt ( 108);
142default_interrupt (ADITI, 109); 142default_interrupt (ADITI, 109);
143 143
144void (*vbr[]) (void) __attribute__ ((section (".sram.vbr"))) = 144/* reset vectors are handled in crt0.S */
145void (*vbr[]) (void) __attribute__ ((section (".vectors"))) =
145{ 146{
146 /*** 0-1 Power-on Reset ***/
147
148 reset_pc,reset_sp,
149
150 /*** 2-3 Manual Reset ***/
151
152 reset_pc,reset_sp,
153
154 /*** 4 General Illegal Instruction ***/ 147 /*** 4 General Illegal Instruction ***/
155 148
156 GII, 149 GII,
@@ -305,9 +298,14 @@ void system_reboot (void)
305 298
306void UIE (unsigned int pc) /* Unexpected Interrupt or Exception */ 299void UIE (unsigned int pc) /* Unexpected Interrupt or Exception */
307{ 300{
308 unsigned int i,n; 301 unsigned int i;
302
303#if 0
304 unsigned int n;
305
309 lcd_stop (); 306 lcd_stop ();
310 asm volatile ("sts\tpr,%0" : "=r"(n)); 307 asm volatile ("sts\tpr,%0" : "=r"(n));
308
311 n = (n - (unsigned)UIE0 - 4)>>2; // get exception or interrupt number 309 n = (n - (unsigned)UIE0 - 4)>>2; // get exception or interrupt number
312 lcd_start (); 310 lcd_start ();
313 lcd_goto (0,0); lcd_puts ("** UIE00 **"); 311 lcd_goto (0,0); lcd_puts ("** UIE00 **");
@@ -315,6 +313,7 @@ void UIE (unsigned int pc) /* Unexpected Interrupt or Exception */
315 lcd_goto (6,0); lcd_puthex (n,2); 313 lcd_goto (6,0); lcd_puthex (n,2);
316 lcd_goto (3,1); lcd_puthex (pc,8); /* or pc - 4 !? */ 314 lcd_goto (3,1); lcd_puthex (pc,8); /* or pc - 4 !? */
317 lcd_stop (); 315 lcd_stop ();
316#endif
318 317
319 while (1) 318 while (1)
320 { 319 {