.. | ||
bindings.c | ||
bindings.kts | ||
call.h | ||
fox32-c++ | ||
fox32-cc | ||
fox32-clang | ||
fox32-clang++ | ||
fox32-compile | ||
fox32-g++ | ||
fox32-gcc | ||
README.md | ||
rv2fox |
Compiling C code for fox32
How does this work?
- GCC compiles your C code with
riscv*-gcc -S hello.c -march=rv32im -mabi=ilp32 -O2
rv2fox
converts the generated RISC-V assembly to fox32 assemblyfox32asm
makes an FXF binary
Generating bindings.c
bindings.kts is a little Kotlin script which generates bindings.c.
Ensure you have Kotlin installed on your system, then run
./bindings.kts > bindings.c
TODO:
- commandline argument passing
- testcase sha256 program that hashes the ROM
- rust support:
rustc --emit asm --target riscv32im-unknown-none-elf test.rs -O