RISC-V IDE MRS无感远程协助模块详解

RISC-V IDE MRS无感远程协助模块详解

一、说明

1.1 概述

针对RISC-V/ARM等内核MCU的嵌入式集成开发环境MRS(MounRiver Studio)从V1.90版本开始内置无感远程协助模块(Sensorless Remote Assistant Module,以下简称SRA模块)。SRA模块是一款支持远程下载、调试、串口数据回显等功能的集成开发环境综合单元,提供了局域网、广域网环境下的专业嵌入式开发协助解决方案。

在实际的嵌入式项目推进过程中,经常会出现目标设备已经部署到工作环境但运行结果与预期不同的问题。由于涉密或代码管控的限制,往往无法直接将目标源码发送到设备端进行远程调试,所以只能将设备寄回或安排开发者奔赴现场进行问题排查。而MRSSRA模块则适用于该硬件设备与软件代码相互隔离的场景,在保证涉密代码安全的同时,减少了项目落地过程中的时间、人力成本。

1.1.1 软硬件连接

SRA模块进行无感远程协助时,两台不同主机上的MRS分别作为近端(调试方)与远端(被调试方)。根据网络环境的差异,也分为局域网以及广域网无感远程协助模式。
在这里插入图片描述

1.1.2 运行环境
MRS版本V1.90及以上。
WCH-LinkE固件版本V2.10及以上。
计算机系统Win7及以上。
1.1.3 功能特点

相较于目前已有的远程桌面工具或集成开发环境自带的远程软件,MRS SRA模块有以下功能特点:

  • 免网络设置:支持自适应网络模式,局域网、广域网下一键建立远程网络连接,无需网络配置。

在这里插入图片描述

  • 防代码泄漏:支持工程源码与目标硬件存在空间隔离的远程调试场景,涉密代码无需发送到目标硬件连接的主机。

在这里插入图片描述

  • 非独占操作:远程时不占用整个计算机操作权限,不影响被调试方使用MRS之外的其他软件。

在这里插入图片描述

  • 集多重加密:使用IoCHub[注1]建立各网络环境下的点对点加密通信,配合WCH-LinkE进行目标代码加密烧录。

在这里插入图片描述

  • 需操作授权:远端每次等待远程连接前,会实时生成唯一授权码,近端得到授权后才可以建立远程连接;远程下载、调试界面及操作与本地方式相同,兼容常规操作习惯。

在这里插入图片描述

注1: IoCHub是一种能自适应广域网、局域网的透明直传解决方案,仅需调用一套接口,就能让设备间实现高效、安全、稳定的点对点数据透传。MRS无感远程协助模块集成了IoCHub,通过其建立调试器软件的远程通信。在远程通信过程中IoCHub在远近端分别扮演调试器Client与调试器Server的角色。

1.1.4 应用场景

SRA模块支持远程下载、远程调试、远程IO信号控制、远程串口输出信息回显等功能,可应用于以下远程协助场景:
在这里插入图片描述

1.2 界面

SRA远程软件其整体界面如下,红框标记的分别为MRS中远程下载、远程调试以及SRA模块功能按钮。用户在远程协助时只用选择本机模式(调试方或被调试方),无需进行其他的网络配置。

在这里插入图片描述

未建立远程连接时,远程下载、远程调试按钮为灰化状态,此时只能进行本地下载、调试操作:
在这里插入图片描述

建立远程连接后,远程下载、远程调试按钮为使能状态,此时可以进行本地或远程下载、调试操作:
在这里插入图片描述

二、使用

2.1 建立SRA远程连接

在MRS的工具栏中点击无感远程协助按钮弹出远程软件界面,默认使用自适应网络模式,无需用户手动进行网络配置。远端用户只要点击开始远程调试按钮,将动态生成的远程授权码告知近端用户,等待近端与其建立远程连接即可。
在这里插入图片描述

2.2 执行SRA远程操作

2.2.1 远程下载

建立连接后,点击MRS界面的远程下载按钮,即可将近端编译生成的目标代码下载至远端设备,此时远端设备WCH-LinkE输出的信息将回显至MRS控制台。

在这里插入图片描述

在这里插入图片描述

2.2.2 远程调试

2.2.2.1 远程目标调试

SRA模块支持远程目标调试功能:近端用户将修改后编译生成的目标文件远程下载到目标芯片,然后根据远端回显的芯片运行时打印信息来调整近端源码,再重复上述下载、查看回显信息过程,直到确定最终的代码内容。
在这里插入图片描述

2.2.2.2 远程在线仿真

SRA模块也支持远程在线仿真功能:建立连接后,点击MRS界面的远程调试按钮,即可进行源码的远程在线仿真调试。整体操作与各项监控信息窗口与本地仿真调试无异,可以进行设断点、单步执行、全速执行、重新执行等操作。此时远端设备的调试信息仍会回显至近端。
在这里插入图片描述

2.2.3 远程IO控制

建立远程连接后,近端可以远程设置远端WCH-LinkE硬件的3.3v/5v引脚、RST引脚IO信号以及目标芯片的读保护状态。
在这里插入图片描述

2.2.4 远程串口回显

建立远程连接时,远端可以选择已连接的WCH-LinkE串口,将芯片串口TX引脚与WCH-LinkE RX引脚相连,再通过嵌入式代码将输出的打印信息流定向到该串口。

示例代码

__attribute__((used)) int _write(int fd, char *buf, int size){int i;for(i = 0; i < size; i++){#if(DEBUG == DEBUG_UART1)while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);USART_SendData(USART1, *buf++);#elif(DEBUG == DEBUG_UART2)while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);USART_SendData(USART2, *buf++);#elif(DEBUG == DEBUG_UART3)while(USART_GetFlagStatus(USART3, USART_FLAG_TC) == RESET);USART_SendData(USART3, *buf++);#endif}return size;}

远程协助时,近端调试者可以在MRS控制台和远程软件输出框中查看目标硬件的串口输出内容。
在这里插入图片描述

2.3 断开SRA远程连接

建立远程连接后,近端调试者和远端被调试者都可以主动断开SRA远程连接。

在这里插入图片描述

2.4 用户意见在线反馈

用户可以通过MRS用户意见在线反馈功能,将文字、图片、压缩包文件等反馈内容实时发送到MRS技术支持邮箱。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/125547.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何创建 Spring Boot 项目

如果有pom.xml有插件异常&#xff0c;可以先删除。 maven配置要配置好 然后yaml&#xff0c;再启动就行 server:port: 9991 spring:application:name: demo3参考 如何创建 Spring Boot 项目_创建springboot项目_良月初十♧的博客-CSDN博客

DBA笔记(1)

目录 1、rpm yum 命令的使用&#xff0c;参数的含义 rpm命令&#xff1a; yum命令&#xff1a; 2、上传镜像至虚拟机搭建本地yum源 3、chown chomd 命令每一个参数的含义 chown命令&#xff1a; chmod命令&#xff1a; 4、fdisk partd 硬盘分区命令用法 fdisk命令&am…

C++ 写一个Data类的注意问题

Data类 声明和定义分离的一些问题 声明里面我们不带缺省参数&#xff0c;定义我们给缺省参数&#xff0c;如下面两段代码&#xff1a; Data.h#pragma once #include<iostream> using namespace std; class Data { public:Data(int year,int month,int day);private:in…

【错误解决方案】ModuleNotFoundError: No module named ‘xgboost‘

1. 错误提示 在尝试导入名为xgboost的模块时出现了ModuleNotFoundError。 错误提示&#xff1a;ModuleNotFoundError: No module named xgboost 这个错误通常意味着Python环境中没有安装你试图导入的模块。 2. 解决方案 安装xgboost模块即可解决上述问题。 可以通过Python…

Web3公链之Cosmos生态的项目Celestia

文章目录 Web3公链之Cosmos生态的项目&#xff1a;模块化区块链Celestia什么是CelestiaCelestia网络架构数据可用性问题有哪些可用的解决方案&#xff1f; 发展历史运行节点参考 Web3公链之Cosmos生态的项目&#xff1a;模块化区块链Celestia 什么是Celestia 官网&#xff1a…

项目部署之OpenResty

项目部署之OpenResty 1. OpenResty介绍 OpenResty 是一个基于Nginx的高性能Web平台&#xff0c;用于方便地搭建能够处理超高并发、扩展性极高的动态Web应用、Web服务和动态网关。具备下列特点&#xff1a; 具备Nginx的完整功能基于Lua语言进行扩展&#xff0c;集成了大量精良…

hdlbits系列verilog解答(加减法器)-28

文章目录 一、问题描述二、verilog源码三、仿真结果一、问题描述 可以通过将其中一个输入变为负来从加法器构建加法器-减法器,这相当于将其输入反相然后加 1。最终结果是一个可以执行两个操作的电路:(a + b + 0) 和 (a + ~b + 1)。如果您想更详细地解释该电路的工作原理…

怎么理解电流超前电压、电压超前电流?

电容和电感&#xff0c;电压超前电流&#xff0c;电流超前电压都是我们经常听到的。作为非专业人士&#xff0c;这些听起来确实有点摸不着头脑&#xff0c;今天特别查了下电容、电感、电压电流相关资料&#xff0c;总算是弄明白了&#xff0c;在此特地记录下&#xff01; 1. 电…

【LeetCode:150. 逆波兰表达式求值 | 栈】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

一篇文章入门KNN算法

文章目录 KNNKNN算法KNN in practice推荐系统我们想回答什么问题&#xff1f;探索、清理和准备数据使用算法 Summary 参考文献 KNN 监督学习是一种依赖输入数据来学习函数的算法&#xff0c;该函数在给定新的未标记数据时可以产生适当的输出。 监督学习用于解决分类或回归问题…

LLM - 训练与推理过程中的 GPU 算力评估

目录 一.引言 二.FLOPs 和 TFLOPs ◆ FLOPs [Floating point Opearation Per Second] ◆ TFLOPs [Tera Floating point Opearation Per Second] 三.训练阶段的 GPU 消耗 ◆ 影响训练的因素 ◆ GPT-3 训练统计 ◆ 自定义训练 GPU 评估 四.推理阶段的 GPU 消耗 ◆ 影响…

Pap.er for Mac:高清壁纸应用打造你的专属视觉盛宴

在浩瀚的互联网海洋中&#xff0c;你是否曾为寻找一张心仪的高清壁纸而烦恼&#xff1f;或者是在大量的壁纸应用中感到困扰&#xff0c;不知道哪一个能满足你的需求&#xff1f;今天&#xff0c;我要向你介绍的&#xff0c;是一款独特的5K高清壁纸应用——Pap.er for Mac。 Pa…

leetcode:374. 猜数字大小(二分查找)

一、题目 函数原型&#xff1a;int guessNumber(int n) 二、思路 本题其实就是从 1 - n 中找出所要的答案。利用guess函数来判断数字是否符合答案。 答案小于当前数字&#xff0c;guess函数返回-1 答案等于当前数字&#xff0c;guess函数返回0 答案大于当前数字&#xff0c;gue…

Android NDK开发详解之ndk-build 脚本

Android NDK开发详解之ndk-build 脚本 内部原理从命令行调用选项可调试 build 与发布 build要求 ndk-build 脚本使用 NDK 的基于 Make 的构建系统构建项目。我们针对 ndk-build 使用的 Android.mk 和 Application.mk 配置提供了更具体的文档。 内部原理 运行 ndk-build 脚本相…

JVM 分代垃圾回收过程

堆空间划分了代&#xff1a; 年轻代&#xff08;Young Generation&#xff09;分为 eden 和 Survivor 两个区&#xff0c;Survivor 又分为2个均等的区&#xff0c;S0 和 S1。 首先&#xff0c;新对象都分配到年轻代的 eden 空间&#xff0c;Survivor 刚开始是空的。 当 eden …

招生报名缴费小程序开发笔记(上)

前期调研 1.数字化趋势&#xff1a; 随着社会的数字化转型&#xff0c;越来越多的教育机构倾向于采用数字工具来简化和优化他们的招生和报名过程。招生报名缴费小程序是应对这一趋势的一种解决方案&#xff0c;可以提供高效、方便、快速的在线招生渠道。2.用户需求&#xff1a…

Jtti:Apache服务的反向代理及负载均衡怎么配置

配置Apache服务的反向代理和负载均衡可以帮助您分散负载并提高应用程序的可用性和性能。下面是一些通用的步骤&#xff0c;以配置Apache反向代理和负载均衡。 1. 安装和配置Apache&#xff1a; 确保您已经安装了Apache HTTP服务器。通常&#xff0c;Apache的配置文件位于/etc…

VSCode-C/C++环境配置

0.下载VSCode VSCode官网 Visual Studio Code - Code Editing. Redefined 1.安装VSCode 2.编译器下载与配置 2.1下载编译器安装包 编译器的安装包分为两种一种是在线的一种是离线的,其区别的特点如下 在线安装&#xff08;只是个下载器&#xff0c;打开后还要下载各种东西…

RocketMQ生产者消息发送出去了,消费者一直接收不到怎么办?(Rocket MQ订阅关系一致性)

问题: 使用RocketMQ消息队列&#xff0c;生产者将数据发送出去了&#xff0c;但是生产者一致没接收到&#xff08;或者是间隔好几分钟&#xff0c;突然接收到一条数据&#xff09;怎么办&#xff1f;并且通过rocket web控制台查看消息的状态为NOT_ONELINE或者NOT_CONSUME&#…

韦东山D1S板子——利用xfel工具初始化内置64MB内存,并直接下载程序到内存运行

1、前言 &#xff08;1&#xff09;最近使用韦东山老师的D1S板子学习RISC-V架构知识&#xff0c;我是结合《RISC-V体系结构编程与实践》这本书的进行学习&#xff0c;其中韦东山老师对书中的代码做了部分移植&#xff0c;到MMU模块就没有在移植书中代码&#xff1b; &#xff0…