我正在研究 Rocket Chip,想模拟没有 FPU 的处理器并在其上运行程序。但是,我找不到任何关于我应该添加哪些开关来以这种方式配置 RISC-V 工具的完整信息。有人可以帮我吗?
从不同页面和论坛上的一些部分信息中,我尝试了许多替代方案,包括添加 options ,--with-isa=RV64IMAC
但大多数时候该项目产生“未知选项”,所以我想知道我是否使用了正确的开关,或者如果我没有错过什么。--with-arch=RV64IMAC
--with-abi=64lp
在我尝试过的开关中,最成功的是只添加--with-arch=RV64IMAC
到 riscv-gnu-toolchain:
这是我的 build.sh(在 riscv-tools 目录中):
build_project riscv-fesvr --prefix=$RISCV
build_project riscv-isa-sim --prefix=$RISCV --with-fesvr=$RISCV --with-isa=RV64IMAC
build_project riscv-gnu-toolchain --prefix=$RISCV --with-arch=RV64IMAC --disable-float
CC= CXX= build_project riscv-pk --prefix=$RISCV --host=riscv64-unknown-elf
build_project riscv-tests --prefix=$RISCV/riscv64-unknown-elf
在我添加 switch 之前--with-arch
,它运行得非常好,我可以模拟在尖峰以及模拟器和 VCS 上运行我的程序(使用代理内核)。
现在的问题是:
在这种情况下,项目 riscv-tests 没有正确构建,通过说它找不到“fma”函数来终止
仍然使用代理内核,我像以前一样编译我的程序,添加选项
-msoft-float
和-march=RV64IMAC
. 可执行文件在尖峰时可以毫无问题地运行,但在模拟器和 VCS 上它们永远不会结束......
我认为这是由于使用 RV64IMAC 构建的,因为这是我唯一改变的东西,但也许我错了。我将不胜感激任何建议。