0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RISC-V编译环境搭建

FPGA开源工坊 来源:FPGA开源工坊 2024-07-17 11:31 次阅读

riscv-gnu-toolchain是RISCV的交叉编译工具链,在GitHub上的地址为:https://github.com/riscv-collab/riscv-gnu-toolchain,在国内Gitee上也有链接,每天同步一次:https://gitee.com/mirrors/riscv-gnu-toolchain。

第一步就是下载交叉编译工具链:

git clone  git@github.com:riscv/riscv-gnu-toolchain.git
cdriscv-gnu-toolchain
git submodule update --init --recursive
第二步下载需要的库文件:(我是ubuntu的环境)
sudoapt-getinstallautoconfautomakeautotools-devcurllibmpc-devlibmpfr-devlibgmp-devgawkbuild-essentialbisonflextexinfogperflibtoolpatchutilsbczlib1g-devlibexpat-dev
第三步设置环境变量:
exportRISCV="your path"//path指你自己下载的工具链的路径
exportPATH=$PATH:$RISCV/bin


source/etc/profile//可以让关闭当前终端之后,设置的环境变量仍然有效
第四步进行编译:
mkdirbuild//新建一个文件夹,让整个目录结构更清晰一点
cd build


//生成32位的编译工具   riscv32-unknown-elf-***
../configure --prefix=$RISCV --with-arch=rv32gc --with-abi=ilp32d
make -j4


//64位的  riscv64-unknown-elf-***
../configure --prefix=$RISCV
make -j4




//64位的linux-gnu-gcc版本
../configure --prefix=$RISCV
make linux  -j4

以上按位数分可以编译为32位和64位两种,另外就是都可以编译为elf版本和linux版本。


这个时候,你的交叉编译工具链就做好了。那就写个hello world来测试下吧。

928aeaee-43e8-11ef-b8af-92fbcf53809c.png

正常编译出来hello.o了。

因为是在ubuntu的环境下,我们是不能直接执行这个a.o的,因为他是riscv的交叉编译工具编译出来的。下面就安装一下qemu这个运行环境吧。

git clone https://git.qemu.org/git/qemu.git
cd qemu
git submodule init
git submodule update --recursive
riscv的qemu有两种:

用户模式,可以运行基于riscv指令集编译的程序文件(target-list=riscv32-linux-user,target-list=riscv64-linux-user)

镜像模拟器,可以运行基于riscv指令集编译的linux镜像(target-list=riscv32-softmmu,target-list=riscv64-softmmu)

因为我上面交叉编译工具链就是32位的,所以qemu也使用32位的,这里要对应上,不然在qemu里面运行编译好的结果的会报错的。

cd qemu
./configure--target-list=riscv32-linux-user
make-j4
这个在编译的时候可能会报错,少库啥的。 比如:
ERROR:CannotfindNinja
//报上面这个错误可以通过 apt-get install ninja-build 解决


ERROR: glib-2.48 gthread-2.0 is required to compile QEMU
//报上面这个错误可以通过 apt-get install libglib2.0-dev 解决
总之一个原则:少啥装啥。 下图就是编译好的,注意里面的路径,我们需要qemu-riscv32这个去执行工具链编译好的二进制文件。这里可以像上面一样把他也放进环境变量里面,我们以后用起来会比较方便,不用每次都写qemu-riscv32的路径了。

92a7cc4a-43e8-11ef-b8af-92fbcf53809c.png

最后就来看一下执行结果吧:

92ba6314-43e8-11ef-b8af-92fbcf53809c.png

至此,RISCV的编译和运行环境就弄好了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11116

    浏览量

    207752
  • Ubuntu
    +关注

    关注

    5

    文章

    549

    浏览量

    29265
  • 环境搭建
    +关注

    关注

    0

    文章

    53

    浏览量

    9027
  • RISC-V
    +关注

    关注

    44

    文章

    2131

    浏览量

    45651

原文标题:RISC-V编译环境搭建

文章出处:【微信号:FPGA开源工坊,微信公众号:FPGA开源工坊】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    RISC-V MCU开发 (一):集成开发环境

    (MRS)便是其中一种。      MRS是一款针对嵌入式项目(RISC-V/ARM)的集成开发环境,提供了包括编辑器、C编译
    发表于 09-23 14:32 3909次阅读
    <b class='flag-5'>RISC-V</b> MCU开发 (一):集成开发<b class='flag-5'>环境</b>

    RISC-V开发分析 CSM32RV20开发板环境搭建

    一、材料准备:  1. RISC-V  CSM32RV20开发板  X 1     2.   CSM Studio IDE(开发调试) 3. CSM-ISP(串口烧录)   二、 IDE环境搭建
    发表于 03-01 09:05 1186次阅读
    <b class='flag-5'>RISC-V</b>开发分析  CSM32RV20开发板<b class='flag-5'>环境</b><b class='flag-5'>搭建</b>

    risc-v有哪些开发环境

    risc-v的芯片支持哪些开发环境呢?keil?iar?
    发表于 08-29 21:14

    risc-v单片机使用分享

    最近发现一直使用的ch340芯片的厂家出了risc-v内核的芯片,搞了块开发板尝尝鲜,没有开发过这种内核的芯片,查资料说要用eclipse来搭编译环境,准备等等看有没有合适的 IDE发布,顺便也研究下
    发表于 07-30 10:20

    怎么搭建risc-v学习平台

    risc-v学习平台搭建
    发表于 12-15 07:14

    RISC-V单片机快速入门01-开发环境搭建 相关资料下载

    在Nuclei Studio IDE下环境搭建工作,下一讲,我们开始正式移植RT_Thread系统。一、基础知识1.RISC-V简介RISC-V(读作“
    发表于 07-01 08:26

    RISC-V MCU开发 (一):集成开发环境

    一种。MRS是一款针对嵌入式项目(RISC-V/ARM)的集成开发环境,提供了包括编辑器、C编译器、宏汇编、链接器、库管理、仿真调试器和下载器等在内的完整开发资源,工具链方面增加了对WCH
    发表于 09-22 14:44

    【基于CH32V307VCT6】如何搭建RISC-V的开发环境

    的指令增添、定制工作。力求打造一款硬件工程师喜爱的、以RISC-V内核为主的嵌入式集成开发环境。MounRiver工作室由一群怀揣共同目标的“奋斗者”们组成:他们中有经验丰富的工具链开发工程师、有钻研
    发表于 03-20 10:09

    目前RISC-V都支持哪些开发环境

    RISC-V的小白一枚,想扩展一下有关RISC-V的知识,请问目前RISC-V都支持那些通用的开发环境?还是必须使用各厂商的特定的开发环境
    发表于 03-20 13:57

    RISC-V的开发环境

    如何搭载RISC-V的开发环境,主要注意什么?
    发表于 03-24 08:17

    RISC-V嵌入式开发准备篇1:编译过程简介

    本文的目的是对编译过程进行简单的科普与回顾,为后续详细介绍“RISC-V GCC工具链”和“RISC-V汇编语言程序设计”打下基础。
    发表于 11-02 19:06 38次下载
    <b class='flag-5'>RISC-V</b>嵌入式开发准备篇1:<b class='flag-5'>编译</b>过程简介

    RISC-V单片机快速入门01-开发环境搭建

    在Nuclei Studio IDE下环境搭建工作,下一讲,我们开始正式移植RT_Thread系统。一、基础知识1.RISC-V简介RISC-V(读作“
    发表于 11-13 16:21 12次下载
    <b class='flag-5'>RISC-V</b>单片机快速入门01-开发<b class='flag-5'>环境</b><b class='flag-5'>搭建</b>

    RISC-V MCU CSM32RV20开发(一):环境搭建

    RV32IMAC Core (2.6 CoreMark/MHz)。【准备】 IDE: CSMStudio ,也是南京中科微针对嵌入式项目RISC-V系列MCU开发的的集成开发环境,提供了包括编辑器、C编译器、宏汇编、链接器、
    发表于 11-18 17:06 18次下载
    <b class='flag-5'>RISC-V</b> MCU CSM32RV20开发(一):<b class='flag-5'>环境</b><b class='flag-5'>搭建</b>

    关于RISC-V MCU开发实例(一):环境搭建

    关于RISC-V MCU开发实例:咱们以CSM32RV20的开发环境搭建为例子,我们可以参看动能世纪客户分享的案例情况。
    的头像 发表于 07-20 14:17 2187次阅读
    关于<b class='flag-5'>RISC-V</b> MCU开发实例(一):<b class='flag-5'>环境</b><b class='flag-5'>搭建</b>

    RISC-V MCU CSM32RV20开发(一):环境搭建

    RISC-V MCU CSM32RV20开发(一):环境搭建,RISCV核的低功耗MCU。
    的头像 发表于 01-20 19:06 1660次阅读
    <b class='flag-5'>RISC-V</b> MCU CSM32RV20开发(一):<b class='flag-5'>环境</b><b class='flag-5'>搭建</b>