查看: 1087|回复: 0
收起左侧

安装risc-v的tool chain

[复制链接]

  离线 

  • TA的每日心情
    奋斗
    2021-3-3 12:32
  • 签到天数: 10 天

    [LV.3]

    发表于 2020-8-24 15:40:35 | 显示全部楼层 |阅读模式

    有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站

    您需要 登录 才可以下载或查看,没有帐号?立即注册

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

    官方教程:

    https://github.com/freechipsproject/rocket-chip

    https://github.com/riscv/riscv-tools


    1、使用ubuntu,且GCC版本>=4.8


    用了一天的centos安装,各种出错,乖乖用官方推荐的Ubuntu。


    2、在/home/xj(自己决定)下面执行下列步骤:

    1. $ git clone https://github.com/ucb-bar/rocket-chip.git $ cd rocket-chip $ git submodule update --init
    复制代码

    3、安装相关工具:

    1. 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、

    1. $ cd rocket-chip/riscv-tools $ git submodule update --init --recursive
    复制代码

    (执行这步的时候,注意如果出现fatal、error等,删除所有文件,回到第2步重来)

    1. $ export RISCV=/home/xj/rocket-chip/riscv-tools/riscv-gnu-toolchain $ export MAKEFLAGS="$MAKEFLAGS -j8"
    复制代码

    5、执行./build.sh


    结果:安装成功,如下图:


    6、安装JDK(不安装的话,后面执行make veriolg时候会报错)


    使用源安装:


    使用下面的命令安装,只需一些时间,它就会下载许多的文件,所及你要确保你的网络环境良好:

    1. sudo add-apt-repository ppa:webupd8team/java

    2. 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

    又遇到问题及解决方案:

    https://www.jianshu.com/p/486e7f9802ab

    1. sudo apt-get install oracle-java8-installer

    2. sudo apt-get install oracle-java8-set-default
    复制代码

    修改环境变量:


    编辑.bashrc文件

    1. JAVA_HOME=/usr/lib/jvm/java-8-oracle

    2. JRE_HOME=$JAVA_HOME/jre

    3. JAVA_BIN=$JAVA_HOME/bin

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

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

    6. export JAVA_HOME JRE_HOME PATH CLASSPATH
    复制代码

    为了让更改立即生效,请在终端执行如下命令:

    1. source ~/.bashrc
    复制代码

    输入以下命令验证:

    1. java -version
    复制代码

    7、测试toolchain

    1. $ cd /home/xj/rocket-chip/ $ echo -e '#include <stdio.h>\n int main(void) { printf("Hello world!\\n"); return 0; }' > hello.c

    2. $ 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.6

    xumingtao@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.bak

    sudo ln -s gcc-4.4 gcc

    xumingtao@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.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++

    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.6

    lrwxrwxrwx 1 root root 7 Mar 14 04:05 g++.bak -> g++-4.6


    5.查看gcc和g++版本号


    gcc-v

    g++-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单片机中文网





    上一篇:RISC-V GD32VF103(一)开发环境搭建
    下一篇:RISC-V指令集架构特点总结
    RISCV作者优文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    回复

    使用道具 举报

    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

    RISC-V单片机中文网上一条 /2 下一条



    版权及免责声明|RISC-V单片机中文网 |网站地图

    GMT+8, 2024-3-29 01:04 , Processed in 0.457192 second(s), 45 queries .

    快速回复 返回顶部 返回列表