cropped-forum.png

論壇總覽 GD32 RISC-V 論壇 開始使用GD32 RISC-V Nano/Pico 深入淺出GD32 RISC-V Nano/Pico – (七) RV-Link 仿真器製作與使用

標籤: ,

正在檢視 1 篇文章 - 1 至 1 (共計 1 篇)
  • 作者
    文章
  • #586
    johnson
    管理員
      @johnson

      什麼是仿真器?

      完成工具鏈範例程式上傳後,若程式碼有問題,下一步就是除錯。

      但要除錯除了要有軟體(請參考: 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的使用說明以及常用指令,請參考:

      MapleBoard GDB使用教學

       

    正在檢視 1 篇文章 - 1 至 1 (共計 1 篇)
    • 需要以回覆此篇主題...