前言
本人最近在做有關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位版本的,想安裝該版本的同學同樣可以參照這期視頻來進行安裝,同樣也是寫好的自動安裝腳本,非常方便。