编译custom0自定义指令的错误

时间:2018-01-02 10:31:40

标签: riscv

我正在尝试设计简单的加速器以熟悉RoCC及其在 spike 中的界面,并通过RoCC命令(例如custom0,custom1,...)访问它

事实上,我通过使用riscv工具的master分支来遵循Berkeley的cs250 lab4中描述的一些指南。(实际上,指南与此不同,但我可以理解基本的想法,所以我会经历它。)

但是,它似乎效果不好。

首先,我只是在存储库中构建了riscv工具,然后我尝试编译驻留在riscv-isa-sim / dumy_rocc中的dummy_rocc_test.c

但在使用命令时会产生以下输出:

riscv64-unknown-elf-gcc -o d ./dummy_rocc_test.c

./dummy_rocc_test.c: Assembler messages:
./dummy_rocc_test.c:13: Error: unrecognized opcode `custom0 x0,a5,2,0'
./dummy_rocc_test.c:15: Error: unrecognized opcode `custom0 a5,x0,2,1'
./dummy_rocc_test.c:18: Error: unrecognized opcode `custom0 x0,a5,2,3'
./dummy_rocc_test.c:20: Error: unrecognized opcode `custom0 a5,x0,2,1'
./dummy_rocc_test.c:23: Error: unrecognized opcode `custom0 x0,a5,2,2'
./dummy_rocc_test.c:24: Error: unrecognized opcode `custom0 x0,a5,2,3'
./dummy_rocc_test.c:25: Error: unrecognized opcode `custom0 a5,x0,2,1'

在编译之前我是否遗漏了什么?或者我是否必须修改一些构建选项,即使我想使用虚拟扩展名?

1 个答案:

答案 0 :(得分:0)

默认情况下,custom0 / custom1的识别已关闭。

尝试将-march选项与custom后缀:

一起使用
riscv64-unknown-elf-gcc -march=rv64imafdxcustom -o d ./dummy_rocc_test.c

注意:旧工具链使用大写ISA扩展符号,即:

-march=RV64IMAFDXcustom