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

RISC-V编译环境搭建,踩坑记录

[复制链接]

  离线 

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

    [LV.3]

    发表于 2020-8-23 11:30:22 | 显示全部楼层 |阅读模式

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

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

    x
    本帖最后由 皋陶 于 2020-8-26 11:16 编辑

    踩坑记录(未成功,不建议使用):


    $ git  clone  https://github.com/riscv/riscv-tools.git,执行该命令会在当前目录下下载得到一个名为riscv-tools的文件夹,其中内容如图a所示,共十五个文件和文件夹,但其中以riscv为前缀的文件夹是空文件夹。


    根据网上资料,输入 git  submodule  update  --init  --recursive会继续下载空文件夹中的内容,但执行该命令后无反应。


    国内芯片技术交流-RISC-V编译环境搭建,踩坑记录risc-v单片机中文社区(1)

    图a


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


    国内芯片技术交流-RISC-V编译环境搭建,踩坑记录risc-v单片机中文社区(2)


    注1: 图a中,以riscv为前缀的7个文件夹都是一个个独立的组件,都有各自的用途,下面的方法只安装了riscv-gnu-toolchain。在这个文件夹中的内容涉及最基本也最重要的一些工具,如编译、调试工具等,所以只装这个也够了。

    另几个组件的安装方法也类似,主要步骤:

    1.执行文件夹中的configure文件(会生成makefile文件),

    2.sudo make linux开始编译(如果出错则解决相关问题),最核心的就是这两步。但是命令行中执行configure文件时附带什么参数,目前了解的不够。


    注2:如果目标机为嵌入式设备,还需安装riscv-pk,这个组件有打包功能,即把bootloader( riscv-pk中自带伯克利大学开发的bootloader,缩写为bbl)、内核镜像、根文件系统、busybox等等打包成一个bin文件。另外还有一个带qemu字样的组件(具体名字记不住了,也可能就包含在上述7个组件中的某一个内),是一个模拟运行环境,如果你编译出来的bin文件在qemu中都无法正常启动、显示,赶紧查原因吧,基本上烧录到板子上也运行不了。无论桌面还是嵌入式开发,qemu组件都是可选的,而对嵌入式开发riscv-pk必须要有,网上有相关安装使用教程(能成功安装并使用,我试过,不过步骤没记录下来),大家有需要就百度下。

      

                                        #######################请使用以下方法##########################


    具体步骤(建议新建一个文件夹,在这个文件夹中进行安装):


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


    步骤2:$ ./configure  --prefix=/opt/riscv64-linux  --with-arch=rv64imafdc  --with-abi=xxx  --enable-linux。绿色部分你可以根据个人习惯来自定义,该参数作用:会在此处存放最终编译好的工具(一些可执行命令),红色部分用lp64,lp64d,lp64f之一替换掉,具体区别不清楚,我用的lp64d。本步骤会生成用于编译的makefile文件,且用于64位硬件和linux系统,用于32位硬件或者不带操作系统的裸机开发请百度相关参数设置。


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


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


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


    国内芯片技术交流-RISC-V编译环境搭建,踩坑记录risc-v单片机中文社区(3)

                                                                                                图b


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


    国内芯片技术交流-RISC-V编译环境搭建,踩坑记录risc-v单片机中文社区(4)

                                                                                                     图c


    步骤5:$ gedit  ~/.bashrc,设置环境变量,在bashrc文件尾部添加export PATH=$PATH:工具链安装路径/bin。红色部分用具体的路径代替,本例中为/opt/riscv64-linux(由步骤2中的 --prefix=/opt/riscv64-linux决定),再source一下,应该就能用了。


           还有,要下载riscv版的linux内核源码进行编译,不然编译中会报error,虽然不确定出错原因何在,但建议如此,至少用riscv工具链编译riscv版的linux内核源码没一点问题而编译其它版本的就报错。

    本篇完,感谢关注:RISC-V单片机中文网




    上一篇:Design of the RISC-V Instruction Set Architecture笔记(chapter3)
    下一篇:嵌入式周边二:记录一个小白对于RISC-V的认知过程
    RISCV作者优文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    回复

    使用道具 举报

    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

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



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

    GMT+8, 2024-5-2 06:13 , Processed in 0.797605 second(s), 48 queries .

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