Enabling using Spike as a library #1953
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.
This PR should introduce API to enable some external simulator connect to Spike.
Steps:
abstract_sim_if_t
class and has to implement abstract functionsdo_load
anddo_store
.cfg_t
is now extended withstd::optional<abstract_sim_if_t*> external_simulator
field. This field should be filled with pointer to simulator object from Step 1.external_sim_device_t
should be constructed with pointer from step 2, and createbus_t
withfallback
parameter ofexternal_sim_device_t
.For all addresses which are not in Spike address space, bus will issue
load/store
requests tofallback
branch, i.e.external simulator