查看: 5954|回复: 1

rocket-chip工具链的编译与使用

[复制链接]
  • TA的每日心情

    2018-11-20 13:41
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2019-3-7 17:21:54 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 电子月 于 2019-6-5 15:31 编辑



    rocket-chip工具链的编译步骤:

    1、        先配置好ubuntu的环境,github上的教程都是基于ubuntu的,这就是Linux系统推荐ubuntu的原因。安装以下工具,并确保GCC的版本大于或等于4.8。
    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 libexpat1-dev pkg-config
    复制代码
    2、        然后进入riscv-tools的目录进行目录更新。因为riscv-tools的内容太多,所以需要二次更新。同时需要设置环境变量,具体的路径按各自需求来完成配置。
    1. $ cd rocket-chip/riscv-tools
    2. $ git submodule update --init --recursive
    3. $ export RISCV=/path/to/install/riscv/toolchain
    复制代码
    3、        第三步是编译交叉工具链。我一般是直接使用build.sh的脚本,把全部工具都编译一遍,我生成的是32位的交叉工具链。
    1. $ ./build.sh
    复制代码
    4、        第四步是漫长的等待,riscv-tools工具中编译时间最长的是riscv-gnu-toolchain,其他工具的编译时间还好。需要等至全部工具编译成功。

    编译交叉工具链时可能遇到的问题:

    1、出现“c++11”字样的问题:
    这个问题是由于gcc的版本过低引起的,gcc的版本不能低于4.8,可以用gcc –version查看gcc的版本。

    2、出现“error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+”的字样,这是由于gcc的依赖工具版本不够高,可以尝试以下操作:
    1. cd <riscv-tools>/riscv-gnu-toolchain/riscv-gcc
    2. contrib/download_prerequisites
    3. sudo yum install gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel
    复制代码
    3、出现error不用怕,只要根据error的提示,在谷歌/百度中搜相应的关键字即能找到解决的方法,因为多数的error都是因为ubuntu的环境没有配置好而引起的,只要落实第一步的全部工具都安装成功,那么交叉工具链必然能编译成功。



    回复

    使用道具 举报

  • TA的每日心情
    难过
    2021-2-27 22:16
  • 签到天数: 1568 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2019-4-6 13:24:14 | 显示全部楼层
    不错啊,看来是连载 522.jpg
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-19 20:39 , Processed in 0.138188 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.