rt-thread-official/bsp/gd32vf103v-eval/libraries/n22/env_Eclipse/handlers.c

25 lines
644 B
C

//See LICENSE for license details.
#include <stdint.h>
#include <stdio.h>
#include <unistd.h>
#include "riscv_encoding.h"
#include "n22_func.h"
__attribute__((weak)) uintptr_t handle_nmi() {
write(1, "nmi\n", 5);
_exit(1);
return 0;
}
__attribute__((weak)) uintptr_t handle_trap(uintptr_t mcause, uintptr_t sp) {
if (mcause == 0xFFF) {
handle_nmi();
}
write(1, "trap\n", 5);
printf("In trap handler, the mcause is %d\n", mcause);
printf("In trap handler, the mepc is 0x%x\n", read_csr(mepc));
printf("In trap handler, the mtval is 0x%x\n", read_csr(mbadaddr));
_exit(mcause);
return 0;
}