BlueSeed is a BASIC
RISC-V emulator.
gcc
(dev under 9.2.1)make
(dev under 4.3)
BlueSeed have a dependencies installer for cross-compiling.
./mktoolchain/mktoolchain $TARGET
If no toolchain TARGET is given then defaulting to the host machine.
If you want use your host compiler, then just don't use the mktoolchain and skip this.
make TARGET=$TARGET_ARCH
Allowed TARGET_ARCH:
- riscv32
- riscv64
./BlueSeedXXX $BINARY [...options]
Options list:
-
--verbose
: display information during environnement init -
--explicit
: display the current executed instruction -
--debug
: debug environnement (CLI)
- toolchain
- cross-plateform build
- build system independant
- instruction set
- RV32I Base Instruction Set
- RV64I Base Instruction Set
- Compressed Instruction Set (Introduced recently)
- RV32M Standard Extension ?
- RV64M Standard Extension ?
- RV32A Standard Extension ?
- RV64A Standard Extension ?
- RV32F Standard Extension ?
- RV64F Standard Extension ?
- RV32D Standard Extension ?
- RV64D Standard Extension ?
- target arch
- riscv32
- riscv64
- emulation
- elf loader (no dynamic linkage)
- virtual processor
- program exec
- syscall host interface (limited)
- Debug
- Display the running instruction
- Dump processor/register state
- Runtime register set
- Runtime jump (using address, no symbols)
The only binary format accepted is ELF.
Software interrupts are interfaced with the host machine and based on RV8 project.
BlueSeed is in developpment.
RISC-V is a young architecture. There is yet a quantity of lacks & implementation problems.