安裝risc-v的tool chain
官方教程:
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-key 1C1E55A728CBC482
gpg -a --export 1C1E55A728CBC482 | sudo apt-key add -
數字串是錯誤碼。重新執行apt-get update
又遇到問題及解決方案:
)
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++版本
[email protected]:/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.6
[email protected]:/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.bak
sudo ln -s gcc-4.4 gcc
[email protected]:/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.6
lrwxrwxrwx 1 root root 7 Aug 30 19:26 gcc.bak -> gcc-4.6
4. 修改g++連結
sudo mv g++ g++.bak
sudo ln -s g++-4.4 g++
[email protected]:/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.6
lrwxrwxrwx 1 root root 7 Mar 14 04:05 g++.bak -> g++-4.6
5.檢視gcc和g++版本號
gcc-v
g++-v
結果:無效。
再次嘗試:
參考連結:
將gcc更換為4.8.5.
修改檔案/home/xj/rocket-chip/vsim# vim Makefrag
注意其中的Ml(是L的小寫,不是字母'AI')
而且,在執行的時候不加-j8
在實現的時候,出現過很多問題,已經不明白原因了。問題如下:
總之,編譯成功了。結果如下: