commit 452f8ae7f55784f77c3bb02d2d797e607244e67c from: Benjamin Stürz date: Sun Apr 07 01:39:49 2024 UTC Update README commit - 9c836066a157ed851db8cef72bcfdd47a2dfafa1 commit + 452f8ae7f55784f77c3bb02d2d797e607244e67c blob - ac5f4155a7f3f942b7b66e4a6c8e570a3dc9d8a4 blob + 65c3d0d7203eebe9f8d86a4b45f181b26be21bc2 --- README +++ README @@ -1,13 +1,54 @@ -# Resources -- https://riscv.org/wp-content/uploads/2017/05/riscv-spec-v2.2.pdf -- https://five-embeddev.com/riscv-isa-manual/latest/instr-table.html +# RISC-V 64-Bit Linux Userspace Emulator +This emulator allows you to run statically-compiled binaries for riscv64-unknown-linux-musl. +The goal is to support most POSIX-compatible OS on most 64bit CPU architectures. -# Supported Host OSs +## Instructions +Building rvemu is very simple, just do: + + $ make rvemu + +To install rvemu, do: + + # make [PREFIX=/usr/local] install + +If you don't already have a toolchain, you can build it with: + + $ make -C tools -j8 + +To run a test program do: + + $ make run + +Look into the examples directory, for example programs. +You can specify which example to run with the T parameter. +Example for the cat.elf program: + + $ make T=cat run + +## Supported Host Architectures +Due to design decisions, only 64bit archs can be supported: + +- amd64 + +Note: Once I get more hardware, I can port it to other architectures. + +## Supported Host OSs - OpenBSD - FreeBSD - NetBSD - Linux -# Non-standard Toolchain Build Dependencies +## Non-standard Toolchain Dependencies - gsed (GNU sed) - gmake (GNU make) +- sudo or doas (only for `make run`, see config.mk.*) +- wget or curl (only on Linux) + +## Resources +- https://riscv.org/wp-content/uploads/2017/05/riscv-spec-v2.2.pdf +- https://five-embeddev.com/riscv-isa-manual/latest/instr-table.html + + +## Bugs +This project is still very experimental and has bugs! +If you find one, please contact Benjamin Stürz .