开发环境:
开发板:GD32VF103R-START
IDE:Nuclei Studio
RISC-V系列的MCU开发环境有很多,可以使用VS Code开发,也可以使用IDE,比如Embedded studio、Eclipse(Nuclei Studio、MounRiver Stuido、GNU MCU Eclipse)等,IAR也支持RISC-V。无论使用什么工具,编译工具还是使用riscv-none-embed,本质是一样的。
1.1基于Nuclei Studio开发
1.1.1 Nuclei Studio IDE安装
Nuclei Studio IDE 是基于eclipse的,软件是免安装的。因此直接去Nuclei官网下载对应的版本即可。
值得注意的是,安装Nuclei Studio IDE之前,电脑中要有Java运行时环境(JRE)。
因为Nuclei Studio IDE是Java写的,不然怎么能跨平台,这也是为什么在安装前需要检查Java环境。如果你安装过JDK,那么跳过此步骤即可。
下载后点击JavaSetupxxx.exe即可安装。
打开命令提示符,输入java会有如下显示,则安装成功。
注意:打开命令提示符方法
win+R 输入cmd 即可。
还可以查看Jre版本:
Java -version
接下来解压Nuclei压缩包即可使用。
打开NucleiStudio.exe,选择工作路径。
打开NucleiStudio后如下所示。
1.1.2工程导入
这是既然是快速入门,自然是导入已有的工程,可以到GD官网下载相应的GD32VF103_Demo_Suites。
下载GD32VF103开发板例程。
解压GD32VF103_Demo_Suites_V1.1.1.rar,里面有以下文件:
GD32VF103_Firmware_Library是GD32VF103系列的固件库。
GD32VF103C_START_Demo_Suites、GD32VF103R_START_Demo_Suites、GD32VF103T_START_Demo_Suites、 GD32VF103V_EVAL_Demo_Suites分别是不同的开发板例程。
笔者这里使用的是GD32VF103R-START开发板。
因此这里将导入GD32VF103R-START开发板的例程。
然后选择相应的例程的eclips目录。
值得注意的是,该开发板默认使用的内部时钟,板子的外部时钟源是25MHz,要想得到精确的时钟就需要初始化系统时钟,因此在进入主函数请需要初始系统时钟。
1.1.3编译
接下来就可以编译工程了。
出现以上信息表示编译成功了。
如果提示无法找到编译工具,请按照下图设置。
1.1.4下载固件
编译没有错误就可以进行下载了。
在下载之前,需要配置下参数,右击工程选择Run As->Run Configurations…配置debug参数。
参数配置如下:
Config Options参数如下:
-f "D:\NucleiStudio\toolchain\openocd\scripts\interface\openocd_gdlink.cfg"
该脚本需要自行添加,默认是没有的,也可设置为其他路径,openocd_gdlink.cfg内容如下:
adapter speed 1000
reset_config srst_only
adapter srst pulse_width 100
adapter driver cmsis-dap
transport select jtag
#autoexit true
set _CHIPNAME riscv
jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x1000563d
set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME riscv -chain-position $_TARGETNAME
$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size 20480 -work-area-backup 0
# Work-area is a space in RAM used for flash programming
if { [info exists WORKAREASIZE] } {
set _WORKAREASIZE $WORKAREASIZE
} else {
set _WORKAREASIZE 0x5000
}
# Allow overriding the Flash bank size
if { [info exists FLASH_SIZE] } {
set _FLASH_SIZE $FLASH_SIZE
} else {
# autodetect size
set _FLASH_SIZE 0
}
# flash size will be probed
set _FLASHNAME $_CHIPNAME.flash
flash bank $_FLASHNAME gd32vf103 0x08000000 0 0 0 $_TARGETNAME
riscv set_reset_timeout_sec 1
init
halt
Commands参数如下。
set mem inaccessible-by-default off
set arch riscv:rv32
set remotetimeout 250
然后点击‘Run’按钮下载。
等待下载完成。
固件下载完成后 LED应该已经开始闪烁了。
1.1.5调试程序
点击‘Debug’按钮即可开始调试。
这个就没啥说的了。
欢迎访问我的网站
BruceOu的哔哩哔哩
BruceOu的主页
BruceOu的博客
BruceOu的CSDN博客
BruceOu的简书
BruceOu的知乎
欢迎订阅我的微信公众号
关注公众号[嵌入式实验楼]获取资源