皋陶 发表于 2020-8-24 15:40:35

安装risc-v的tool chain

本帖最后由 皋陶 于 2020-8-28 09:58 编辑

官方教程:https://github.com/freechipsproject/rocket-chiphttps://github.com/riscv/riscv-tools
1、使用ubuntu,且GCC版本>=4.8
用了一天的centos安装,各种出错,乖乖用官方推荐的Ubuntu。
2、在/home/xj(自己决定)下面执行下列步骤:$ git clone https://github.com/ucb-bar/rocket-chip.git $ cd rocket-chip $ git submodule update --init
3、安装相关工具:sudo apt-get install autoconf automake autotools-dev curl device-tree-compiler libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev
4、$ cd rocket-chip/riscv-tools $ git submodule update --init --recursive(执行这步的时候,注意如果出现fatal、error等,删除所有文件,回到第2步重来) $ export RISCV=/home/xj/rocket-chip/riscv-tools/riscv-gnu-toolchain $ export MAKEFLAGS="$MAKEFLAGS -j8"
5、执行./build.sh
结果:安装成功,如下图:
6、安装JDK(不安装的话,后面执行make veriolg时候会报错)
使用源安装:
使用下面的命令安装,只需一些时间,它就会下载许多的文件,所及你要确保你的网络环境良好:sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update(报错:W: GPG error: http://ppa.launchpad.net maverick Release:The following signatures couldn't be verified because the public key is not available:NO_PUBKEY 1C1E55A728CBC482方法:gpg --keyserver pgpkeys.mit.edu --recv-key1C1E55A728CBC482    gpg -a --export 1C1E55A728CBC482 | sudo apt-key add -数字串是错误码。重新执行apt-get update又遇到问题及解决方案:https://www.jianshu.com/p/486e7f9802ab)sudo apt-get install oracle-java8-installer

sudo apt-get install oracle-java8-set-default
修改环境变量:
编辑.bashrc文件JAVA_HOME=/usr/lib/jvm/java-8-oracle

JRE_HOME=$JAVA_HOME/jre

JAVA_BIN=$JAVA_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

export JAVA_HOME JRE_HOME PATH CLASSPATH
为了让更改立即生效,请在终端执行如下命令:source ~/.bashrc输入以下命令验证: java -version
7、测试toolchain$ cd /home/xj/rocket-chip/ $ echo -e '#include <stdio.h>\n int main(void) { printf("Hello world!\\n"); return 0; }' > hello.c

$ riscv64-unknown-elf-gcc -o hello hello.c
报错:UNKMOWN riscv64-unknown-elf-gcc
原因:安装的工具链没有添加到环境变量,系统找不到
解决方案:去bashrc里面添加环境变量:
结果:
8、生成verilog相关文件
To generate FPGA- or VLSI-synthesizable Verilog$ cd /home/xj/rocket-chip/vsim$ make verilog(输出的文件目录:vsim/generated-src):
报错:
2018/9/15 重试上述步骤:
执行make verilog CONFIG=DefaultFPGAConfig
结果生成如下文件:
9 生成vcs仿真文件(若未安装,移步VCS安装与破解)
执行:
结果:
现使用gcc版本:
gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1~14.04)
尝试降级gcc:
下面来自网络将4.4换成4.8就好了
1. 查看gcc版本和g++版本
xumingtao@huaserver1:/usr/bin$ ls -l gcc*lrwxrwxrwx 1 root root 7 Aug 30 19:26 gcc -> gcc-4.6-rwxr-xr-x 1 root root 353216 Apr 16 07:37 gcc-4.6xumingtao@huaserver1:/usr/bin$ ls -l g++*lrwxrwxrwx 1 root root 7 Mar 14 04:05 g++ -> g++-4.6-rwxr-xr-x 1 root root 357312 Apr 16 07:36 g++-4.6
2. 安装gcc和g++ 4.4版本
sudo apt-get install gcc-4.4 g++-4.4 g++-4.4-multilib
3. 修改gcc链接
sudo mv gcc gcc.baksudo ln -s gcc-4.4 gccxumingtao@huaserver1:/usr/bin$ ls -l gcc*lrwxrwxrwx 1 root root 7 Sep 6 10:43 gcc -> gcc-4.4-rwxr-xr-x 1 root root 259232 Apr 16 14:20 gcc-4.4-rwxr-xr-x 1 root root 353216 Apr 16 07:37 gcc-4.6lrwxrwxrwx 1 root root 7 Aug 30 19:26 gcc.bak -> gcc-4.6
4. 修改g++链接
sudo mv g++ g++.baksudo ln -s g++-4.4 g++xumingtao@huaserver1:/usr/bin$ ls -l g++*lrwxrwxrwx 1 root root 7 Sep 6 10:45 g++ -> g++-4.4-rwxr-xr-x 1 root root 263328 Apr 16 14:18 g++-4.4-rwxr-xr-x 1 root root 357312 Apr 16 07:36 g++-4.6lrwxrwxrwx 1 root root 7 Mar 14 04:05 g++.bak -> g++-4.6
5.查看gcc和g++版本号
gcc-vg++-v结果:无效。再次尝试:
参考链接:https://github.com/freechipsproject/rocket-chip/issues/1061
将gcc更换为4.8.5.修改文件/home/xj/rocket-chip/vsim# vim Makefrag注意其中的Ml(是L的小写,不是字母'AI')
而且,在执行的时候不加-j8
在实现的时候,出现过很多问题,已经不明白原因了。问题如下:
总之,编译成功了。结果如下:
本篇完,感谢关注:RISC-V单片机中文网

页: [1]
查看完整版本: 安装risc-v的tool chain