現在のriscv-toolsを使用して、 PicoRV32コアのファームウェア イメージをビルドしています。ファームウェアには浮動小数点が必要なので、-msoft-float
. これは、私が使用しているコンパイラ/リンカー オプションです。
-Os -m32 -march=RV32I -msoft-float -ffreestanding -nostdlib -lgcc
この構成では、__muldf3 は (リンカーの-Map
出力によると)によって提供されます。
/opt/riscv/lib/gcc/riscv64-unknown-elf/4.9.2/soft-float/32/libgcc.a(dp-bit.o)
しかし、このコードは RV32I ISA と互換性がありません: それはMUL
andMULHU
命令を使用しています!
プレーンな RV32I ISA のソフトフロートを取得するにはどうすればよいですか? 自分のバージョンの libgcc.a をコンパイルする必要がありますか? これを行う方法に関する指示はどこかにありますか?