Add CLI Support for Executing ELF and C Files #348
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In the Command Line Interface mode, although the possible execution file types are
c, asm, bin
(as shown by the command-line option--t
), it is not possible to simulateC
programs.This has been fixed with the possibility to execute RISC-V
ELF
files too.In the
clirunner.cpp
file I've added the logic to load three new source types:C
,InternalELF
andExternalELF
.For an ELF file first a check is done to be sure that the specified file is valid for the selected processor and then the file is loaded with the method
loadElfFile
. I moved this method to theprogramutilities.cpp
file, following what was done for loading binary files with the methodloadFlatBinaryFile
. The function was moved so that it can be used both by CLI and GUI.To execute
C
programs first they are compiled using the already existing methods (such ascompileRaw()
fromccmanager.cpp
), then they are converted asExternalELF
and loaded as mentioned above.Since I've noticed that running CLI programs can sometimes have problems with large addresses (that cannot fit in an
int
variable), I've changed the type of thebyteAddress
variable tolong
. (Fixing #266)