https://blog.csdn.net/zoomdy/article/details/101456186
zoomdy at 163 dot com
RV-LINK 项目主页:https://gitee.com/zoomdy/RV-LINK
最新的文档请访问:https://gitee.com/zoomdy/RV-LINK/wikis,这里的内容可能没有及时更新。
首先将所支持的开发板烧入 RV-LINK 固件,然后开发板就变成 RISC-V 仿真器了,当前支持 Longan Nano 和 GD32VF103C-START 这两款开发板,请参考《将 Longan Nano 开发板变成 RISC-V 仿真器》和《将 GD32VF103C-START 开发板变成 RISCV-V 仿真器》
如果已经安装了 RISC-V GCC 工具链,那么忽略该步骤,跳到 《安装 USB 串口驱动》。
建议使用 GNU MCU Eclipse 项目发布的交叉工具链里的 GDB,下载地址:https://gnu-mcu-eclipse.github.io/toolchain/riscv/releases/
也可以通过芯来科技的下载页面下载:https://www.nucleisys.com/download.php ,芯来科技网站下载会比较快一些。
根据所使用的系统选择下载对应的版本,Ubuntu 下载 centos 版本,理论上 centos 版本适合所有 Linux 发行版。
将下载好的压缩包解压即可,不需要安装。
将 riscv-none-embed-gdb 所在的目录加入 PATH 环境变量。
...\GNU MCU Eclipse\RISC-V Embedded GCC\8.2.0-2.2-20190521-0004\bin
RV-LINK 对上接口是一个 USB 串口,因此使用 RV-LINK 之前首先要配置好 USB 串口,RV-LINK 使用标准的 USB CDC ACM 串口,遵循《Universal Serial Bus Class Definitions for Communication Devices》(usbcdc11)规范。Linux 和 Windows 10 系统自动支持 CDC ACM 串口,Windows 7 需要安装驱动。
当前,RV-LINK 所使用的 Longan Nano 和 GD32VF103C-START 开发板均以 GD32VF103CB 为控制器,使用的是 GD 的 USB 串口 VID 和 PID,因此安装 GD 的 USB 串口驱动。
在 GD 的下载页面 http://gd32mcu.21ic.com/documents/index/classify_id/7 下载 USB Virtual Com Port Driver,下载需要注册。
根据自身系统是32位或64位选择x86或x64版。
点击 Install 安装即可。
Windows 10 会自动安装 USB 串口驱动,只要将 RV-LINK 的 USB 口插入电脑,稍等片刻就可以了,打开设备管理器查看对应的串口号,以下假设串口号为 COM4。
这里假设使用 Ubuntu 发行版。Linux 自带 USB 串口驱动,只要将 RV-LINK 的 USB 口插入电脑,设备名称为:/dev/ttyACM0
,如果有多个 USB 串口,那么也可能是 /dev/ttyACM1
等。
首先按照往常一样执行 GDB:
riscv-none-embed-gdb xxx.elf
接着连接 RV-LINK,使用 target remote ...
命令连接 RV-LINK 对应的串口号。不同的系统,使用的串口号不同。GDB 连接 OpenOCD 时,使用的是 TCP/IP,RV-LINK 使用的是串口,区别就在这。
Windows:
target remote com4
Linux:
target remote /dev/ttyACM0
复位并halt:
monitor reset halt
其它就和平常使用 GDB 一样一样了:
load
,下载程序b main
,设置断点info registers
,查看通用寄存器info all-registers
,查看包括 CSR 在内的所有寄存器如果 GDB 命令行参数没有指定程序,那么会报如下错误:
bfd requires xlen 8, but target has xlen 4
这只要在 GDB 中输入:
set arch riscv:rv32
告知 GDB,咱现在是 RV32,然后重新执行 target remote ...
就没有问题了。
Error message from debugger back end:
com3: No such file or directory.
可能的原因有:
Error message from debugger back end:
Remote replied unexpectedly to 'vMustReplyEmpty':
RV-LINK ERROR: the target is not connected!
RV-LINK: Longan Nano, configed for GD32VF103 family.
可能的原因有:
Error message from debugger back end:
Remote replied unexpectedly to 'vMustReplyEmpty':
RV-LINK ERROR: the target is not supported, upgrade RV-LINK firmware!
RV-LINK: Longan Nano, configed for GD32VF103 family.
可能的原因有: