我正在使用当前的 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 版本吗?是否有关于如何执行此操作的说明?