rv32mbt
GitHub: sabas0ba/rv32mbt
MoonBit で実装した RV32IMAC エミュレータ(js backend)。QEMU virt 互換の
メモリマップ(UART 16550 / CLINT / PLIC / sifive_test)を実装し、
ELF32 (RV32) または flat binary(0x80000000 ロード)を
ブラウザ内で実行する。ターミナルをクリック/タップするとキー入力が
UART0 RX に流れる(モバイルではソフトウェアキーボードが開く)。
Linux サンプルは nommu カーネルが起動して busybox の対話シェルが出る。
ls / ps / free / vi
などのほか、こんなものが置いてある:
/opt/examples/mandelbrot— musl にリンクした普通の ユーザ空間プログラム(fib / lifegame / primes / hello_c もある)/opt/nested/wasmrun /opt/nested/rv32mbt.wasm /opt/nested/hello.elf 2 2000000— このエミュレータ自身を ゲストの中で動かす。ブラウザ → Linux → wasm インタプリタ → rv32mbt(wasm) → hello.elf という入れ子(完了まで数十秒かかる)
idle