当前位置: 首页 > news >正文

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技术支持邮箱。
在这里插入图片描述

相关文章:

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

RISC-V IDE MRS无感远程协助模块详解 一、说明 1.1 概述 针对RISC-V/ARM等内核MCU的嵌入式集成开发环境MRS(MounRiver Studio)从V1.90版本开始内置无感远程协助模块&#xff08;Sensorless Remote Assistant Module&#xff0c;以下简称SRA模块&#xff09;。SRA模块是一款支…...

APA技术方案及关键点

APA即我们平时用的最多的基础泊车功能(自动泊车辅助)&#xff0c;按照功能来分&#xff0c;有下列子功能&#xff1a; 1.AVM(全景影像)&#xff0c;四路环视鱼眼动态拼接&#xff0c;去畸变&#xff0c;提供给用户车身周围360的环境图像信息&#xff0c;有2D(单路鱼眼图)&…...

WordPress外链页面安全跳转插件

老白博客我参照csdn和腾讯云的外链跳转页面&#xff0c;写了一个WordPress外链安全跳转插件&#xff1a;给网站所有第三方链接添加nofollow标签和重定向功能&#xff0c;提高网站安全性。插件包括两个样式&#xff0c;由于涉及到的css不太一样&#xff0c;所以分别写了两个版本…...

【牛客网】安全—加密和安全

每日一练 Day1&#xff1a; 1.信息安全的基本属性是&#xff08; D &#xff09; A.保密性 B.完整性 C.可用性&#xff0c;可靠性&#xff0c;可控性 D.A、B、C都是 信息安全的基本属性通常可以归纳为以下几个方面&#xff1a; 保密性&#xff08;Confidentiality&#xf…...

Mybatis基础操作

基础操作 增删改查 Select 是查询类的注解&#xff0c;所有的查询均使用这个Result 修饰返回的结果集&#xff0c;关联实体类属性和数据库字段一一对应&#xff0c;如果实体类属性和数据库属性名保持一致&#xff0c;就不需要这个属性来修饰。Insert 插入数据库使用&#xff…...

Java实验二类编程实验

1.编写一个代表三角形的类&#xff08;Triangle.java&#xff09;。 其中&#xff0c;三条边a,b,c&#xff08;数据类型为double类型&#xff09;为三角形的属性&#xff0c;该类封装有求三角形的面积和周长的方法。分别针对三条边为3、4、5和7、8、9的两个三角形进行测试&…...

css文本溢出省略号多行单行例子详细

在 CSS 中&#xff0c;可以使用 text-overflow: ellipsis; 属性来实现文本溢出时自动省略号的效果。但是该属性只能用于单行文本溢出的情况&#xff0c;对于多行文本溢出的情况&#xff0c;需要使用一定的技巧才能实现相应的效果。下面将分别介绍单行和多行文本溢出时的实现方法…...

android auto

测试面向汽车的 Android 应用 | Android 开发者 | Android Developers (google.cn)...

opengl基础笔记1

1、opengl运行模式及opengl规范 运行模式&#xff1a;核心模式与立即渲染模式&#xff08;弃用&#xff09; 由于OpenGL的大多数实现都是由显卡厂商编写的&#xff0c;当产生一个bug时通常可以通过升级显卡驱动来解决。这些驱动会包括你的显卡能支持的最新版本的OpenGL&#xf…...

Flutter中的各种刷新小部件

1.FutureBuilder 用于处理异步操作和构建界面的非常有用的小部件。它通常与 Future 对象一起使用&#xff0c;用于在异步操作完成后构建界面。 import package:flutter/material.dart;void main() > runApp(MyApp());class MyApp extends StatelessWidget {overrideWidget…...

DataxWeb安装部署及使用--真香警告

DataxWeb安装部署及使用–真香警告 文章目录 1.Datax简介1.1 Datax是什么&#xff1f;1.2 Datax的架构1.3 设计理念1.4 DataX3.0框架设计1.5 DataX3.0插件体系1.6 DataX3.0核心架构1.6.1 核心模块介绍1.6.2 DataX调度流程 2.DataxWeb简介2.1 DataxWeb是什么&#xff1f;2.2 Dat…...

OpenCV 笔记(4):图像的算术运算、逻辑运算

Part11. 图像的算术运算 图像的本质是一个矩阵&#xff0c;所以可以对它进行一些常见的算术运算&#xff0c;例如加、减、乘、除、平方根、对数、绝对值等等。除此之外&#xff0c;还可以对图像进行逻辑运算和几何变换。 我们先从简单的图像加、减、逻辑运算开始介绍。后续会有…...

创建ABAP数据库表和ABAP字典对象-使用已存在的数据元素增加城市字段04

基于内置域增加一个字段 1.在编辑器中&#xff0c;输入字段的名称&#xff0c;后跟冒号:city:。暂时忽略这个错误。2. 输入/MOC/C并使用自动补全(**Ctrl空格**)&#xff0c;输入类型。3. 然后添加一个分号:city: /moc/city;4.在SAP GUI中查看&#xff0c;字段已经新增...

Centos7上安装 Node.js

文章目录 一、前言二、步骤三、涉及nodejs&#xff0c;centos还是少用吧 一、前言 centos7安装nodejs如果直接安装较高版本会包错误&#xff0c;无法运行npm node: /lib64/libm.so.6: version GLIBC_2.27‘ not found (required by node)二、步骤 网上说的下载升级编译器的方…...

栈及其栈的模拟实现和使用

1. 栈(Stack) 1.1 概念 栈 &#xff1a;一种特殊的线性表&#xff0c;其 只允许在固定的一端进行插入和删除元素操作 。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO &#xff08; Last In First Out &#xff09;的原则…...

HarmonyOS开发:开源一个刷新加载组件

前言 系统Api中提供了下拉刷新组件Refresh&#xff0c;使用起来也是非常的好用&#xff0c;但是风格和日常的开发&#xff0c;有着巨大的出入&#xff0c;效果如下&#xff1a; 显然上面的效果是很难满足我们实际的需求的&#xff0c;奈何也没有提供的属性可以更改&#xff0c;…...

XSSFWorkbook读取模板,批量填充并导出文件

1、pom文件导入 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.0</version> </dependency> <dependency><groupId>org.apache.poi</groupId><artifactId>…...

Lazada新店运营秘籍自养号测评技术

跨境行业的前途虽然大好&#xff0c;但要想真正从中分一杯羹并非易事。东南亚市场前景大好&#xff0c;而作为其主流在线购物网站之一&#xff0c;Lazada吸引了众多卖家和买家。作为新手来说&#xff0c;注册好Lazada之后&#xff0c;店铺下一步该怎么做呢&#xff1f;赶紧来看…...

python:逐像素处理遥感数据时间序列数据(求时间序列最大值、最大值所对应的索引、最大值所在的时间)

作者:CSDN @ _养乐多_ 本文记录了使用gdal、ras、numpy 库实现遥感时间序列数据逐像素处理的代码。并以求NADVI时间序列最大值为例。代码可扩展到其他多种对时间序列的处理,比如MK趋势分析,求时间序列中值、众数、标准差、和,时间序列拟合、异常检测、机器学习预测等多种应…...

SpringCloudGateway--过滤器(自定义filter)

目录 一、概览 二、通过GatewayFilter实现 三、继承AbstractGatewayFilterFactory 一、概览 当使用Spring Cloud Gateway构建API网关时&#xff0c;可以利用Spring Cloud Gateway提供的内置过滤器&#xff08;filter&#xff09;来实现对请求的处理和响应的处理。过滤器可以…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...

vue3 daterange正则踩坑

<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...