这里以UBUNTU系统为例子,
1,首先需要安装以下包。
# Ubuntu packages needed:
sudo apt-get install autoconf automake autotools-dev curl libmpc-dev -y
sudo apt-get install libmpfr-dev libgmp-dev build-essential bison flex texinfo -y
sudo apt-get install gperf libtool patchutils bc zlib1g-dev git libexpat1-dev -y
sudo apt-get install gawk -y
2,之后从GITHUB下载项目,大约10多个G的源码和文件。
git clone https://github.com/riscv/riscv-gnu-toolchain riscv-gnu-toolchain-rv32i
cd riscv-gnu-toolchain-rv32i
git checkout c3ad555
git submodule update --init --recursive
有的网络连接GITHUB可能不是很稳定,这里我下载好了以后打包上传到云盘,大家可以直接从云盘直接下载:
链接:https://pan.baidu.com/s/138gjPflI-ZXneFyRWqDGrA
提取码:ulzf
3,获取管理员权限,之后在下载的(或者从我提供云盘解压缩的)riscv-gnu-toolchain目录里运行如下脚本:
sudo mkdir /opt/riscv32i
sudo mkdir /opt/riscv
./configure --with-arch=rv32i --prefix=/opt/riscv32i
make -j4
./configure --prefix=/opt/riscv --enable-multilib
make -j4
这样就安装好了工具链到对应的目录里。其中
/opt/riscv32i 对应的指令系统是 RISCV 32I
/opt/riscv32ic 对应的指令系统是 RISCV 32IC
/opt/riscv32im 对应的指令系统是 RISCV 32IM
/opt/riscv32imc 对应的指令系统是 RISCV 32IMC
/opt/riscv 对应的指令系统可以在编译的时候通过参数指定 比如
riscv64-unknown-elf-gcc -mabi=ilp32 -march=rv32i -nostdlib -nostartfiles -WI, -emain t.c
I代表整数指令。C表示压缩指令指令字长16BIT,M代表带有单周期的乘除法器,编译器生成MUL和DIV指令。
在64位UBUNTU 系统上编译成功的文件链接如下,如果用64位UBUNTU系统,应该可以直接下载后接压缩使用。
链接:https://pan.baidu.com/s/1HxRcA01p6pb2UU4qKgklRQ
提取码:464o
参考
1,PICORV32 https://github.com/cliffordwolf/picorv32/blob/master/README.md