riscv_emu/main.c
Balazs Toldi dfe27caf8c
Use args to start a program
Signed-off-by: Balazs Toldi <balazs@toldi.eu>
2023-04-14 16:05:15 +02:00

40 lines
No EOL
921 B
C

#include "riscv_emu.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void loadFile(RiscvEmu *emu,char* file) {
size_t bytes = 0, readsz = MEMORY_SIZE;
FILE *fp = fopen (file, "rb");
if (!fp) {
fprintf (stderr, "error: file open failed '%s'.\n", file);
return;
}
/* read/output BUFSZ bytes at a time */
while ((bytes = fread (emu->memory, sizeof(uint8_t), readsz, fp)) == readsz) {
/* for (i = 0; i < readsz; i++)
printf (" 0x%02x", buf[i]);
putchar ('\n');*/
}
if (fp != stdin)
fclose (fp);
}
int main(int argc, char**argv) {
RiscvEmu emu;
riscv_emu_init(&emu);
if(argc != 2){
printf("riscv_emu <executable>\n");
exit(EXIT_FAILURE);
}
printf("Initialized Risc-v processor!\n");
printf("Loading Program...\n");
loadFile(&emu,argv[1]);
riscv_emulate(&emu);
return 0;
}