From 892899847955e57b165f6f4c396b7aeb91c0431d Mon Sep 17 00:00:00 2001 From: andy <1414772332@qq.com> Date: Thu, 26 Jun 2025 00:33:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E9=99=A4=E4=B8=80=E4=BA=9B=E7=BC=96?= =?UTF-8?q?=E8=AF=91=E8=AD=A6=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.c | 40 +--------------------------------------- make.py | 6 +++--- make_riscv.py | 8 ++++---- soft/clexical.c | 8 ++++---- 4 files changed, 12 insertions(+), 50 deletions(-) diff --git a/main.c b/main.c index 4fa03a8..8fd9d87 100644 --- a/main.c +++ b/main.c @@ -31,19 +31,14 @@ __attribute__((weak)) int thread_fun(void* t) { } int g_argc; -// char* g_argv[100]; char** g_argv; void set_argv(int argc, char* argv[]) { g_argc = argc; - // for (int i = 0;i < argc;i++) { - // g_argv[i] = argv[i]; - // } g_argv = argv; } int get_argv(char** argv[]) { - // *argv = *(char ***)(g_argv); *argv = (g_argv); return g_argc; } @@ -58,43 +53,10 @@ int main(int argc, char* argv[]) { myth_create(thread_fun, NULL,"main_thread"); - myth_join( ); + myth_join(); } -#define func_def(...) - - - - -#define SLOT_FUN_RUN(fun,param) \ - ((slot_fun_def)(fun))(param[0],param[1],param[2],\ - param[3],param[4],param[5],param[6],param[7]) - -typedef void (*slot_fun_def)(size_t a,size_t b,size_t c,size_t d,size_t e,size_t f,size_t g,size_t h); - - - -void funptr_test(){ - DBG_INFO("print from funptr_test fun.\n"); -} - -void add_test(int a,int b,void (*f)()){ - DBG_INFO("add_fun:%d+%d=%d\n",a,b,a+b); - f(); -} - -void SystemInit() -{ - func_def(int (int a,int b){ - int a; - return; - }); - size_t pars[8]={4,5,(size_t)funptr_test}; - SLOT_FUN_RUN(add_test,pars); -} - - diff --git a/make.py b/make.py index bf42e90..849494e 100644 --- a/make.py +++ b/make.py @@ -128,7 +128,7 @@ def build_depend(src:list): dst=os.path.join(BUILD_DIR,dst) if(check_rebuild(dst,[i])): cmd=f"{CC} -MM {i} -o {dst} {flags}" - print(cmd) + print(f"更新 {dst}") ret=os.system(cmd) if(ret): exit() @@ -162,7 +162,7 @@ def build_object(src:list): # print(f"{i} 没有更新依赖关系") pass if(len(cmd)>0): - print(cmd) + print(f"编译 {dst}") ret=os.system(cmd) if(ret): exit() @@ -178,7 +178,7 @@ def build_target(src:list): dst=os.path.join(BUILD_DIR,TARGET) if(check_rebuild(dst,obj_list)): cmd=f"{CC} {' '.join(obj_list)} -o {dst} {flags}" - print(cmd) + print(f"链接 {dst}") ret=os.system(cmd) if(ret): exit() diff --git a/make_riscv.py b/make_riscv.py index 2dadee9..caf6601 100644 --- a/make_riscv.py +++ b/make_riscv.py @@ -12,7 +12,7 @@ OBJCPY="riscv64-unknown-elf-objcopy" OBJDUMP="riscv64-unknown-elf-objdump" CFLAG=[ - "-march=rv32i", + "-march=rv32i_zicsr", "-mabi=ilp32", "-ffunction-sections", "-fdata-sections", @@ -137,7 +137,7 @@ def build_depend(src:list): dst=os.path.join(OUTPUT,dst) if(check_rebuild(dst,[i])): cmd=f"{CC} -MM {i} -o {dst} {flags}" - print(cmd) + print(f"更新 {dst}") ret=os.system(cmd) if(ret): exit() @@ -170,7 +170,7 @@ def build_object(src:list): # print(f"{i} 没有更新依赖关系") pass if(len(cmd)>0): - print(cmd) + print(f"编译 {dst}") ret=os.system(cmd) if(ret): exit() @@ -186,7 +186,7 @@ def build_target(src:list): dst=os.path.join(OUTPUT,TARGET)+".elf" if(check_rebuild(dst,obj_list)): cmd=f"{CC} {' '.join(obj_list)} -o {dst} {flags} -T{LD_FILE} -Wall -Wextra -nostartfiles -Wl,-Map,\"{OUTPUT}/{TARGET}.map\"" - print(cmd) + print(f"链接 {dst}") ret=os.system(cmd) if(ret): exit() diff --git a/soft/clexical.c b/soft/clexical.c index b30ede8..8de941c 100644 --- a/soft/clexical.c +++ b/soft/clexical.c @@ -512,7 +512,7 @@ int par_find_closed(token_def* t_list , int len , int token_s , int token_e) { // 解析形参列表 int par_var_def( ) { - + return 0; } @@ -522,7 +522,6 @@ int par_var_def( ) { // 这个函数在 TOKEN_NAME 的时候调用 保证第一个token_def 为 TOKEN_NAME // 返回 消耗的token 数 int par_var_fun_def(par_def* par , token_def* t_list , int len) { - token_def* t_start = t_list; if (len < 2) { throw_("缺少后续token,在 %d 行,%d 位置" , t_list [0].line , t_list [0].pos); } @@ -551,6 +550,7 @@ int par_var_fun_def(par_def* par , token_def* t_list , int len) { throw_("意外的token,在 %d 行,%d 位置" , t_list [close_len + 1].line , t_list [close_len + 1].pos); } } + return 0; } @@ -604,20 +604,20 @@ int par_statement(par_def* p) { break; } } + return 0; } // 输入token数组和长度 int par_parser(token_def* token_list , int len) { - int in_loop = 1; - int index = 0; par_def* par = mem_calloc(1 , sizeof(par_def)); par->type = TTYPE_NONE; par->attribute = 0; par->token_list = token_list; par->token_list_len = len; par_statement(par); + return 0; }