› 論壇總覽 › GD32 RISC-V 論壇 › 開始使用GD32 RISC-V Nano/Pico › 深入淺出GD32 RISC-V Nano/Pico – (七) RV-Link 仿真器製作與使用
- This topic has 0 則回覆, 1 個參與人, and was last updated 3 years, 8 months ago by johnson.
-
作者文章
-
2021 年 3 月 7 日 下午 3:22 #586
什麼是仿真器?
完成工具鏈範例程式上傳後,若程式碼有問題,下一步就是除錯。
但要除錯除了要有軟體(請參考: MapleBoard GDB使用教學)之外,也需要有硬體的配合。
一般來說,模擬MCU(或CPU)的硬體裝置叫做”仿真器”(Emulator)。它可以是一個同樣型號的MCU,或者是特殊的FPGA(可程式化邏輯陣列)搭載與產品相同功能的電路,或者是經過特殊設計的晶片。但他們的目的都只有一個,就是讓使用者可以在仿真電路上模擬實際產品執行的狀態,並且傳送中斷訊號給目標版。
在所有的嵌入式系統中,JTAG是微處理器必備的連接埠。雖然JTAG會耗掉晶片腳位以及內部的電路面積,但是對於後續的開發與除錯而言,這點犧牲是絕對值得的,因為在系統韌體尚未建立好之前,除錯部分只能仰賴已經建立好的通訊協定才能夠除錯,而JTAG就是為此而生。
當然,GD32VF103CBT6也不例外,官方使用者手冊中有寫到,在第 10章的Debug中, GD32VF103CBT6與JTAG對應的腳位分別是PA15, PA14,PA13,PB4以及PB3,且這幾個腳位也可以透過軟體定義為通用輸出輸入埠(General Purpose Input Output)。
什麼是RV-Link?
RV-Link是一個與BlackMagic相似的開源仿真器專案,有鑑於市售的專業仿真器價格偏高,有一群開發者把GD32V系列MCU改造成能夠為同型號晶片除錯的仿真器,並命名為RV-Link。其命名概念與J-Link相似,就是一個電腦與開發晶片的溝通橋樑。
左圖是除錯時所有軟硬體組合在一起的架構。
我們可以看到最左邊藍色框框是我們的主機端,大部份是個人電腦,我們先在電腦上安裝GDB後,GDB會透過遠端通訊協議(可能是TCP/IP或其他協議)與OpenOCD連線,而OpenOCD再透過USB的傳輸協議與仿真器溝通,也就是圖中的Adapter。
有些仿真器會內建GDB Server,這樣就不需要另外對OpenOCD進行設定,也不用使用遠端通訊協定與GDB溝通。RV-Link就是屬於有內建GDB Server的仿真器。
有了仿真器,我們就可以透過JTAG的腳位定義與目標板進行連接與除錯。
RV-Link專案官方網站:https://gitee.com/zoomdy/RV-LINK(簡體中文)
下載RV-Link韌體
前往https://github.com/MapleBoard/mpb-rv-link
下載我們的RV-Link韌體,也可以使用終端指令:
$ git clone https://github.com/MapleBoard/mpb-rv-link
從Github下載。下載完成後可以看到裡面有一個名為
“RV-Link_firmware_for_GD32_RISC-V_NanoPico.bin”
這是我們預先建置好的二進制檔案,趕時間的朋友可以直接把這個檔案透過dfu-util上傳到手上的GD32 RISC-V Nano/Pico上,上傳成功後RV-Link就可以馬上使用了。
Dfu-util安裝與使用教學:https://stage.mapleboard.org/dfu-util-installation-and-use-guide/
有興趣研究RV-Link運作原理的朋友,可以點開src資料夾,研究內部的程式碼。
建置與燒錄RV-Link韌體
下載好RV-Link的韌體後,我們可以使用MapleBoard工具鏈把韌體從原始碼建置。
首先將終端機工作路徑移動到剛剛下載的檔案路徑,並直接輸入:
$ make
就可以看到終端機吐出許多CC, AS, LD, COPY等等字樣,如同MapleBoard工具鏈範例使用教學一樣,最後也會顯示產生的執行檔檔案位置。
使用檔案總管開啟這個資料夾會發現,多了一個build資料夾與output資料夾,我們要上傳的檔案位於output資料夾內,名為
t-gd32+gd32vf103.bin
這個檔案。
我們在終端視窗中使用dfu-util:dfu-util -d 28e9:0189 -a 0 –dfuse-address 0x08000000:leave -D ~/Mpb-RV-Link/output/t-gd32+gd32vf103.bin
就可以將我們編譯好的RV-Link原始碼上傳到GD32 RISC-V Nano/Pico上了!!
若自己有調整過原始碼的內容,也別忘了重新建置在上傳,否則上傳的會是舊版的二進制碼唷。若遇到錯誤,請先確認電腦使否已正確安裝MapleBoard工具鏈,並且將工具鏈指令新增到系統環境變數中。
使用RV-Link
上傳完成後,我們可以開始使用MapleBoard工具鏈的GDB來為目標板進行除錯,關於GDB的使用說明以及常用指令,請參考:
-
作者文章
- 需要以回覆此篇主題...