diff --git a/bare-metal-bsp b/bare-metal-bsp index fc3f6c5..d8728e3 160000 --- a/bare-metal-bsp +++ b/bare-metal-bsp @@ -1 +1 @@ -Subproject commit fc3f6c57e5cfef59da2b74c78da350857b449cbf +Subproject commit d8728e319c31cedda9e2d901ebcdf37afb6488cb diff --git a/test_fw/test_fw.c b/test_fw/test_fw.c index da3cfd9..1530792 100644 --- a/test_fw/test_fw.c +++ b/test_fw/test_fw.c @@ -6,11 +6,15 @@ #include #include -extern void _init(); +void handle_m_time_interrupt() { + uint64_t time = get_aclint_mtime(aclint); + time += MTIMER_NEXT_TICK_INC; + set_aclint_mtimecmp(aclint, time); + puts("m_time_irq"); +} + int main() { - // board_init(); - _init(); - puts("after _init"); + puts("in main"); // avoid getting interrupt upon enabling MIP/MIE_MTI set_aclint_mtimecmp(aclint, 0xffffffffffffffff); // enable global interrupt @@ -22,16 +26,16 @@ int main() { puts("after enable MIE"); uint64_t time = get_aclint_mtime(aclint); - printf("in main() get_aclint_mtime return %lu \n ", (uint32_t)time); + printf("in main() get_aclint_mtime return %lu \n", (uint32_t)time); set_aclint_mtime(aclint, 9); time = get_aclint_mtime(aclint); - printf("in main() get_aclint_mtime after set 9, return %lu \n ", (uint32_t)time); + printf("in main() get_aclint_mtime after set 9, return %lu \n", (uint32_t)time); - set_aclint_mtimecmp(aclint, (time + 300)); + set_aclint_mtimecmp(aclint, (time + 3)); puts("set mtimecmp"); uint64_t timecmp = get_aclint_mtimecmp(aclint); - printf("in main() get_aclint_mtimecmp return %d \n ", timecmp); + printf("in main() get_aclint_mtimecmp return %d \n", timecmp); puts(" finshed "); return 0;