5 #include "sw/device/silicon_creator/rom/rom_isrs.h"
9 #include "sw/device/silicon_creator/lib/error.h"
13 static rom_error_t rom_irq_error(
void) {
26 mcause = (mcause & 0x80000000) | ((mcause & 0x7f) << 24);
27 return kErrorInterrupt + mcause;
30 void rom_interrupt_handler(
void) {
31 register rom_error_t error
asm(
"a0") = rom_irq_error();
32 asm volatile(
"tail shutdown_finalize;" ::
"r"(error));
40 noreturn
void rom_nmi_handler(
void);