www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 公眾號精選 > 嵌入式IoT

riscv64架構上運行rt-thread

  • 1.本文目的

  • 2.環(huán)境搭建

    • 2.1 qemu編譯riscv版本

    • 2.2 交叉編譯工具鏈下載

    • 2.3 編譯opensbi

    • 2.4 編譯rt-thread

  • 3.程序運行

  • 4.總結

1.本文目的

本文主要描述如何在riscv64 的qemu上運行rt-thread。該項目大部分工作借鑒中科院的點亮計劃的項目,為這些不斷貢獻開源的同學點贊。項目地址如下:

https://isrc.iscas.ac.cn/gitlab/summer2020/students/proj-2023112

該項目已經(jīng)完成riscv64適配rt-thread的工作,但是使用起來還是有一些復雜,因為會通過qemu加載opensbi然后啟動一個uboot,通過uboot加載rt-thread編譯生成的固件。

本文的目的就是簡化啟動流程,直接通過qemu+opensbi+rt-thread,這種方式運行。因為當前rt-thread工程中任會依賴opensbi的部分接口實現(xiàn)的。

2.環(huán)境搭建

需要準備四個工具,本次環(huán)境搭建主要以Ubuntu18.04環(huán)境下進行測試。

1.qemu開源最新版本

2.riscv交叉編譯工具

3.opensbi開源最新代碼

4.rt-thread適配源代碼

下面從上面四個環(huán)境來進行描述:

2.1 qemu編譯riscv版本

從官網(wǎng)可以下載最新的版本

https://www.qemu.org/

可以適配最新的版本:

下載完成后解壓,然后開始編譯

./configure --target-list=riscv64-softmmu
make j4
make install 

編譯完成后,可以輸入qemu-system-riscv64 --version進行驗證

# qemu-system-riscv64 --version QEMU emulator version 5.2.0
Copyright (c) 2003-2020 Fabrice Bellard and the QEMU Project developers

2.2 交叉編譯工具鏈下載

由于需要編譯opensbi與rt-thread,所以需要下載對應的交叉編譯工具鏈:

可以在如下的網(wǎng)站進行下載:

https://www.sifive.com/software

下載對應平臺的編譯工具鏈解壓即可:

下載完成后解壓即可。

2.3 編譯opensbi

接下來從github上獲取最新的opensbi工程文件。

git clone https://github.com/riscv/opensbi.git

下載完成后進入opensbi目錄

export CROSS_COMPILE=/riscv64-unknown-elf-
make PLATFORM=generic

編譯完成后可以生成

build/platform/generic/firmware/fw_jump.elf

其中fw_jump.elf是啟動rt-thread需要的。

2.4 編譯rt-thread

原生點亮計劃的工程無法正常的,我已經(jīng)完成當前工程的適配工作,可以在下面地址下載代碼:

git clone https://gitee.com/bigmagic/riscv64_rtt.git

進入對應的bsp:

riscv64_rtt/bsp/riscv64-virt

設置交叉編譯工具鏈:

當前設置交叉編譯工具鏈有兩張方式:

1.修改rtconfig.py修改

if CROSS_TOOL == 'gcc':
 PLATFORM    = 'gcc' EXEC_PATH   = r'/your_path/riscv64-unknown-elf-gcc-8.3.0-2020.04.0-x86_64-linux-ubuntu14/bin' 

將EXEC_PATH改為自己的交叉編譯工具鏈路徑。

2.在控制臺輸入

export RTT_EXEC_PATH=/your_path/riscv64-unknown-elf-gcc-8.3.0-2020.04.0-x86_64-linux-ubuntu14/bin

開始編譯

scons -c
scons

正常情況下會生成對應的rtthread.elf文件。

3.程序運行

當前我已將集成運行腳本和opensbi生成的fw_jump.elf上傳上去了。所以直接執(zhí)行

./start.sh

可以看到程序正常運行起來了。

當然,也可測試一下tick和線程運行情況。

均正常執(zhí)行。

如果想通過自己編譯的opensbi固件,可以按照第二章節(jié)的opensbi進行自行替換。

啟動腳本如下:

qemu-system-riscv64 -M virt -smp 2 -bios fw_jump.elf -kernel rtthread.elf -nographic

這里沒什么特別需要注意的地方。

4.總結

在riscv64的qemu上運行rt-thread是一種全新的嘗試,有助于對riscv的深入理解和掌握。其中需要借助opensbi的接口進行設計,這種思想很特別。具體我也還需要深入研究,不敢斷下結論。

這次的點亮計劃在rt-thread這邊有兩個項目還是很有研究價值的,一個是riscv的rtt port,另外一個是龍芯2k1000的驅動,這些都是對國產(chǎn)芯片最新的嘗試,讓大學生去接觸最新最前沿的東西,而不是學一些已經(jīng)過時的東西,我覺得是很必要的。雖然當前點亮計劃項目中代碼處理的不是完善,只能作為學習使用,并且很多設計不是很合理,對于一個大學生來說,這可能是已經(jīng)盡了自己最大的努力了。萬事開頭難,只要有人開了這個頭,就能夠不斷的完善,讓其變成一個更加通用,好用的東西。

從非盈利的角度上來看,應該大力倡導開源,大力完善知識共享體系。


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
關閉