在模拟器上而不是在 FPGA 上编程 运行

Program running on simulator but not on FPGA

我是 RISCV 处理器的新手,这让我很烦

我使用 http://riscv.org/download.html#tab_tools "Testing Your Toolchain" 上的教程为 RISCV 创建了一个 .C 程序。

如果我在我的电脑上使用

spike pk myhello

我按预期得到 "Hello world!" 但如果我 运行 使用此命令在 mi FPGA 上它

./fesvr-zynq pk myhello

我明白了

z  0000000000000000 ra 0000000000010030 s0 ffffffffffffffc0
s1 0000000000015290 s2 0000000000000000 s3 0000000000014b60 
s4 0000000000014b60 s5 0000000000000000 s6 0000000000000000
s7 0000000000000000 s8 0000000000000000 s9 0000000000010258
sA 0000000000000000 sB 0000000000000000 sp 000000000ff7fb40 
tp 0000000000000000 v0 0000000000000000 v1 0000000000000000 
a0 0000000000000000 a1 0000000000000000 a2 0000000000000000 
a3 0000000000000000 a4 0000000000000000 a5 0000000000000000 
a6 0000000000000000 a7 0000000000000000 t0 0000000000000000
t1 0000000000000000 t2 0000000000000000 t3 0000000000000000 
t4 0000000000000000 t5 0000000000000000 sr 00000000a00000e9 
pc 0000000000010448 va 000007fffffffff0 insn ffffffff
User store segfault @ 0x000007fffffffff0

取而代之的是 "hello world!" 就像 SDCARD 预编译映像中包含的示例一样。 我已尝试启动 linux,但在启动 OS 时无法将我的程序发送到 FPGA。

非常感谢

正如 user2548418 所指出的,更新 "pk" 包解决了问题(并再次创建包含它的图像)。 在 linux 内核启动时使用 scp 复制文件目前不可用,但可以按照 "Creating a Root Disk Image" in RISCV tools 中的说明将它们加载到系统中], 将文件复制到 mkdir 创建的文件夹中。