/BlueSeed

cross-plateform RISC-V emulator

Primary LanguageCGNU General Public License v3.0GPL-3.0

Project

BlueSeed is a BASIC RISC-V emulator.

Project Documentation.

DEPENDENCIES

  • gcc (dev under 9.2.1)
  • make (dev under 4.3)

INSTALL

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.

BUILD

make TARGET=$TARGET_ARCH

Allowed TARGET_ARCH:

  • riscv32
  • riscv64

RUN

./BlueSeedXXX $BINARY [...options]

Options list:

  • --verbose : display information during environnement init

  • --explicit : display the current executed instruction

  • --debug : debug environnement (CLI)

ROADMAP

  • 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)

SPECIFITY

The only binary format accepted is ELF.

Software interrupts are interfaced with the host machine and based on RV8 project.

EPILOGUE

BlueSeed is in developpment.

RISC-V is a young architecture. There is yet a quantity of lacks & implementation problems.

RISC-V official spec