搭建riscv虛擬環(huán)境可以理解為擁有兩個功能就可以了:
其一是編譯,即將c語言代碼(目前好像只支持c語言)編譯成能在riscv指令架構下運行的匯編語言和機器語言。
其二是riscv的虛擬,模擬一個riscv板,運行riscv指令,這里使用qemu。
本人環(huán)境
面對一個剛剛裝好的Ubuntu環(huán)境,首先當然是更新
sudo apt update
sudo apt upgrade
安裝編譯環(huán)境本人這里是安裝sifive的交叉編譯工具鏈
sifive官網(wǎng):https://www.sifive.com/software
可根據(jù)自己操作系統(tǒng)找 如圖 比如我的是Ubuntu
安裝包你可以先下下來再傳到你的Ubuntu,但是云服務器有大小限制,這里就直接在命令行里下載了
為了看起來方便 我先建立了一個riscv文件夾 方法
mkdir riscv
cd riscv
然后從官網(wǎng)下載
wget https://static.dev.sifive.com/dev-tools/freedom-tools/v2020.12/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz?_ga=2.5551280.2018998367.1669891766-2030521401.1668046281
下載好了就可以解壓
tar zxvf riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz\?_ga\=2.5551280.2018998367.1669891766-2030521401.1668046281
解壓之后就多出來一個文件夾,可以把安裝包刪掉了,rm + 名稱
為方便以后,可以把文件夾名稱改短一點 ,mv 原名稱 現(xiàn)名
我改成了toolchain
mv riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/ toolchain
再進入toolchain文件夾之后,可以看到有 如圖
進入bin文件夾中,可以看到有很編譯工具了 如圖
這時候 我們只需設置一下環(huán)境變量 就可以直接使用這些工具了
設置環(huán)境變量
可以先進入在bin文件夾查看路徑
比如我的
然后復制路徑
vim ~/.bashrc
打開bashrc 將光標移動到最后面 按一下 “i”鍵 變成insert模式 添加內容如下 根據(jù)自己的路徑改一下 格式是 export PATH=路徑:$PATH
export PATH=/home/lighthouse/riscv/toolchain/bin:$PATH
按esc 然后 :wq 退出 要是不大會 可以自行搜索vim使用方法
然后再輸入以下指令 使環(huán)境變量生效
source ~/.bashrc
可以回到riscv文件夾路徑下 使用riscv64-unknown-elf-gcc --version
驗證是否設置成功
如圖 則表示成功
下載網(wǎng)址:https://download.qemu.org/
我現(xiàn)在的最新版本是7.1
可以右擊復制鏈接地址 再用wget方法下載 比如我的命令(注意回到riscv文件路徑,養(yǎng)成好習慣)wget https://download.qemu.org/qemu-7.1.0.tar.xz
同樣下載好了之后解壓
順帶刪除安裝包、改名
注意根據(jù)你的實際名稱操作~
tar xvf qemu-7.1.0.tar.xz
rm qemu-7.1.0.tar.xz
mv qemu-7.1.0/ qemu
完成后進入qemu文件夾 最后只需要安裝編譯qemu就好了
./configure
在執(zhí)行的過程會碰到一些依賴包沒有報錯的情況 依次下載就好了
比如 (可以自行百度安裝方法)
以下是我安裝的一些安裝包以及方法
sudo apt-get install ninja-build
sudo apt-get install libglib2.0-dev
sudo apt-get install libpixman-1-dev
最后進入build文件夾
執(zhí)行
sudo make
sudo make install
這個過程有一些些久 耐心等待就好了
結束之后 可以回到根目錄 通過qemu-riscv64 --version
驗證
如下表示成功 接下來 我用一個簡單的C語言程序 驗證環(huán)境是否搭建完成
在根目錄下 新建一個文件夾 workplace 并新建一個hello.c文件
mkdir workplace
cd workplace
touch hello.c
vim hello.c
將代碼放入
#includeint main(void){printf("hello\n");
}
分別使用進行riscv64-unknown-elf-gcc
和qemu-riscv64
編譯和執(zhí)行,結果如下
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
名稱欄目:riscv虛擬環(huán)境搭建基于Ubuntu20服務器-創(chuàng)新互聯(lián)
分享鏈接:http://aaarwkj.com/article40/pppho.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、虛擬主機、品牌網(wǎng)站設計、搜索引擎優(yōu)化、面包屑導航、網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)