0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RISC-V編譯環(huán)境搭建

FPGA開(kāi)源工坊 ? 來(lái)源:FPGA開(kāi)源工坊 ? 2024-07-17 11:31 ? 次閱讀

riscv-gnu-toolchain是RISCV的交叉編譯工具鏈,在GitHub上的地址為:https://github.com/riscv-collab/riscv-gnu-toolchain,在國(guó)內(nèi)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
第二步下載需要的庫(kù)文件:(我是ubuntu的環(huán)境)
sudoapt-getinstallautoconfautomakeautotools-devcurllibmpc-devlibmpfr-devlibgmp-devgawkbuild-essentialbisonflextexinfogperflibtoolpatchutilsbczlib1g-devlibexpat-dev
第三步設(shè)置環(huán)境變量:
exportRISCV="your path"http://path指你自己下載的工具鏈的路徑
exportPATH=$PATH:$RISCV/bin


source/etc/profile//可以讓關(guān)閉當(dāng)前終端之后,設(shè)置的環(huán)境變量仍然有效
第四步進(jìn)行編譯:
mkdirbuild//新建一個(gè)文件夾,讓整個(gè)目錄結(jié)構(gòu)更清晰一點(diǎn)
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

以上按位數(shù)分可以編譯為32位和64位兩種,另外就是都可以編譯為elf版本和linux版本。


這個(gè)時(shí)候,你的交叉編譯工具鏈就做好了。那就寫(xiě)個(gè)hello world來(lái)測(cè)試下吧。

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

正常編譯出來(lái)hello.o了。

因?yàn)槭窃趗buntu的環(huán)境下,我們是不能直接執(zhí)行這個(gè)a.o的,因?yàn)樗莚iscv的交叉編譯工具編譯出來(lái)的。下面就安裝一下qemu這個(gè)運(yùn)行環(huán)境吧。

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

用戶模式,可以運(yùn)行基于riscv指令集編譯的程序文件(target-list=riscv32-linux-user,target-list=riscv64-linux-user)

鏡像模擬器,可以運(yùn)行基于riscv指令集編譯的linux鏡像(target-list=riscv32-softmmu,target-list=riscv64-softmmu)

因?yàn)槲疑厦娼徊婢幾g工具鏈就是32位的,所以qemu也使用32位的,這里要對(duì)應(yīng)上,不然在qemu里面運(yùn)行編譯好的結(jié)果的會(huì)報(bào)錯(cuò)的。

cd qemu
./configure--target-list=riscv32-linux-user
make-j4
這個(gè)在編譯的時(shí)候可能會(huì)報(bào)錯(cuò),少庫(kù)啥的。 比如:
ERROR:CannotfindNinja
//報(bào)上面這個(gè)錯(cuò)誤可以通過(guò) apt-get install ninja-build 解決


ERROR: glib-2.48 gthread-2.0 is required to compile QEMU
//報(bào)上面這個(gè)錯(cuò)誤可以通過(guò) apt-get install libglib2.0-dev 解決
總之一個(gè)原則:少啥裝啥。 下圖就是編譯好的,注意里面的路徑,我們需要qemu-riscv32這個(gè)去執(zhí)行工具鏈編譯好的二進(jìn)制文件。這里可以像上面一樣把他也放進(jìn)環(huán)境變量里面,我們以后用起來(lái)會(huì)比較方便,不用每次都寫(xiě)qemu-riscv32的路徑了。

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

最后就來(lái)看一下執(zhí)行結(jié)果吧:

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

至此,RISCV的編譯和運(yùn)行環(huán)境就弄好了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11304

    瀏覽量

    209497
  • Ubuntu
    +關(guān)注

    關(guān)注

    5

    文章

    563

    瀏覽量

    29762
  • 環(huán)境搭建
    +關(guān)注

    關(guān)注

    0

    文章

    53

    瀏覽量

    9057
  • RISC-V
    +關(guān)注

    關(guān)注

    45

    文章

    2277

    瀏覽量

    46159

原文標(biāo)題:RISC-V編譯環(huán)境搭建

文章出處:【微信號(hào):FPGA開(kāi)源工坊,微信公眾號(hào):FPGA開(kāi)源工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RISC-V MCU開(kāi)發(fā) (一):集成開(kāi)發(fā)環(huán)境

    (MRS)便是其中一種。 ? ? ?MRS是一款針對(duì)嵌入式項(xiàng)目(RISC-V/ARM)的集成開(kāi)發(fā)環(huán)境,提供了包括編輯器、C編譯
    發(fā)表于 09-23 14:32 ?4038次閱讀
    <b class='flag-5'>RISC-V</b> MCU開(kāi)發(fā) (一):集成開(kāi)發(fā)<b class='flag-5'>環(huán)境</b>

    RISC-V開(kāi)發(fā)分析 CSM32RV20開(kāi)發(fā)板環(huán)境搭建

    一、材料準(zhǔn)備: ?1. RISC-V ?CSM32RV20開(kāi)發(fā)板 ?X 1 ? ? 2. ? CSM Studio IDE(開(kāi)發(fā)調(diào)試) 3. CSM-ISP(串口燒錄) ? 二、 IDE環(huán)境搭建
    發(fā)表于 03-01 09:05 ?1318次閱讀
    <b class='flag-5'>RISC-V</b>開(kāi)發(fā)分析  CSM32RV20開(kāi)發(fā)板<b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>

    【「RISC-V體系結(jié)構(gòu)編程與實(shí)踐」閱讀體驗(yàn)】-- SBI及NEMU環(huán)境

    ,之前我自己已經(jīng)搭建過(guò)QEMU的:《基于QEMU搭建RISC-V的Linux環(huán)境》https://mp.weixin.qq.com/s/F6lyqPhng21qsUlj2saShw 今
    發(fā)表于 11-26 09:37

    關(guān)于RISC-V學(xué)習(xí)路線圖推薦

    開(kāi)發(fā)板,如Arduino、Raspberry Pi等,并了解其硬件配置和特性。 安裝開(kāi)發(fā)工具鏈 : 如GCC編譯器、RISC-V匯編器和鏈接器等,用于編寫(xiě)、編譯和調(diào)試RISC-V程序。
    發(fā)表于 11-30 15:21

    risc-v單片機(jī)使用分享

    最近發(fā)現(xiàn)一直使用的ch340芯片的廠家出了risc-v內(nèi)核的芯片,搞了塊開(kāi)發(fā)板嘗嘗鮮,沒(méi)有開(kāi)發(fā)過(guò)這種內(nèi)核的芯片,查資料說(shuō)要用eclipse來(lái)搭編譯環(huán)境,準(zhǔn)備等等看有沒(méi)有合適的 IDE發(fā)布,順便也研究下
    發(fā)表于 07-30 10:20

    怎么搭建risc-v學(xué)習(xí)平臺(tái)

    risc-v學(xué)習(xí)平臺(tái)搭建
    發(fā)表于 12-15 07:14

    RISC-V單片機(jī)快速入門(mén)01-開(kāi)發(fā)環(huán)境搭建 相關(guān)資料下載

    在Nuclei Studio IDE下環(huán)境搭建工作,下一講,我們開(kāi)始正式移植RT_Thread系統(tǒng)。一、基礎(chǔ)知識(shí)1.RISC-V簡(jiǎn)介RISC-V(讀作“
    發(fā)表于 07-01 08:26

    RISC-V MCU開(kāi)發(fā) (一):集成開(kāi)發(fā)環(huán)境

    一種。MRS是一款針對(duì)嵌入式項(xiàng)目(RISC-V/ARM)的集成開(kāi)發(fā)環(huán)境,提供了包括編輯器、C編譯器、宏匯編、鏈接器、庫(kù)管理、仿真調(diào)試器和下載器等在內(nèi)的完整開(kāi)發(fā)資源,工具鏈方面增加了對(duì)WCH
    發(fā)表于 09-22 14:44

    目前RISC-V都支持哪些開(kāi)發(fā)環(huán)境?

    RISC-V的小白一枚,想擴(kuò)展一下有關(guān)RISC-V的知識(shí),請(qǐng)問(wèn)目前RISC-V都支持那些通用的開(kāi)發(fā)環(huán)境?還是必須使用各廠商的特定的開(kāi)發(fā)環(huán)境
    發(fā)表于 03-20 13:57

    RISC-V的開(kāi)發(fā)環(huán)境

    如何搭載RISC-V的開(kāi)發(fā)環(huán)境,主要注意什么?
    發(fā)表于 03-24 08:17

    RISC-V嵌入式開(kāi)發(fā)準(zhǔn)備篇1:編譯過(guò)程簡(jiǎn)介

    本文的目的是對(duì)編譯過(guò)程進(jìn)行簡(jiǎn)單的科普與回顧,為后續(xù)詳細(xì)介紹“RISC-V GCC工具鏈”和“RISC-V匯編語(yǔ)言程序設(shè)計(jì)”打下基礎(chǔ)。
    發(fā)表于 11-02 19:06 ?40次下載
    <b class='flag-5'>RISC-V</b>嵌入式開(kāi)發(fā)準(zhǔn)備篇1:<b class='flag-5'>編譯</b>過(guò)程簡(jiǎn)介

    RISC-V單片機(jī)快速入門(mén)01-開(kāi)發(fā)環(huán)境搭建

    在Nuclei Studio IDE下環(huán)境搭建工作,下一講,我們開(kāi)始正式移植RT_Thread系統(tǒng)。一、基礎(chǔ)知識(shí)1.RISC-V簡(jiǎn)介RISC-V(讀作“
    發(fā)表于 11-13 16:21 ?12次下載
    <b class='flag-5'>RISC-V</b>單片機(jī)快速入門(mén)01-開(kāi)發(fā)<b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>

    RISC-V MCU CSM32RV20開(kāi)發(fā)(一):環(huán)境搭建

    RV32IMAC Core (2.6 CoreMark/MHz)。【準(zhǔn)備】 IDE: CSMStudio ,也是南京中科微針對(duì)嵌入式項(xiàng)目RISC-V系列MCU開(kāi)發(fā)的的集成開(kāi)發(fā)環(huán)境,提供了包括編輯器、C編譯器、宏匯編、鏈接器、
    發(fā)表于 11-18 17:06 ?18次下載
    <b class='flag-5'>RISC-V</b> MCU CSM32RV20開(kāi)發(fā)(一):<b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>

    關(guān)于RISC-V MCU開(kāi)發(fā)實(shí)例(一):環(huán)境搭建

    關(guān)于RISC-V MCU開(kāi)發(fā)實(shí)例:咱們以CSM32RV20的開(kāi)發(fā)環(huán)境搭建為例子,我們可以參看動(dòng)能世紀(jì)客戶分享的案例情況。
    的頭像 發(fā)表于 07-20 14:17 ?2385次閱讀
    關(guān)于<b class='flag-5'>RISC-V</b> MCU開(kāi)發(fā)實(shí)例(一):<b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>

    RISC-V MCU CSM32RV20開(kāi)發(fā)(一):環(huán)境搭建

    RISC-V MCU CSM32RV20開(kāi)發(fā)(一):環(huán)境搭建,RISCV核的低功耗MCU。
    的頭像 發(fā)表于 01-20 19:06 ?1877次閱讀
    <b class='flag-5'>RISC-V</b> MCU CSM32RV20開(kāi)發(fā)(一):<b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>