Improved panic messaging
This commit is contained in:
parent
cee1760a5b
commit
6208ae369d
1 changed files with 11 additions and 4 deletions
|
|
@ -10,10 +10,17 @@ void handle_trap() {
|
||||||
unsigned long cause;
|
unsigned long cause;
|
||||||
__asm__ volatile("csrr %0, mcause" : "=r"(cause));
|
__asm__ volatile("csrr %0, mcause" : "=r"(cause));
|
||||||
|
|
||||||
if (cause == 3) { // 3 is the code for 'breakpoint' (ebreak)
|
switch(cause) {
|
||||||
kprint("Reason: ebreak (Breakpoint)\n");
|
case 0: kprint("Reason: Instruction Address Misaligned\n"); break;
|
||||||
} else {
|
case 1: kprint("Reason: Instruction Access Fault\n"); break;
|
||||||
kprint("Reason: Other Exception\n");
|
case 2: kprint("Reason: Illegal Instruction\n"); break;
|
||||||
|
case 3: kprint("Reason: Breakpoint (ebreak)\n"); break;
|
||||||
|
case 4: kprint("Reason: Load Address Misaligned\n"); break;
|
||||||
|
case 5: kprint("Reason: Load Access Fault\n"); break;
|
||||||
|
case 6: kprint("Reason: Store/AMO Address Misaligned\n"); break;
|
||||||
|
case 7: kprint("Reason: Store/AMO Access Fault\n"); break;
|
||||||
|
default:
|
||||||
|
kprintf("Reason: Unknown Exception Code %d\n", cause);
|
||||||
}
|
}
|
||||||
|
|
||||||
poweroff();
|
poweroff();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue