Hi John, I really like what you’ve created.
You might also like to check out my blog on an open Arty RISC-V computer I’m developing called the ‘ArtyRV board’ (see http://lavaworkshop.tumblr.com).
The project includes an interactive RISC-V disassembler, which is built right in to the ‘RVStudio’ IDE. Currently the disassembler loads in and disassembles RV32I binary and coe files, but will soon handle Intel hex (and probably elf) files as well.
I’m planning to implement some console commands for dumping memory contents to the terminal (as ASCII and hex), dumping disassembled code to the terminal, uploading intel hex files, jump to address, etc (these will be wrapped into the IDE as well). So you basically have real hardware (implemented in the Arty FPGA) and tools to help explore that hardware. I myself prefer real hardware (I’m an electronics design engineer, as well as a software developer).
In addition to ASM and C, I’m toying with integrating a tiny BASIC and extending it with real-time features (a 1 second ticker with independent ‘tasks’), so users can write simple home automation programs, for example.
I’m making the RVStudio IDE (it’s fully custom) so it’s super simple. In other words, all complexity is striped out, so users can learn about RISC-V, ASM and C coding, VHDL, etc. in essence. I found SiFive’s work really good, but they are deeply technical, which can be a bit daunting for new users. I want to recapture that spirit of excitement, exploration, and can-do that the computers in the '80s elicited, and inspire a new generation of creatives.
If you have any suggestions or comments (eg. maybe we can integrate your info with my project ie. interactive help), please feel free to email (email@example.com) or message me.
btw, blog sections include:
- Finding a RISC-V core for the Arty
- Getting the RISC-V core running
- Designing a VGA video controller
- The beauty of bare metal RISC-V
- An interactive RISC-V disassembler
- Programming the ArtyRV board in C
- RVStudio gets a powerful IDE
- Where do we go from here?