最近發(fā)布的202102版本的Nuclei Studio IDE增加了QEMU仿真器,可支持RV-STAR開(kāi)發(fā)板的仿真,本教程旨在介紹如何使用該仿真環(huán)境進(jìn)行RISC-V嵌入式開(kāi)發(fā)。
系統(tǒng)環(huán)境
Windows 10-64bit
軟件平臺(tái)
Nuclei Studio IDE 202102版
Nuclei Studio的下載和安裝
在芯來(lái)科技官網(wǎng)文檔與工具頁(yè)面可以下載 Nuclei Studio IDE軟件,其鏈接如下:
https://www.nucleisys.com/download.php
根據(jù)自己的操作系統(tǒng)下載對(duì)應(yīng)的文件即可,IDE不需要安裝,下載后直接解壓縮即可使用;
啟動(dòng)Nuclei Studio
在 Nuclei Studio 解壓縮的目錄下雙擊 NucleiStudio.exe 即可啟動(dòng) IDE;第一次啟動(dòng) Nuclei Studio 將會(huì)彈出對(duì)話框要求設(shè)置 Workspace 目錄路徑,該目錄將用于存放后續(xù)創(chuàng)建的項(xiàng)目工程文件。設(shè)置好 Workspace 路徑,再單擊 “Launch” 啟動(dòng) Nuclei Studio;啟動(dòng)后頁(yè)面如下圖,推薦打開(kāi) Launch Bar 功能,方便快速編譯和調(diào)試。打開(kāi)菜單欄 “Window -> Preferences”,搜索 “bar”,勾選第一個(gè)選項(xiàng) “Enable the Launch Bar”即可啟用 Launch Bar 功能。下滑查看更多
新建模板helloworld工程
在菜單欄中,選擇 “File-> New -> C/C Project” 開(kāi)始新建工程,在彈窗中雙擊選擇 “C Managed Build” ;
新的頁(yè)面中 “Project name” 填寫(xiě) “helloworld” , “Project type” 選擇 “Nuclei SDK Project For GD32VF103 SoC” 和 “RISC-V Cross GCC” ,如下圖,點(diǎn)擊 “Next” 。新的頁(yè)面不用修改,直接點(diǎn)擊 “Next” 即可;
我們?cè)谶x擇 Board 時(shí),請(qǐng)記得一定要選 gd32vf103v_rvstar 這塊板子噢!
在選擇模板工程頁(yè)面修改“Project Example”選項(xiàng)為“baremetal_helloworld”。
后續(xù)頁(yè)面不需要修改,點(diǎn)擊“Next”直到最后一頁(yè),點(diǎn)擊“Finish”完成新建模板helloworld工程。最終IDE界面顯示如下:
調(diào)試helloworld
在Launch Bar可以看到有兩個(gè)配置如下圖
我們看一下QEMU的配置,這些已經(jīng)配置好了,如果不太了解的同學(xué),這里基本上可以不用進(jìn)行任何設(shè)置。
然后選中 debug 模式并啟動(dòng) debug
編譯器對(duì)代碼進(jìn)行編譯后,會(huì)跳出 Switch 框,選 Switch 后進(jìn)入調(diào)試模式
調(diào)試模式的界面如下
IDE提供了豐富的調(diào)試工具,具體的就不一一介紹了,大家可以去嘗試。
雖然是在QEMU仿真環(huán)境下,但應(yīng)用的還是gdb調(diào)試工具,所以也是支持gdb命令行調(diào)試的,選中Debugger Console,就可以輸入gdb命令了。
我們可以查看一下仿真環(huán)境下的寄存器。結(jié)果如下圖,更多命令使用大家可以自行查閱gdb的使用手冊(cè)。
當(dāng)然,也可以在圖形界面中查看寄存器。
在工具欄選 :
Window ->Show View ->Registers
在彈出的 Registers 框中,就可以非常方便的查看寄存器信息。我們可以在調(diào)試過(guò)程中查看相關(guān)信息的變化。
運(yùn)行helloworld
在調(diào)試模式下代碼無(wú)bug,我們可以直接運(yùn)行代碼查看運(yùn)行結(jié)果,在run程序前,一定要將之前啟動(dòng)的QEMU結(jié)束掉,不管是openOCD還是QEMU的進(jìn)程都是排它性,所以運(yùn)行或者調(diào)試結(jié)束后,一定要記得點(diǎn)關(guān)閉按鈕。不然后報(bào)錯(cuò)如下圖:
結(jié)束QEMU依次點(diǎn)下面三個(gè)按鈕,確保進(jìn)程已結(jié)束。
結(jié)束調(diào)試后開(kāi)始運(yùn)行前,建議clean一下工程,在工程名上左鍵->clean Project,IDE就會(huì)幫您清除掉編譯生成的編譯文件。
直接點(diǎn)運(yùn)行,就可以了看到IDE開(kāi)始編譯代碼并運(yùn)行,如果代碼正確,就會(huì)輸出代碼的結(jié)果。
下滑查看更多
在沒(méi)有連接板子的情況下,我們成功運(yùn)行了helloworld程序。
至此,在Nuclei Studio中基于QEMU進(jìn)行嵌入式代碼開(kāi)發(fā)和調(diào)試的介紹就結(jié)束了。
更多實(shí)驗(yàn)
更多實(shí)驗(yàn)例程可以到RV
MCU社區(qū)快速入門(mén)頁(yè)面獲取教程資料
https://www.rvmcu.com/quickstart.html