tinyriscv/tests/example/init.c

25 lines
423 B
C
Raw Normal View History

#include <stdint.h>
#include "include/utils.h"
extern void trap_entry();
extern void timer0_irq_handler() __attribute__((weak));
void trap_handler(uint32_t mcause)
{
// we have only timer0 interrupt here
timer0_irq_handler();
}
void _init()
{
// 设置中断入口函数
write_csr(mtvec, &trap_entry);
// 使能CPU全局中断
// MIE = 1, MPIE = 1, MPP = 11
write_csr(mstatus, 0x1888);
}