0

在测试我的 RISC-V 工具链时,我收到“未对齐的指令访问”异常。hello.c 的内容与 README 文件中提供的示例相匹配。

有没有人遇到过这个问题?

$ riscv-gcc -o hello hello.c

$ spike pk hello
z  0000000000000000 ra 0000000000000000 sp 0000000000000000 gp 0000000000000000
tp 0000000000000000 t0 0000000000000000 t1 0000000000000017 t2 0000000000003514
s0 0000000000000000 s1 000000007f800000 a0 0000000000000000 a1 0000000000000032
a2 ffffffffffffffff a3 0000000080000000 a4 000000007f800000 a5 00000000000037c0
a6 0000000000000017 a7 0000000000003514 s2 0000000000000000 s3 0000000000000000
s4 0000000000000000 s5 0000000000000000 s6 0000000000000000 s7 0000000000000000
s8 0000000000000000 s9 000000000000d028 sA 0000000000800000 sB 0000000000800000
t3 00000000ff800000 t4 0000000000000000 t5 000000007f800000 t6 0000000000003f3c
sr 0000000000000000 pc 00000000ff800000 va 0000000000000000 insn       00000000
Misaligned instruction access!
4

2 回答 2

2

陶杰回答了这个问题:

http://tao-j.com/2014/12/risc-v-iii-build-tool-sets-and-linux/

报价:

Rocket-chip 使用的 riscv-tools 的提交经过测试有效。riscv-tools 的最新提交可能会被破坏。所以建议不要单独克隆一个 riscv-tools。请使用 rocket-chip 中包含的存储库,它指向正确的提交。

于 2015-01-01T01:34:43.953 回答
1

对 riscv-tools 超级存储库进行了错误提交,该提交错误地指向了包含不兼容调用约定的新 riscv-pk 子模块提交。

您的问题现在应该得到解决(https://github.com/ucb-bar/riscv-pk/issues/6)。

于 2015-01-03T01:02:14.027 回答