Posts like these get 8 comments on hn but relationships posts get 100s. It it because of the bikeshedding or are hn users just obsessed with relationships?
I’ll admit: My first reaction was: cool but why not just use qemu to get a more full fledged system, add rv64 etc?
But the readme explains it very well, I admire the dedication and consistency it takes to stick to rv32 no MMU only to be able yo fit it into very minimal environments in the end.
(I myself tend to be much more prone to allowing feature creep :)
Depends. If it's some random spot in the memory space, it gets an access violation and the kernel kills it. Otherwise, if it's still a "valid" memory address, it's allowed to access it. Even if it's say, within kernel space.
CNLohr does a lot of super cool stuff. I highly recommend checking out more of his stuff. How I think of him is similar to how people talk about Fabrice Bellard: He keeps pumping out reliably cool stuff in pretty different areas. His streams are cool too.
One could use it to test (embedded) code targetting RISC-V, without needing to use hardware.
Unit tests is the easiest, since they preferably do no I/O. But also integration test by providing an I/O implementation (using a Hardware Abstraction Layer), and driving I/O from the tests.
Such testing is easier to do when one has C access to the simulator, and not having to implement the I/O via some virtual device shuffling bytes etc.
And since its just a C header/library, on can just distribute, include and build the simulator alone with the project/tests. As opposed to relying on the user having qemu (or similar) installed.
I will consider using it for emlearn (a Machine Learning Library for microcontrollers).
This is a full system simulator with an emulated RISC-V CPU in under a 1000 lines of clean C, in two files, so you can include it basically any program (STB style FTW).