From 2d2a64aa7af853fa08ede82bab951c5ae4580e98 Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Fri, 21 Nov 2025 11:26:46 +0100 Subject: [PATCH] updates BSP --- bare-metal-bsp | 2 +- test_fw/test_fw.c | 54 ++++++++++++++++++++--------------------------- 2 files changed, 24 insertions(+), 32 deletions(-) diff --git a/bare-metal-bsp b/bare-metal-bsp index bf0e4ec..328a961 160000 --- a/bare-metal-bsp +++ b/bare-metal-bsp @@ -1 +1 @@ -Subproject commit bf0e4ec0572cc52cbfdcdeb537af806b977fa089 +Subproject commit 328a9612761add2fab019a818e955a991868cb24 diff --git a/test_fw/test_fw.c b/test_fw/test_fw.c index 4e122ca..3529afe 100644 --- a/test_fw/test_fw.c +++ b/test_fw/test_fw.c @@ -1,45 +1,37 @@ +#include "encoding.h" +#include "platform.h" #include #include +#include #include #include -#include "platform.h" -#include "encoding.h" -#include - extern void _init(); int main() { - //board_init(); - _init(); - puts("after _init"); + // board_init(); + _init(); + puts("after _init"); -// set only MPP -__asm__ volatile ( - "csrs mstatus, %0" - : - : "r"(MSTATUS_MPP | MSTATUS_MIE) - : "memory" - ); + // enable global interrupt + // csr_set_bits_mstatus(MSTATUS_MIE_BIT_MASK); -puts("after enable MSTATUS_MIE/MPP"); -/* -// enable MIE - write_csr(mie,MIE_MTIE | MIE_MSIE | MIE_MEIE); - puts("after enable MIE"); -*/ + puts("after enable MSTATUS_MIE/MPP"); + // enable MIE + csr_set_bits_mie(MIE_MTI_BIT_MASK | MIE_MSI_BIT_MASK | MIE_MEI_BIT_MASK); + puts("after enable MIE"); - uint64_t time = get_aclint_mtime(aclint); - printf("in main() get_aclint_mtime return %d \n ",time); - set_aclint_mtime(aclint, 9); - time = get_aclint_mtime(aclint); - printf("in main() get_aclint_mtime after set 9, return %d \n ",time); + uint64_t time = get_aclint_mtime(aclint); + 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); - set_aclint_mtimecmp(aclint, (time+3)); - puts("set mtimecmp"); + 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); + uint64_t timecmp = get_aclint_mtimecmp(aclint); + printf("in main() get_aclint_mtimecmp return %d \n ", timecmp); - puts(" finshed "); - return 0; + puts(" finshed "); + return 0; }