前言
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下載鏈接
鏈接:https://pan.baidu.com/s/1TvM_do0hdHHmJw2ARJNMWg 提取碼:zj5f
包含:
- Eclipse
- GNU MCU Eclipse WindowsBuild Tools
- openocd
- riscv32-unknown-elf-gcc
- Boot_Config
壓縮包里,我添加了上一個帖子織女星開發板啟動模式修改中介紹的用於切換啟動模式的兩個批處理文件,可以方便的對RV32M1的啟動模式進行切換。
下載eclipse.rar文件之后,解壓到本地,我的是解壓到 F:\VEGA_Board\IDE\
其中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下載
鏈接:https://pan.baidu.com/s/1AhZPEW03y90M2usa2L3c3w 提取碼:umsr
下載完成之后,雙擊安裝,一路Next就行,安裝目錄選擇和Eclipse同一級。
如果還不能正常打開,可以嘗試在環境變量中添加JAVA_HOME變量,變量值為jre目錄下的bin文件夾,我的是在:F:\VEGA_Board\IDE\jre\bin
,然后重新打開Eclipse。
主界面
配置編譯鏈路徑
Eclipse正常打開后,還需要配置編譯工具和調試軟件的路徑。
1.配置全局編譯工具路徑
選擇Windows->Preferences
,選擇MCU->Global Build Tools Path
,設置全局編譯工具的路徑為[INSTALL_DIR]\eclipse\GNU MCU Eclipse\Build Tools\2.12-20190422-1053\bin
。
2.配置openocd調試軟件路徑
選擇MCU-> Global OpenOCD Path
,設置全局openocd調試軟件路徑[INSTALL_DIR]\eclipse\GNU MCU Eclipse\openocd\bin
。
3.配置RISC-V編譯工具鏈
選擇MCU-> Global RISC-V Toolchains Path
,設置全局openocd調試軟件路徑[INSTALL_DIR]\eclipse\GNU MCU Eclipse\riscv32-unknown-elf-gcc\bin
升級板載調試器固件
為了能直接使用板載調試來直接調試RISC-V內核,需要把板子默認的CMSIS-DAP固件升級為JLink固件,並升級Jlink驅動,詳情可以參考這篇帖子:織女星開發板調試器升級為Jlink固件,並把Jlink調試口和RISC-V調試口連接。
編譯下載Demo工程
1.導入Demo工程
選擇File->Import
,或者是按快捷鍵Alt+F
,然后再按I
鍵,選擇導入已經存在的工程,
這里我們選擇RISC-V核SDK下的GPIO點燈程序,所在的位置:\rv32m1_sdk_riscv\boards\rv32m1_vega\driver_examples\gpio\led_output\ri5cy\riscveclipse
在彈出的界面,輸入工程所在的目錄,點擊完成。
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.顯示效果
參考資料
歷史精選
- 織女星開發板啟動模式修改——從ARM M4核啟動
- 織女星開發板調試器升級為Jlink固件
- NXP恩智浦VEGA織女星開發板免費申請!
- 手把手教你制作Jlink-OB調試器(含原理圖、PCB、外殼、固件)
- Jlink使用技巧系列教程索引
- Qt實現軟件自動更新的一種簡單方法
歡迎關注我的個人博客:www.wangchaochao.top
或微信掃碼關注我的公眾號