RISC-V IDE MRS使用笔记(八):实现局域网下的远程调试功能

2023-11-01

RISC-V IDE MRS使用笔记(八):实现局域网下的远程调试功能

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命令行界面也会收到连接断开的信息,如下图所示。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RISC-V IDE MRS使用笔记(八):实现局域网下的远程调试功能 的相关文章

  • 查看 Intellij 项目中的错误[重复]

    这个问题在这里已经有答案了 我使用的是 Intellij 版本 8 如何查看整个项目的警告或错误 UPDATE See 这个答案 https stackoverflow com a 19366569 104891这是最新的 这里最初的答案是
  • 在 Ubuntu18 上打开 Spyder3 时缺少依赖项导致密钥环错误?

    我对编程之类的东西相当陌生 我正在尝试使用 Spyder3 但不断收到此错误 如下 我使用的是Geforce 1080ti Ubuntu 18 04 01 python3 3 6 python2没有安装 我尝试了 pip3 install
  • 嵌套 Linq Min() 使 Visual Studio 崩溃

    我有一段代码使 Visual Studio 2008 IDE 运行速度非常慢 消耗大量内存 最终导致其崩溃 我怀疑 VS 达到了操作系统内存限制 以下代码不是我的真实应用程序代码 但它模拟了问题 本质上 我试图使用 LINQ 找到树中的最小
  • 如何在 Eclipse 中启用列选择模式?

    News 写道 Eclipse 3 5 终于支持列选择 不幸的是我不知道如何启用它 我尝试按 ALT 键 就像我在 Visual Studio 和所有其他 Microsoft 产品中习惯的那样 但这没有效果 如何在 Eclipse 中标记垂
  • 哪个 IDE 支持 Node.js 应用程序的 CoffeeScript 调试(源映射、断点和调用堆栈)?

    我对整个 CoffeeScript 场景还很陌生 是否有任何 IDE 支持调试在 Node js 上运行的 CoffeeScript 源代码 我希望能够在 coffee 文件中设置断点并查看调用堆栈并检查变量 WebStorm 似乎还不符合
  • 在 Rstudio 上浏览 R 代码的高效递归方式?

    我正在使用 RStudio 我开始觉得有必要通过包代码来更深入地理解或破解某些功能 当我尝试使用导航时使用 Ctrl 单击鼠标 http www rstudio com ide docs using navigation对于包内定义的函数
  • python - Atom IDE 如何启用自动完成代码以查看模块中的所有函数

    我正在为我的 python 项目使用atom IDE 在某些情况下有自动完成建议 但我想知道是否可以列出导入模块具有的所有可能功能 例如 如果我导入import urllib当我打字时urlib 并按 ctrl tab 想要查看包含可能使用
  • RISC-V 规范引用了“hart”一词 - “hart”是什么意思?

    我找到了参考文献hart在第 35 页RISC V 2 1 规范 https content riscv org wp content uploads 2016 06 riscv spec v2 1 pdf 但是 我找不到它的定义hart在
  • 有没有办法在 JetBrains“运行配置”中仅运行“外部工具”

    JetBrains IDE 中的所有 或几乎所有 运行配置 都提供了一个选项来运行 外部工具 作为其执行的一部分 有没有办法only在运行配置中运行外部工具 不知道为什么你需要它 我可以建议尝试 Bash 支持插件 http plugins
  • Delphi预定义环境变量

    谁能告诉我在哪里可以找到 RAD Studio 中可用的 伪 环境变量列表 例如 Platform Config 等 具体来说 我想要一个能够为我提供 RTL 版本的版本 以便我可以将编译单元 dcu 放入正确的目录中 即 XE为D15 X
  • “完美”的 Python 调试器具有哪些功能? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 请告诉我您希望当前的 Python 调试器具有哪些功能 我正在创建一个新的 Python IDE 调试器 并期待着具有挑战性的请求 请原谅我无耻
  • Netbeans 版本控制文件颜色代码?

    我试图找到一个图例来帮助解释 NetBeans 用于描述文件状态的不同颜色 我的一些文件颜色是 Grey Blue Green 还有其他我还没有发现的 如果有帮助 我将使用带有 CVS 的 Netbeans 6 7 这些颜色是什么 绿色意味
  • pytorch 的 IDE 自动完成

    我正在使用 Visual Studio 代码 最近尝试了风筝 这两者似乎都没有 pytorch 的自动完成功能 这些工具可以吗 如果没有 有人可以推荐一个可以的编辑器吗 谢谢你 使用Pycharmhttps www jetbrains co
  • 如何在 Intellij Idea 12 中重命名/移动项目?

    就像声明的那样here http link sheidaei com mozcw人们可以更改项目的名称 但是 它仅更改项目名称 不会更改文件夹结构 例如 如果您的项目名为sample1并且位于 user1 development IdeaP
  • IntelliJ IDEA 中查找方法/函数的快捷方式是什么?

    I know that Ctrl N is to find classes and it is very useful But what about methods ctrl F12 cmd F12 on macOS will show a
  • Visual Studio IDE 中功能后的空间

    如何设置 Visual Studio 中的设计以在我的 javascript 函数后面放置一个空格 目前 当我按下返回键时 我得到了这个 var myfunc function 当我想要这个的时候 var myfunc function 知
  • 如何忽略 Pydev Eclipse 中特定的未定义变量

    我正在使用 Eclipse 和 Pydev 插件在 Windows 上编写跨平台 python 脚本 该脚本利用os symlink and os readlink 如果当前平台不是 NT 则使用方法 自从os symlink and os
  • Netbeans 自动完成功能停止工作?

    我使用的是 Netbeans 6 9 1 一切都很好 但是突然间 它停止检测对代码所做的任何更改 例如新变量 函数等 如果我尝试重构 重命名变量 例如按 CTRL R 它说 重构在此上下文中不可用 如果重要的话 它在 PHP 项目中 有任何
  • Linux 中的 R 有哪些可用的 IDE? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Linux 中的 R 有哪些好的 IDE 我尝试过 Rcmdr 和 Eclipse 但似乎都不具有与 Windows 中的 Tinn R
  • 在 VS2008 的 XAML 编辑器中禁用 Intellisense?

    有没有办法在 Visual Studio 2008 的 XAML 编辑器中禁用 Intellisense 打字时通常会消耗很大的性能 有时我会等待十秒或更长时间 直到列表自动弹出 似乎在 选项 gt 文本编辑器 gt XAML 中 Inte

随机推荐

  • MySQL的基本语句(1)—增删改查

    前言 MySQL由于其体积小 速度快 总体拥有成本低 尤其是开放源码这一特点 一般中小型和大型网站的开发都选择 MySQL 作为网站数据库 所以我准备在此处记录一下比较常用的几种语句 每一种语句只介绍一条如何操作 之后我会全面的写一个 建表
  • 杂项系列:代码分析工具Understand中文乱码

    参考 https blog csdn net ll480 article details 89575357 总结 project gt configure project gt file options gt File encode gt
  • QT学习之signals

    QT中增加了signals和slots 即信号与槽 从字面上来看我们也能大概知道这两个概念的意义 信号与槽的作用便是在两者关联后通过发射信号触发槽的反应 可以一个信号对应一个槽 可以一个信号对应多个槽 也可以多个信号对应一个槽 虽然相对来说
  • wait和sleep的区别

    sleep 是线程类 Thread 的静态类方法 导致此线程暂停执行指定时间 给执行机会给其他线程 但是监控状态依然保持 到时后会自动恢复 调用sleep 不会释放对象锁 sleep 谁调用的谁去睡觉 即使在a线程里调用了b的sleep方法
  • Windows域内密码凭证获取 (゚益゚メ) 渗透测试

    文章目录 域凭证介绍 获取域内专属凭证 ntds dit 卷影复制服务 Volume Shadow Copy Service VSS 使用 ntdsutil 使用 vssadmin 使用 vshadow 快照挂载 NinjaCopy脚本 凭
  • 在uniapp中配置和使用原生小程序组件的方法

    在uniapp中配置和使用原生小程序组件的方法 一 在项目中创建wxcomponents文件夹 将原生组件或自定义组件放入文件夹中 如下图 二 在 pages json 对应页面的 style gt usingComponents 引入组件
  • XML详解

    1 什么是xml eXtensible markup language 可扩展标记语言 被设计用来传输 存储数据 纯文本 自行定义标签 自我描述 HTML旨在显示数据 注 声明不属于XML本身的组成部分 XML元素的格式如下 lt 标记名称
  • IDEA设置新建XML文件

    1 原始菜单新建无法创建XML文件 2 file setting gt Editor gt File and Code Templates复制XML格式 3 点击 新建模板 gt 将刚才复制的模板粘贴到新建的内容 gt 更改xml名称为XM
  • Redis的发布与订阅

    什么是发布和订阅 一般来说 发布与订阅 又称pub sub 的特点是订阅者 listener 负责订阅频道 channel 发布者 publisher 负责向频道发送二进制字符串消息 binary string message 每当有消息被
  • Express 源码分析及简易封装

    原文出自 https www pandashen com 前言 Express 是 NodeJS 的 Web 框架 与 Koa 的轻量相比 功能要更多一些 依然是当前使用最广泛的 NodeJS 框架 本篇参考 Express 的核心逻辑来实
  • JavaSE学习总结:常用类

    Java常用类 1 java lang Object 1 1常见的方法 2 包装类 2 1目的 2 2包装类 2 3装箱 2 3拆箱 2 4包装类的其他的应用 3 Scanner类 1 java lang Object 它是所有类的根父类
  • word文件不小心被删怎么恢复

    有时候我们把电脑借给朋友家的熊孩子玩 或者是借给一些不太懂电脑的人玩 原本存在电脑里非常重要的word文件不小心被他们删除了 这可怎么办呢 如果放在以前科技不发达的时候 是肯定没有任何办法的 但是好在我们活在现在 可以使用word数据恢复软
  • 入门级题解143. 重排链表

    写在前面 链表的题 1 取独立节点 保存接口 接口即 gt next 2 会用哑节点 return dummy gt next 3 最重要的是 gt next 理解 理解再理解 并随时能够掌握它的最新变化 给定一个单链表 L 的头节点 he
  • 毕业论文尾注和参考文献

    毕业论文在正文中引用参考文献的方式主要有两种 交叉引用和尾注 交叉引用比较简单 这里不介绍 添加尾注出现的问题 插入尾注 尾注直接出现在文档的最后边 将致谢 作者简介等都引用到尾注中 导致致谢 作者简介等在标题栏中消失 添加尾注的原理 首先
  • 计算机图形学实验错误及解决方法,计算机图形学实验课实验总解决方案.doc

    西南交通大学信息科学与技术学院 计算机图形学实验课 2015 2016 学年 第II学期 实 验 报 告 学号 姓名 朱彦荣 专业 软件工程 班级 软件工程2 课程名称 计算机图形学 班级 软件工程2 学号 姓名 朱彦荣 实验日期 2016
  • MATLAB关掉ColorBar的刻度线

    MATLAB使用colorbar显示时默认会带有刻度线 文章里的图一般是没有刻度线的 可以用下面命令关掉刻度线 colorbar Ticks
  • HAL读写FLASH笔记

    HAL读写FLASH笔记 目录 HAL读写FLASH笔记 1 整理数据 2 解锁 3 擦除扇区 4 写入数据 5 上锁 代码整理 写函数 读函数 注意 效果截图 1 整理数据 FLASH写入函数HAL FLASH Program可以写入16
  • Python——输入一个三位数,求每一位相加的和

    题目 输入一个三位整数 求每一位相加的和 例 输入123 输出 1 2 3 6 代码 x eval input 输入一个三位数 hundred x 100 decade x 10 10 digit x 10 sum hundred deca
  • K8s YAML文件中command 执行多条命令

    且在describe和kubelet日志中没有明确记录原因 基本都是因为command命令不合法导致 如需要运行多条命令 使用 不要使用 如下示例 command bin sh args c usr local bin redis star
  • RISC-V IDE MRS使用笔记(八):实现局域网下的远程调试功能

    RISC V IDE MRS使用笔记 八 实现局域网下的远程调试功能 1 原理介绍 MRS调试时上位机与硬件的通信基于gdb客户端与服务端的连接 调试时 首先启动openocd以挂载gdbserver的服务到指定端口上 通信建立后 监听到界