Riscv debug release框图
仿真环境下的Riscv debug框图
平头哥调试环境
XuanTie DebugServer是一个调试代理软件,它通过CKLINK,以JTAG的方式连接目标板,并支持“GDB Remote Protocol” 。开发者可以通过GDB对运行在玄铁800系列和玄铁900系列处理器上的软件程序进行在线调试。
OpenOCD & GDB
OpenOCD 是一款支持多种芯片体系结构的开源调试和编程工具,它可以连接到不同的调试适配器,例如 J-Link、ST-LINK、CMSIS-DAP 等。通过 OpenOCD,我们可以在嵌入式系统上执行调试命令,例如读取寄存器的值、往 Flash中下载程序、启动或停止运行等。
GDB(GNU Debugger)是一个强大的命令行调试器,它支持多种体系结构和编程语言,并且可以与多种编程工具和 IDE 集成。GDB 可以识别多种调试器协议,并进行远程调试,它允许我们在嵌入式系统上调试代码,并且可以与 OpenOCD 集成使用。
OpenOCD 和 GDB 通常一起使用,通过 OpenOCD 连接到调试适配器,然后使用 GDB 发送调试命令到 OpenOCD,这样我们就可以在嵌入式系统上执行调试命令来调试代码了。在调试中,我们可以设置断点、单步执行、查看变量、观察程序状态等,这些调试功能可以帮助我们快速定位代码中的问题并进行调试和优化。
OpenOCD & GDB 的启动步骤
- 配置硬件连接:连接调试目标设备和调试工具(例如 JTAG 调试器),确保硬件连接正确。
- 准备配置文件: 创建 OpenOCD 的配置文件,该文件描述了调试目标设备的连接方式、芯片型号、调试器类型等信息。配置文件通常是一个 .cfg 文件,如下C920.cfg。
debug_level 3
adapter speed 20000
gdb_port 3333
telnet_port 4444
if {
$::env(USE_JTAG_DPI)} {
puts "debug point USE_JTAG_DPI"
adapter driver remote_bitbang
remote_bitbang host localhost
remote_bitbang port 9999
}
if {
$::env(USE_JTAG_VPI)} {
puts "debug point USE_JTAG_VPI"
adapter driver jtag_vpi
# Set the VPI JTAG server port
if {
[info exists VPI_PORT] } {
set _VPI_PORT $VPI_PORT
} else {
set _VPI_PORT 5555
}
# Set the VPI JTAG server address
if {
[info exists VPI_ADDRESS]