3 ms·
Awesome work! Some things I wonder (maybe these could be in the README.md?): - Apparently, this is an assembler and an emulator ('runtime simulator'). In the
by meuk 8y ago
Awesome work! Some things I wonder (maybe these could be in the README.md?):
- Apparently, this is an assembler and an emulator ('runtime simulator'). In the 'bottles of the wall' example, prinf is used, which is a reference to a label in another file. Is an object file used for this or does the assembler just use the labels in the open files?
- Is there a list of the system calls you implement? Did you follow an example or standard or did you just make up some system calls?
Disclaimer: I'm no RISC-V expert and I didn't look at RARS for very long, so these might be stupid questions.
- thethirdone 8y ago> maybe these could be in the README.md Currently there isn't a whole lot in the README; part of the goal of this post is to find questions that people would like answered in it. > Is an object file used for this or does the assembler just use the labels in the open files? The compilation is done entirely in memory and I don't recall any of the classes being analogous to a traditional object file. One of the things I would like to implement in the future is linking with ELF object files, and loading, executing and exporting ELF executables. However, that is a relatively big addition and I don't fully understand the ELF format. > Is there a list of the system calls you implement? I don't believe there is an easily accessible, static list. But RARS generates a list of available system calls accessible from the help menu. The classes for the system calls are all in this directory [0]. If its a supported system calls, its in that directory. > Did you follow an example or standard or did you just make up some system calls? In the translation from MARS, I kept a lot of the MARS/SPIM specific syscalls. However, to have at least a semblance of Linux (and with any other existing simulators) compatibility I implemented a few of the easy Linux system calls and remapped some of the MARS system call numbers to the ones used in Spike [1]. > Disclaimer: I'm no RISC-V expert and I didn't look at RARS for very long, so these might be stupid questions. No worries. I can't expect you to be an expert and these are very reasonable questions. Thanks for asking. [0]: https://github.com/TheThirdOne/rars/tree/master/rars/riscv/syscalls https://github.com/TheThirdOne/rars/tree/master/rars/riscv/s... [1]: https://github.com/riscv/riscv-isa-sim https://github.com/riscv/riscv-isa-sim