32位程序不能用RISC-V Spike执行。无法在RV64热上执行32位程序



下列软件已构建、安装并通过。RISCV-GNU-TOOLS(均为64位,32位),Spike, Riscv-PK(32位)。如果您尝试使用RISCV32执行C语言程序并在Spike中执行它,您将得到如下错误。我该怎么办?环境为ubuntu-20.04, 64位

$ riscv32-unknown-linux-gnu-gcc -static fib.c -o fib
$spike $riscvpk/bin/pk fib
Error: cannot execute 32-bit program on RV64 hart

我做了什么使32位支持

sudo dpkg --add-arrhitecture i386
sudo apt-get update
sudo apt-get install libc6: i386 libncurses5: i386 libstdc ++ 6: i386
sudo apt-get Install gcc-multilib
#~/.bashrc
# RISC-V gnu-tools 64bit
export PATH=${PATH}:/opt/riscv/bin
# RISC-V gnu-tools 32bit
export PATH=${PATH}:/opt/riscv32/bin
# RISC-V spike
export RISCV=/opt/riscv32-tools/toolchain
export PATH=$PATH:$RISCV/bin
# RISC-V pk
export riscvpk=/opt/riscv32/bin/riscv32-unknown-linux-gnu
export PATH=$PATH:$riscvpk/bin

运行32位的riscv二进制文件时,需要在运行spike命令时添加--isa=RV32IMAFDC标志。(取决于你使用的扩展名,例如也可以是--isa=RV32IM)

spike --isa=RV32IMAFDC $riscvpk/bin/pk fib

最新更新