前言

Windows環境下搭建基於Eclipse + RISC-V gcc編譯器的RISC-V開發環境,配合openocd調試軟體,可以實現RISC-V內核程序的編譯、下載和調試。

準備工作

工欲善其事,必先利其器,RISC-V開發環境搭建之前,要先準備好所需要的軟體,如下:

  • jdk-8u101-windows-x64.exe
  • Eclipse IDE for C/C++ developers
  • GNU MCU Eclipse Windows Build Tools
  • openocd
  • riscv32-unknown-elf-gcc

其中, jdk軟體是在Eclipse不能打開時,才需要安裝,如果能正常打開Eclipse則不需要安裝,後面的幾個軟體都是壓縮包形式,只需要解壓到對應的位置,就可以直接使用,不需要安裝。

安裝Eclipse及工具鏈、調試工具

由於這些軟體都是解壓後就可以直接使用的,為了簡化操作步驟,我已經把這些軟體放在了一起,並壓縮成了一個文件,直接解壓就可以使用。

Eclipse.rar下載鏈接

鏈接:pan.baidu.com/s/1TvM_do 提取碼:zj5f

包含:

  • Eclipse
  • GNU MCU Eclipse WindowsBuild Tools
  • openocd
  • riscv32-unknown-elf-gcc
  • Boot_Config

壓縮包里,我添加了上一個帖子織女星開發板啟動模式修改中介紹的用於切換啟動模式的兩個批處理文件,可以方便的對RV32M1的啟動模式進行切換。

下載eclipse.rar文件之後,解壓到本地,我的是解壓到 F:VEGA_BoardIDE

其中GNU MCU Eclipse目錄結構如下:

安裝JAVA運行環境JRE

如果Eclipse.exe可以正常打開,就不用安裝JAVA運行環境。我的電腦在運行Eclipse.exe,不能打開,出現A Java Runtime Environment or Java Development Kit(dkmust be available in order to run eclipse. balabala......,如下圖

網上搜索一番,發現是沒有安裝JAVA運行環境,而Eclipse是基於JAVA運行的,然後找了一個jdk安裝,再打開就好了。

jdk-8u101-windows-x64.exe下載

鏈接:pan.baidu.com/s/1AhZPEW 提取碼:umsr

下載完成之後,雙擊安裝,一路Next就行,安裝目錄選擇和Eclipse同一級。

如果還不能正常打開,可以嘗試在環境變數中添加JAVA_HOME變數,變數值為jre目錄下的bin文件夾,我的是在:F:VEGA_BoardIDEjrein,然後重新打開Eclipse。

主界面

配置編譯鏈路徑

Eclipse正常打開後,還需要配置編譯工具和調試軟體的路徑。

1.配置全局編譯工具路徑

選擇Windows->Preferences,選擇MCU->Global Build Tools Path,設置全局編譯工具的路徑為[INSTALL_DIR]eclipseGNU MCU EclipseBuild Tools2.12-20190422-1053in

2.配置openocd調試軟體路徑

選擇MCU-> Global OpenOCD Path,設置全局openocd調試軟體路徑[INSTALL_DIR]eclipseGNU MCU Eclipseopenocdin

3.配置RISC-V編譯工具鏈

選擇MCU-> Global RISC-V Toolchains Path,設置全局openocd調試軟體路徑[INSTALL_DIR]eclipseGNU MCU Eclipse
iscv32-unknown-elf-gccin

升級板載調試器固件

為了能直接使用板載調試來直接調試RISC-V內核,需要把板子默認的CMSIS-DAP固件升級為JLink固件,並升級Jlink驅動,詳情可以參考這篇帖子:織女星開發板調試器升級為Jlink固件,並把Jlink調試口和RISC-V調試口連接。

編譯下載Demo工程

1.導入Demo工程

選擇File->Import,或者是按快捷鍵Alt+F,然後再按I鍵,選擇導入已經存在的工程,

這裡我們選擇RISC-V核SDK下的GPIO點燈程序,所在的位置:
v32m1_sdk_riscvoards
v32m1_vegadriver_examplesgpioled_output
i5cy
iscveclipse

在彈出的界面,輸入工程所在的目錄,點擊完成。

2.編譯下載

示常式序很簡單,就是讓RGB中紅色LED閃爍。

工程名稱右鍵選擇Build Project,或者是按快捷鍵Ctrl+B,編譯整個工程。

如果沒有錯誤,會顯示

Info: Internal Builder is used for build
Info: Parallel threads used: 0

20:38:19 Build Finished. 0 errors, 0 warnings. (took 1s.876ms)

默認是編譯的Debug版本,還可以選擇編譯Release版本。

編譯無誤後,點擊Run->Run As->2 Local C/C++ Application

選擇下載Debug還是Release版本的編程文件

下載日誌。

Open On-Chip Debugger 0.10.0+dev-00433-g849f49ca (2019-01-04-07:48)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 1000 kHz
srst_only separate srst_gates_jtag srst_open_drain connect_deassert_srst
Info : mohor tap selected
Info : adv debug unit selected
Info : Option 1 is passed to adv debug unit
Info : core 0 selected
Info : add flash_bank rv32m1 rv32m1.flash0
Info : add flash_bank rv32m1 rv32m1.flash1
Warn : Failed to open device: LIBUSB_ERROR_NOT_SUPPORTED.
Info : J-Link LPCXpresso V2 compiled Sep 23 2016 12:14:15
Info : Hardware version: 1.00
Info : VTarget = 3.300 V
Info : clock speed 1000 kHz
Info : JTAG tap: rv32m1.cpu tap/device found: 0x249511c3 (mfg: 0x0e1 (Wintec Industries), part: 0x4951, ver: 0x2)
Info : adv debug unit is configured with option ADBG_USE_HISPEED
Info : Listening on port 3333 for gdb connections
Started by GNU MCU Eclipse
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : accepting gdb connection on tcp/3333
Info : JTAG tap: rv32m1.cpu tap/device found: 0x249511c3 (mfg: 0x0e1 (Wintec Industries), part: 0x4951, ver: 0x2)
Info : JTAG tap: rv32m1.cpu tap/device found: 0x249511c3 (mfg: 0x0e1 (Wintec Industries), part: 0x4951, ver: 0x2)
Info : JTAG tap: rv32m1.cpu tap/device found: 0x249511c3 (mfg: 0x0e1 (Wintec Industries), part: 0x4951, ver: 0x2)
Info : JTAG tap: rv32m1.cpu tap/device found: 0x249511c3 (mfg: 0x0e1 (Wintec Industries), part: 0x4951, ver: 0x2)
Info : Flash write discontinued at 0x00001424, next section at 0x000fff00
Info : JTAG tap: rv32m1.cpu tap/device found: 0x249511c3 (mfg: 0x0e1 (Wintec Industries), part: 0x4951, ver: 0x2)
Info : JTAG tap: rv32m1.cpu tap/device found: 0x249511c3 (mfg: 0x0e1 (Wintec Industries), part: 0x4951, ver: 0x2)
Info : JTAG tap: rv32m1.cpu tap/device found: 0x249511c3 (mfg: 0x0e1 (Wintec Industries), part: 0x4951, ver: 0x2)
===== RI5CY registers
(0) zero (/32): 0x00000000
(1) ra (/32): 0x00000000

3.顯示效果

參考資料

  • RV32M1_Vega_Develop_Environment_Setup.pdf

歷史精選

  • 織女星開發板啟動模式修改——從ARM M4核啟動
  • 織女星開發板調試器升級為Jlink固件
  • NXP恩智浦VEGA織女星開發板免費申請!
  • 國產處理器的逆襲機會——RISC-V
  • 手把手教你製作Jlink-OB調試器(含原理圖、PCB、外殼、固件)
  • Jlink使用技巧系列教程索引
  • Qt實現軟體自動更新的一種簡單方法

歡迎關注我的個人博客:www.wangchaochao.top

或微信掃碼關注我的公眾號


推薦閱讀:
相关文章