如何向RISCV交叉编译器添加自定义指令?

问题描述 投票:0回答:1

我克隆了riscv-tools(https://github.com/riscv/riscv-tools)和riscv-gnu-toolchain(https://github.com/riscv/riscv-gnu-toolchain),并且能够使Spike,pk和交叉编译器(riscv64-unknown-elf-gcc)正常工作。我想扩展它并能够添加自定义说明,并找到了本教程:https://nitish2112.github.io/post/adding-instruction-riscv/,但是它有点过时了。当前的RISCV GNU工具链存储库没有riscv-binutils-gdb目录,但是有riscv-binutils目录和riscv-gdb目录,因此我在添加指令时尝试使用这些目录中的文件。

<<

sudo ./configure --prefix=/home/me/riscv64 sudo make newlib -j $(nproc) sudo make linux -j $(nproc) export PATH="$PATH:/home/me/riscv64/bin" export RISCV="/home/me/riscv64"

然后我通过运行对其进行了测试

riscv64-unknown-elf-gcc -o mod mod.c

使用与教程中相同的mod.c文件,除了我在asm内联后添加了分号以使其通过编译器。然后,我从汇编器收到以下错误:

mod.c:7: Error: unrecognized opcode `mod a5,a5,a4'

我做错什么了吗?谢谢您的帮助和时间。

我克隆了riscv-tools(https://github.com/riscv/riscv-tools)和riscv-gnu-toolchain(https://github.com/riscv/riscv-gnu-toolchain)并能够获得Spike,pk和交叉编译器(riscv64 -...

simulator riscv isa risc
1个回答
0
投票
看来该教程确实过时了。幸运的是,RISC-V代码库使添加新指令变得更加容易。 https://github.com/riscv/riscv-isa-sim中的说明非常有用:
© www.soinside.com 2019 - 2024. All rights reserved.