RISC-V编译环境

踩坑记录:

$ git  clone  https://github.com/riscv/riscv-tools.git,执行该命令会在当前目录下下载得到一个名为riscv-tools的文件夹,其中内容如图a所示,共十五个文件和文件夹,但其中以riscv为前缀的文件夹是空文件夹。根据网上资料,输入$ git  submodule  update  --init  --recursive会继续下载空文件夹中的内容,但执行该命令后无反应,于是采用方法1。

RISC-V编译环境_第1张图片

                                                                         图a

注1:图a中,以riscv为前缀的7个文件夹都是一个个独立的组件,都有各自的用途,但下面的方法只安装了riscv-gnu-toolchain。在这个文件夹中的内容涉及最基本也最重要的一些工具,如编译、调试工具等,所以只装这个也够了。另几个组件的安装方法也类似方法1,主要步骤:1.执行文件夹中的configure文件(会生成makefile文件),2.sudo make linux开始编译(如果出错则解决相关问题),最核心的就是这两步。但是命令行中输入时configure文件用什么参数配置,目前不清楚,所以暂时不能编译另几个组件。

注2:也有一种通过执行图a中的build.sh来安装的方法,这种方法会把所有的组件全部安装,但未执行成功,如下图所示。

​                                                     

#######################栅栏分割##########################

开发主机:系统为ubuntu 16.04,64位硬件,编译目标:基于linux 4.15源码的系统,64位硬件设备。

方法1(与前述无关系):

$ git clone --recursive https://github.com/riscv/riscv-gnu-toolchain,执行该命令会在当前目录下载一个riscv-gnu-toolchain文件夹(红色部分可用riscv-fesvr,riscv-isa-sim等替换,以下载其余几个文件夹里的内容)。下载完成后(文件有2、3个Gb大小,另外几个组件很小,十几Mb):

$ cd  riscv-gnu-toolchain,回车(回车步骤下略)。

$ ./configure  --prefix=/opt/riscv64-linux  --with-arch=rv64imafdc  --with-abi=xxx  --enable-linux。红色部分用lp64,lp64d,lp64f之一替换掉,具体区别不清楚,这些参数和数学模型相关。该步骤会生成makefile文件,且用于64位硬件和linux系统,用于32位硬件或者不带操作系统的裸机开发请百度相关参数设置。

$ sudo apt-get install libexpat1-dev,安装一个包,不然编译过程中很可能报错:error: expat is missing or unusable。

$ sudo  make  linux,开始编译(比较费时)。注意要加sudo或以root权限运行,不然会报错。

编译成功后在/opt/riscv64-linux(由--prefix=/opt/riscv64-linux决定,你可以设置为其它路径)下会有相关文件夹等,如图b所示。

RISC-V编译环境_第2张图片

                                                                                            图b

/opt/riscv64-linux/bin下是最重要的一些可执行文件,如图c。

RISC-V编译环境_第3张图片

                                                                                                 图c

$ gedit ~/.bashrc,设置环境变量,在bashrc文件尾部添加export PATH=$PATH:工具链安装路径/bin。红色部分用具体的路径代替,本例中为/opt/riscv64-linux(由--prefix=/opt/riscv64-linux决定,你可以设置为其它路径)

应该就能用了。

 

你可能感兴趣的:(linux,riscv)