2020-05-30 14:42:07 +00:00
|
|
|
#include <stdint.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
|
2020-05-31 07:49:49 +00:00
|
|
|
#include "soc_peripherals.h"
|
2020-05-30 14:42:07 +00:00
|
|
|
|
|
|
|
void Generic_ExceptionCallback(void) {
|
2020-06-02 13:34:58 +00:00
|
|
|
printf("Generic exception handler!!\r\n");
|
2020-05-30 14:42:07 +00:00
|
|
|
for(;;) {
|
2020-06-02 13:34:58 +00:00
|
|
|
//
|
2020-05-30 14:42:07 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
__attribute__((interrupt)) void Generic_TimerCallback(void) {
|
|
|
|
TIMER0->TCSR0 |= (1 << 0x08); // Clear interrupt;
|
|
|
|
SysTick++;
|
2020-06-02 13:34:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
__attribute__((interrupt)) void Generic_TrapCallback(void) {
|
|
|
|
printf("Trap!!\r\n");
|
|
|
|
uint32_t mepc, mcause, mstatus;
|
|
|
|
__csrr("mepc", mepc);
|
|
|
|
__csrr("mcause", mcause);
|
|
|
|
__csrr("mstatus", mstatus);
|
|
|
|
printf("mepc: 0x%08x, mcause: 0x%08x, mstatus: 0x%08x\r\n", mepc, mcause, mstatus);
|
|
|
|
for(;;) {
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
__attribute__((interrupt)) void NMI_Handler(void) {
|
|
|
|
printf("NMI occurred!!\r\n");
|
|
|
|
for(;;) {
|
|
|
|
//
|
|
|
|
}
|
2020-05-30 14:42:07 +00:00
|
|
|
}
|