2016-01-13 38 views
0

有没有人在32位模式下使用spike/pk?带尖峰的RISC-V 32b仿真

$ riscv32-unknown-elf-gcc -g -m32 -march=RV32IM -DRISCV test.c test 
$ spike --isa=RV32 pk test 
assertion failed @ 0x000052bc: ntohl(hdr->magic) == FDT_MAGIC 

初始build.sh安装没有提供32B版本的pk,所以我用riscv32-unknown-

ELF-GCC交叉编译为32B RISC-V目标处理器PK如下:

$ ../configure --prefix=$RISCV/riscv32-unknown-elf --host=riscv32-unknown-elf 
$ make XLEN=32 
$ make install 

有什么想法?

回答

1

您可以检查东西...

  1. 尝试 “秒杀--isa = RV32IM” 命令行。
  2. pk只能用RV32IM指令编译。
  3. 您的断言消息似乎...与设备树功能相关。因此,您可以
    • 检查设备树blob是否正确。
    • 将您的包和尖峰回滚到不包含设备树功能的版本。
+0

pk不能用RV32IM指令集编译(在.S文件中有未知的指令)。 PK可以使用RV32IMA和RV64IMA进行编译。 “spike --isa = RV32IM”在我的测试中没有改变任何东西 恢复到旧版本(2015年夏季)。当时spike不支持--isa配置,并成功运行我们的32b测试程序,即使pk编译为64b,即“spike pk64 test32”工作。 – bvenables