RISC-V GNU Toolchain工具链安装保姆级教程 Ubuntu系统亲测可用 避坑指南

前言 

  本人最近在做有关RISC-V的项目开发,需要用到RISC-V下的GNU Toolchain,在安装的过程中可以说是极其痛苦,一方面是网上的相关资料实在是少之又少,另一方面是用着仅有的资料安装时出现了太多的问题,而解决这些问题又不知如何下手,搜也搜不到,困扰了我很久。

  在老师的帮助下,我最终通过Github上的一个项目,成功安装上了该工具链,实在是不易,特此来发布一篇文章来帮助广大同学。

安装过程与方法

  首先给出官方仓库的链接 https://github.com/riscv/riscv-gnu-toolchain

  在最开始安装时,我先参考了这篇文章 https://blog.csdn.net/weiqi7777/article/details/88045720,然而在clone RISC-V GNU Toolchain官方仓库时出现了各种各样的问题,反复重试了很多次都未能解决。

  最终我在https://github.com/cliffordwolf/picorv32#linking-binaries-with-newlib-for-picorv32这个项目的README文件中找到了整个工具链的自动安装脚本,省时省力。具体操作如下:

准备工作

  1)完成工具链的安装之前,需要先安装如下的包,执行下面的命令即可。

sudo apt-get install autoconf automake autotools-dev curl libmpc-dev \
            libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo \
            gperf libtool patchutils bc zlib1g-dev git libexpat1-dev

  本人在安装时,除了在安装texinfo这个包时出现了问题,其他包都非常顺利,但最后发现即使没有texinfo也没有什么大碍。

  2)还需要用到picorv32这个项目中的Makefile文件,需提前下载好。

安装

  1)cd到picorv32项目文件夹下,执行:

make download-tools

  便开始了漫长的下载过程,期间在安装完一个子模块后可能会卡住然后报错,这种情况绝大多数是因为网络原因造成的,如果失败了可以再执行一次上述的命令,当一个子模块安装好,重新执行命令时会自动跳过安装好的模块,继续下一个模块的安装,这一点还是让我很欣慰的。

  2)在安装完所有的模块后,执行如下命令,便可以构建一个针对纯RV32I CPU的完整工具链了:

make -j$(nproc) build-tools

  如果想要自定义安装想要的ISA,可以将上述命令替换成下表中的命令,安装的路径默认在/opt目录下

  回车后在命令行中输入:y或yes或YES即可执行

  该步骤会等待得比较久,在执行的前半部分同样会出现由于网络问题造成的报错,重复执行上述步骤即可,在后半部分会很顺畅。

安装结果 

  本人安装的是RV32IM,在执行命令的目录下生成了riscv-gnu-toolchain-riscv32im文件夹,下面包含了所有库和工具。
 

  对应的opt目录下便生成了riscv32im文件夹,至此,RISC-V GNU Toolchain安装全部完成。 

 

工具链的使用 

  具体的使用方法可以参考B站上的这个视频,发现它简直是意外之喜,给了我很大的帮助,这个视频还介绍了工具链的相关基础知识,非常适合初学者学习,作为为数不多的网络资源,简直太宝贵了。

  这位作者安装的是64位版本的,想安装该版本的同学同样可以参照这期视频来进行安装,同样也是写好的自动安装脚本,非常方便。

 

posted @ 2021-04-25 11:02  bridge0904  阅读(5612)  评论(0编辑  收藏  举报