我在spike上运行Simple C和Assembly程序(这很好)。我无法运行spikes调试模式。虽然我正在尝试调试不同的程序,但我总是得到相同的输出。我使用riscv64-unknown-elf-gcc从C和汇编代码生成可执行二进制文件,并在http://riscv.org/download.html#tab_isa-sim上描述以下命令以运行调试模式:
$ spike -d pk simpleprogram
如果我输入:
,我也会获得相同的输出$ spike -d pk
如果我输入以下命令(没有pk),我会收到错误消息:
$ spike -d simpleprogram
答案 0 :(得分:4)
pk实际上是代理内核。它是一个单一的进程操作系统,允许更容易运行程序。 pk是一个RISC-V二进制文件,在spike之上执行。
当你用pk运行spike时,它首先运行pk,一旦一切就绪,pk将执行交给你的程序(这是pk的一个参数)。您看到相同的输出,因为您还没有执行足够的时间来通过pk启动并进入您的程序。
可以在没有pk的情况下运行,但必须专门编译程序才能在裸机模式下运行。例如,如何做到这一点,我会看看riscv-tests repo,看看如何运行最小程序。