40 lines
No EOL
921 B
C
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;
|
|
} |