我收到了一个未对齐的指令访问权限'测试我的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!
答案 0 :(得分:2)
陶杰回答了这个问题:
http://tao-j.com/2014/12/risc-v-iii-build-tool-sets-and-linux/
引用:
火箭芯片使用的riscv-tools的提交已经过测试并且有效。 最新的riscv-tools提交可能会被破坏。所以建议这样做 不要单独克隆riscv工具。请使用存储库 包含在火箭芯片中,指向正确的提交。
答案 1 :(得分:1)
对riscv-tools超级存储库进行了错误的提交,该存储库错误地指向包含不兼容的调用约定的新的riscv-pk子模块提交。
现在应该解决您的问题(https://github.com/ucb-bar/riscv-pk/issues/6)。