meke.py 使用命令行传入源文件

This commit is contained in:
2025-06-26 16:15:07 +08:00
parent 8928998479
commit 262d5d3f90
9 changed files with 44 additions and 35 deletions

View File

@@ -3,6 +3,7 @@
#include "errno.h"
#include "stdlib.h"
#include "string.h"
#include "debug.h"
#include "../main.h"
#include "../riscv_cpu/riscv.h"
@@ -16,19 +17,19 @@ long get_file_size(FILE *stream)
long file_size = -1;
long cur_offset = ftell(stream); // 获取当前偏移位置
if (cur_offset == -1) {
printf("ftell failed :%s\n", strerror(errno));
DBG_LOG("ftell failed :%s\n", strerror(errno));
return -1;
}
if (fseek(stream, 0, SEEK_END) != 0) { // 移动文件指针到文件末尾
printf("fseek failed: %s\n", strerror(errno));
DBG_LOG("fseek failed: %s\n", strerror(errno));
return -1;
}
file_size = ftell(stream); // 获取此时偏移值,即文件大小
if (file_size == -1) {
printf("ftell failed :%s\n", strerror(errno));
DBG_LOG("ftell failed :%s\n", strerror(errno));
}
if (fseek(stream, cur_offset, SEEK_SET) != 0) { // 将文件指针恢复初始位置
printf("fseek failed: %s\n", strerror(errno));
DBG_LOG("fseek failed: %s\n", strerror(errno));
return -1;
}
return file_size;
@@ -39,7 +40,7 @@ long get_file_size(FILE *stream)
riscv_t riscv = { 0 };
int thread_fun_r(void* t)
int thread_fun(void* t)
{
int argc;
char** argv;
@@ -50,15 +51,15 @@ int thread_fun_r(void* t)
bin_name=argv[1];
}
printf("riscv start\n");
DBG_LOG("riscv start\n");
FILE *file=fopen(bin_name, "rb" );
if(file==NULL)
{
printf("open file %s error\n",bin_name);
DBG_LOG("open file %s error\n",bin_name);
return -1;
}
riscv.rom_size = get_file_size(file);
printf("rom size: %d\n", riscv.rom_size);
DBG_LOG("rom size: %d\n", riscv.rom_size);
riscv.rom = calloc((riscv.rom_size + 3) / 4, 4);
fread(riscv.rom, 1, riscv.rom_size, file);
fclose(file);