diff options
-rw-r--r-- | src/exc.c | 12 | ||||
-rw-r--r-- | src/main.c | 7 |
2 files changed, 12 insertions, 7 deletions
@@ -19,9 +19,9 @@ IRQ(exc) asm volatile("csrr %0, mtval" : "=r"(mtval)); printf("Hardware Exception Caught:\n"); - printf(" mcause: 0x%80x\n", mcause); - printf(" mepc: 0x%80x\n", mepc); - printf(" mtval: 0x%80x\n", mtval); + printf(" mcause: 0x%08x\n", mcause); + printf(" mepc: 0x%08x\n", mepc); + printf(" mtval: 0x%08x\n", mtval); panic(mcause); } @@ -35,9 +35,9 @@ IRQ(nmi) asm volatile("csrr %0, mtval" : "=r"(mtval)); printf("Unhandled NMI Caught:\n"); - printf(" mcause: 0x%80x\n", mcause); - printf(" mepc: 0x%80x\n", mepc); - printf(" mtval: 0x%80x\n", mtval); + printf(" mcause: 0x%08x\n", mcause); + printf(" mepc: 0x%08x\n", mepc); + printf(" mtval: 0x%08x\n", mtval); panic(mcause); } @@ -105,6 +105,8 @@ const char* hello_world_static = "Hello, World!\r\n"; int test(char ch, ...); +volatile int zero = 0; + /* Main routine. This is called on_reset once everything else has been set up. */ int main(void) @@ -123,9 +125,12 @@ int main(void) volatile uint32_t dl = (10 * 6400000 / 8 / BAUD_RATE + 5) / 10; UART.dl.set(UART1, dl); - char buf[32] = { 0 }; + char buf[32] = {0}; volatile uint32_t i = 0xdeadbeef; + asm volatile("ebreak"); + + panic(0xdeadbeef); stack_dump(&i); |