本教程以板上按键控制点亮RV-STAR开发板上的LED为目标,从IDE的下载安装开始详细介绍了使用SEGGER Embedded Studio+JLink调试器进行RISC-V嵌入式开发的方法。
系统环境:Windows 10-64bit
硬件平台:基于GD32VF103 MCU的RV-STAR开发板,JLink调试器(调试器固件版本需支持RISC-V)
SEGGER Embedded Studio 和 JLink驱动的下载和安装
SEGGER Embedded Studio是SEGGER公司推出的一款嵌入式开发的集成开发环境,具有开发与编译界面专业、调试功能强大(配备知名的J-Link仿真器)、非商业使用免费、跨平台兼容和配置灵活等特点。
在SEGGER官网可以下载IDE软件,其链接如下:
https://www.segger.com/downloads/embedded-studio/
根据自己的操作系统下载对应的安装包即可,需要注意的是,一定要下载支持RISC-V的IDE。双击安装包运行,安装过程没有特殊需要注意的地方,一直点next即可。
安装SEGGER Embedded Studio之后还要安装JLink驱动,也在SEGGER官网下载,其连接如下:
https://www.segger.com/downloads/jlink/
同样,安装过程没有特别要注意的,正确安装即可。
下载并配置工具链
下一步准备工具链,从芯来科技官网的下载页面下载,其链接如下:
https://www.nucleisys.com/download.php
根据使用的操作系统下载对应的RISC-V GNU Toolchain。
在SEGGER
Embedded
Studio的安装路径下新建一个Nuclei_Toolchain文件夹。如果不记得安装到哪里了,可以打开安装好的Embedded
Studio,菜单栏中选择“File->Open Studio Folder->Studio Folder”即可打开安装位置。
在新建的Nuclei_Toolchain文件夹里面放入解压好的工具链,直接解压后还需修改一下文件夹层级和文件夹名。文件名修改成gcc,并且要求下一级文件夹是bin文件所在层级,可参考以下截图:
使用JLink调试器连接开发板到PC
使用JLink调试RV-STAR需要移除开发板上的五个短接帽,如下图中红框所示。连接时如果看不清图中文字,可以参考板上的丝印。
JLink的引脚如下,红框标注的是需要连接的引脚,将JLink的引脚与上图中红框引脚按照名字一一对应相连。注意接到RV-STAR开发板靠近GD32VF130VBT6芯片侧的排针上。VTref引脚要接到RV-STAR开发板RGB LED下方的3V3接口。
使用时Type-C也需要连接,起到供电的作用。连接后参考实物图如下:
下载DEMO工程
在Github下载RV-STAR的demo工程,其链接如下:
https://github.com/riscv-mcu/ses_nuclei_sdk_projects
国内使用github下载速度有限,推荐使用码云,其链接如下:
https://gitee.com/riscv-mcu/ses_nuclei_sdk_projects
配置使用RTT打印输出
JLink调试器可以使用SEGGER的RTT功能打印输出,需要配置一些文件到工程当中。
下载DEMO工程后打开rvstar_demos文件夹,双击rvstar_demos.emProject即可打开demo工程。
选择菜单栏的“File->Open Studio Folder->Project Folder”打开工程所在路径,新建一个SEGGER文件夹。
打开J-Link驱动的根目录,将“Samples->RTT”路径下的“SEGGER_RTT_V680d.zip”解压缩(具体压缩包名可能因版本不同而变化),如下图所示。
解压后将RTT文件夹下的“SEGGER_RTT.c”,“SEGGER_RTT.h”和“SEGGER_RTT_Conf.h”三个文件以及Syscalls文件夹下的“SEGGER_RTT_Syscalls_GCC.c”这些文件复制到之前新建的SEGGER文件夹中。
在Embedded
Studio中右击当前工程,选择“New Folder”,新建一个SEGGER文件夹,右击新建的文件夹选择“Add Existing
File”,将SEGGER文件夹内新增的四个文件添加至工程中。配置完成如下图,双击打开“SEGGER_RTT_Syscalls_GCC.c”文件,注释掉第59行的“#include”。
右击当前工程名,选择Options打开设置页面,选中“Preprocessor”,在“User Include Directories”中增加“$(SolutionDir)/SEGGER”。
在工程的“nuclei_sdk/SoC/hbird/Common/Source/Stubs”下的“write.c”文件处右击,选择“Exclude From Build”移除原有的write.c文件。
这样RTT配置完成,在调试时如果有打印内容会自动打开控制台显示输出内容。
调试运行DEMO工程
右击当前工程名,选择“Options”打开工程设置页面。选中Debugger,双击Target Connection选项,在弹窗中切换为J-Link,点击OK完成设置。
双击Project ‘running led’选中running_led工程,直接按f5即可进入调试模式。
点击运行,这时候按键就会看到led在红绿蓝白之间切换,同时在“Debug Terminal”中看到打印内容。