1. 程式人生 > >安裝risc-v的tool chain

安裝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

在實現的時候,出現過很多問題,已經不明白原因了。問題如下:

總之,編譯成功了。結果如下: