diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/system.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/firmware/system.c b/firmware/system.c index 6e73053c60..bf112b6f6f 100644 --- a/firmware/system.c +++ b/firmware/system.c | |||
@@ -31,6 +31,24 @@ | |||
31 | extern void reset_pc (void); | 31 | extern void reset_pc (void); |
32 | extern void reset_sp (void); | 32 | extern void reset_sp (void); |
33 | 33 | ||
34 | static const char* irqname[] = { | ||
35 | "", "", "", "", "IllInstr", "", "IllSltIn","","", | ||
36 | "CPUAdrEr", "DMAAdrEr", "NMI", "UserBrk", | ||
37 | "","","","","","","","","","","","","","","","","","","", | ||
38 | "Trap32","Trap33","Trap34","Trap35","Trap36","Trap37","Trap38","Trap39", | ||
39 | "Trap40","Trap41","Trap42","Trap43","Trap44","Trap45","Trap46","Trap47", | ||
40 | "Trap48","Trap49","Trap50","Trap51","Trap52","Trap53","Trap54","Trap55", | ||
41 | "Trap56","Trap57","Trap58","Trap59","Trap60","Trap61","Trap62","Trap63", | ||
42 | "Irq0","Irq1","Irq2","Irq3","Irq4","Irq5","Irq6","Irq7", | ||
43 | "Dma0","","Dma1","","Dma2","","Dma3","", | ||
44 | "IMIA0","IMIB0","OVI0","", "IMIA1","IMIB1","OVI1","", | ||
45 | "IMIA2","IMIB2","OVI2","", "IMIA3","IMIB3","OVI3","", | ||
46 | "IMIA4","IMIB4","OVI4","", | ||
47 | "Ser0Err","Ser0Rx","Ser0Tx","Ser0TE", | ||
48 | "Ser1Err","Ser1Rx","Ser1Tx","Ser1TE", | ||
49 | "ParityEr","A/D conv","","","Watchdog","DRAMRefr" | ||
50 | }; | ||
51 | |||
34 | reserve_interrupt ( 0); | 52 | reserve_interrupt ( 0); |
35 | reserve_interrupt ( 1); | 53 | reserve_interrupt ( 1); |
36 | reserve_interrupt ( 2); | 54 | reserve_interrupt ( 2); |
@@ -306,7 +324,7 @@ void UIE (unsigned int pc) /* Unexpected Interrupt or Exception */ | |||
306 | asm volatile ("sts\tpr,%0" : "=r"(n)); | 324 | asm volatile ("sts\tpr,%0" : "=r"(n)); |
307 | 325 | ||
308 | n = (n - (unsigned)UIE0 - 4)>>2; // get exception or interrupt number | 326 | n = (n - (unsigned)UIE0 - 4)>>2; // get exception or interrupt number |
309 | snprintf(str,sizeof(str),"** UIE%02x **",n); | 327 | snprintf(str,sizeof(str),"I%02x:%s",n,irqname[n]); |
310 | lcd_puts(0,0,str); | 328 | lcd_puts(0,0,str); |
311 | snprintf(str,sizeof(str),"at %08x",pc); | 329 | snprintf(str,sizeof(str),"at %08x",pc); |
312 | lcd_puts(0,1,str); | 330 | lcd_puts(0,1,str); |