1.原理介绍
MRS调试时上位机与硬件的通信基于gdb客户端与服务端的连接。调试时,首先启动openocd以挂载gdbserver的服务到指定端口上。通信建立后,监听到界面操作后以gdb指令的形式发送给下位机,硬件响应后回传命令结果,MRS解析并更新视图,重复循环直至调试过程结束。
调试配置中指定服务端与本机客户端分离,即可适用于硬件与代码环境分离的调试场景。
2.前置准备
①两台已经安装MounRiver Studio最新版本的Windows电脑,且处于同一局域网下的同一网段
②CH32V307VCT6的开发板
3.搭建环境
①确保两台电脑处于同一局域网同一网段下,使用ipconfig命令分别获取两台电脑在局域网下的ip地址,分别关闭这两台电脑的防火墙,确保可以互相访问连接。
②启动调试服务端
在机器A插上CH32V307VCT6的开发板,检查设备管理器,外部接口正常显示,说明已经识别到设备。
切换到{MounRiver_Studio安装目录}\toolchain\OpenOCD\bin\ 下,修改OpenOCD的启动文件,CH32V307芯片对应的启动文件是wch-riscv.cfg,打开该文件后增加一行 “bindto 0.0.0.0”。
修改完成后,在该目录下使用“.\openocd.exe -f .\wch-riscv.cfg”命令启动OpenOCD,这样调试服务端就准备完成。
③ 启动调试客户端
在机器B上打开MounRiver Studio,打开CH32V307VCT6工程(如果没有就新建工程)。点击工具栏上调试配置,打开调试配置页面。
切换到Debugger 的Tab页
一般情况下此时底部的Remote Target为灰色,不可编辑修改。取消上方的勾选“Start OpenOCD locally”,这时底部的Remote Target处于可编辑状态。
输入调试服务端主机的局域网IP和gdbserver端口,点击Debug即可启动调试。等待几秒后就能进入熟悉的调试界面。
另外当连接建立后,服务端主机A的OpenOCD命令行界面,会显示建立连接的信息,如下图所示。
4.调试过程
①与本地环境的调试效果几乎一致。进入调试界面后,程序会自动在入口或者预设断点处暂停。用户可以在编辑器源码、反汇编窗口中打断点,通过工具栏按钮或快捷键执行单步、运行、停止等操作,在指定代码位置读取/修改变量值,或在指定内存地址、寄存器查看/修改字节内容, 实现代码调试。
②MRS结束调试,服务端主机A的OpenOCD命令行界面也会收到连接断开的信息,如下图所示。
|