0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于VSCode软件框架的RISC-V IDE MRS2正式上线发布

Eloooly 来源:Eloooly 作者:Eloooly 2025-01-02 14:11 次阅读

基于VSCode软件框架的RISC-V IDE MRS2正式上线发布

一、概述

MounRiver Studio Ⅱ(MRS2)为MounRiver Studio的换代版本,从V2.1开始,框架更换至更现代的VSCode,并深度定制开发。在工程管理、代码编辑、编译、调试等方面均兼容之前版本,并在效率和功能等方面进行提升,着力将MRS打造为更加轻量化、智能化、高效化的RISC-V IDE。同时,提供Windows/Linux/macOS 以及国产操作系统版本,用户可前往MRS官网进行下载

在这里插入图片描述

二、MRS2亮点

  • 高速化软件启动:针对安装速度、软件框架启动速度进行了专项优化。
    自动化工程配置:从模板无需设置直接创建工程、自带默认的编译配置、工具链切换时编译选项联动修改。
  • 实时化全局搜索:搜索结果根据实际文件内容实时刷新。
    智能化代码辅助:支持代码导航、补全、诊断、格式化、重构以及代码的实时静态语法分析;
  • 可视化代码分析:支持图表化显示代码中ROMRAM用量占比、函数及变量占用内存大小及变化、输出文件各段数据实际大小等。
  • 高效化芯片调试:除常用的在线仿真调试外,还支持在线异常追踪调试以及远程调试。
  • 多样化辅助工具:集成HEX/BIN文件处理、串口调试、ISP下载、二进制文件浏览等多种嵌入式开发辅助工具。

三、核心功能介绍

3.1工程创建

  • 内置芯片模板工程,支持快速创建项目
    MRS2内置了沁恒微RISC-V芯片裸机及嵌入式实时操作系统工程模板,配套提供完整的编译、下载、调试参数文件,无需手动逐一设置,可直接一键式创建项目。
    在这里插入图片描述
  • 自定义工程模板创建、导入、导出功能
    MRS2支持将自定义的项目创建为芯片工程模板并导出,再由安装在其他主机上的MRS2导入后,即可在新建工程时使用自定义的芯片工程模板创建项目。
    在这里插入图片描述

3.2工程管理

  • 支持多种工程加载方式,便捷切换目标芯片型号
    MRS2兼容旧版MRS创建的工程、解决方案以及WCH EVT工程,可双击.wvproj/.wvsln文件或软件内菜单项加载工程/解决方案。MRS2还支持切换当前目标芯片型号,同时自动设置对应的下载、调试参数。
    在这里插入图片描述
  • 内置文件版本管理功能,支持回溯历史版本源码
    MRS2在文件保存时会自动按照分钟级的时间跨度进行版本备份,用户可以查看、对比任意备份的文件历史版本,并支持同步两个文件历史版本间的代码差异。
    在这里插入图片描述

3.3代码编辑

  • 自由添加文件书签、笔记
    MRS2可通过快捷键或右键菜单添加代码书签、笔记,支持快捷键方式跳转、专属页面全局管理,该功能不会像代码注释一样修改源码,修改后不影响源码编译结果,有助于审阅、浏览代码时添加备注信息
    在这里插入图片描述
  • 主动式文件编码识别,避免中文字符出现乱码
    由于在Windows/Linux/macOS等平台下,文件的默认编码方式不同,导致更换平台加载工程时,包含中文的源码往往会显示为乱码,此时用户需要手动调整当前编辑器或整个集成开发环境(IDE)的默认文件编码。而当一个工程中包含多种编码方式的文件时,大多数只支持设置全局文件编码的IDE更是无法准确加载每个文件的中文字符。
    MRS2支持在打开文件时自动识别其编码方式,并提供切换浏览、保存文件时编码的快捷按钮,轻松应对跨平台浏览源码、加载包含不同编码文件工程等IDE使用场景。
    在这里插入图片描述
    在这里插入图片描述
  • 主动式标点转换,防止符号误输入
    在编写代码过程中,开发者经常面临在集成开发环境与其他软件之间不断切换使用的场景,可能导致部分全角符号被误输入到代码中,尤其是逗号、分号、圆角括号等半角、全角模式下外观差异不大的标点符号。开发者需要依赖集成开发环境在语法分析、代码编译阶段的报错提示,才能逐个修复误输入的符号。
    而MRS2在支持上述被动检测符号语法的基础上,还增加了主动式标点转换功能,可以将代码编辑区输入的逗号、分号、圆角括号等全角字符直接转换为半角字符,避免了后续手动修改的步骤,提升了代码开发效率。

在这里插入图片描述

3.4智能代码辅助

  • 代码补全
    在MRS2中,可以通过使用代码补全来更快输入代码。只要开始输入关键字、变量名或函数名,MRS2便会提供一系列匹配的建议供你选择。
    在这里插入图片描述
  • 代码格式化
    在软件开发过程中,代码的整洁性和一致性对于提升代码质量和维护效率至关重要。为此,我们提供了强大的代码格式化功能,帮助开发者轻松修正代码的缩进、换行以及重新排列注释,以确保代码结构的清晰和易读。
    此外,我们还支持自定义代码格式模板,允许开发者根据自己的编码习惯和项目需求,灵活设置代码的格式规范。有助于保持代码风格的一致性,从而减少因格式差异而导致的代码审查冲突和误解。
    在这里插入图片描述
  • 代码导航:精准定位,实时更新
    在软件开发过程中,高效地导航代码是提升开发效率的关键。MRS2提供的代码导航功能,不仅能够快速跳转至代码的声明、定义和引用位置,而且具备实时更新的能力,确保即使文件经过修改,导航也不会跳转至过时的位置。
    在这里插入图片描述在这里插入图片描述
  • 代码重构:全局多次重命名,安全可靠
    在软件开发过程中,全局重命名是一项至关重要的功能,它允许开发者快速且准确地更新代码中的变量名、函数名等符号,以保持代码的一致性和可读性。
    MRS2支持跨文件的多次全局重命名,在进行全局重命名时能够理解代码中的上下文和作用域,即使存在相同名称但作用域不同的局部变量,也能被准确地区分和重命名,而且无论涉及的文件数量多少,都能准确且一次性地完成所有相关标识符的更新。

在这里插入图片描述

  • 代码分析:代码质量实时监控(clang-tidy实时分析)
    MRS2能够实时监控代码,寻找其中可能存在的错误。一旦发现任何潜在问题,它会在编辑器中高亮显示可疑的代码段,帮助开发者迅速定位并解决问题。
    在这里插入图片描述
  • 代码诊断:快速修复,高效解决编译问题
    MRS2支持快速修复功能。该功能能够自动为许多常见的编译问题提供修复建议,并且可以根据建议自动更新代码。
    另外MRS2能够智能识别代码中的点操作符(.)和箭头操作符(->),并完成两者的自动转换,有助于减少因操作符使用不当而导致的编译错误。

在这里插入图片描述
在这里插入图片描述

3.5代码编译

  • 可视化编译分析,输出段用量占比全展示
    在嵌入式开发过程中,开发者经常需要留意编译输出文件中芯片FLASH及RAM区的使用情况,防止出现代码超出芯片容量的情况。而大多数集成开发环境在结束编译后,对此类信息的提示往往不够明显、详细,无形中增加了开发者在此类频繁操作上的时间成本和犯错风险。
    MRS2支持在结束编译后可视化展示输出段的详细信息:输出段空间占比,FLASH/RAM使用情况,各变量、函数所在地址、大小、增删状态及所占空间大小变化。所有编译输出的关键信息一目了然,一定程度上提升了嵌入式项目的开发效率。
    在这里插入图片描述
  • 精准链接错误跳转
    在嵌入式开发过程中,GCC链接阶段报错信息的准确性一直是开发者关注的焦点。传统的报错信息往往不够精确,错误跳转位置指向模糊,导致开发者在排查问题时耗时耗力。
    MRS2改善这一情况,优化了错误报告机制,实现了精准的链接错误跳转功能,以提升开发效率。
    在这里插入图片描述

(MRS2)
在这里插入图片描述

(旧版MRS)

3.6代码优化

  • 快速中断:
    增添了一种全新的中断服务程序处理模式,该中断服务程序将原本的 16 个寄存器的压栈、出栈操作予以减少,转而由硬件自动进行保存,提高了硬件中断服务程序的响应时间

在这里插入图片描述

(未开启优化)
在这里插入图片描述

(开启优化)

  • 优化程序存储结构:
    增加了highcode段,并将其部署在RAM区运行,且段中的函数将不会被内联,并对未使用的 highcode 段函数加以优化,降低 RAM和FLASH 的使用量

在这里插入图片描述

(未开启优化)

在这里插入图片描述

(开启优化)

  • 自定义压缩指令:
    新增8 条针对 MCU 8/16位数据操作的XW扩展压缩指令,使用MRS2内置的GCC12.2进行测试。利用 CSIBE Benchmark 进行 CodeSize 的对比实验,CSIBE套件中最好的优化比例为4.01%。
    在这里插入图片描述
  • 添加mcpy指令
    mcpy指令功能与c语言库函数memcpy相同,使用于内存复制搬运场景,能够提高在内存区域与数据宽度非对其时内存搬运的速度。
  • 兼容软件浮点库
    对工具链中的 lib 库生成器以及 link 链接器的代码加以修改,针对未涵盖浮点数的库源码进行处理,生成能够同时兼容 ILP32、ILP32F 这两种 ABI 的库,使得所生成的库能够在具备硬件浮点扩展和不具备硬件浮点扩展的工程中均能正常使用,降低了开发者对库的维护工作量。
  • 运行库优化
    添加基于定点运算的数学函数库 IQMATH
    添加专有打印函数printf,用以缩减代码规模
    GCC8和GCC12生成的库,在链接时能够彼此兼容

3.7代码下载

  • 内置专属下载模块,支持启用外部下载工具
    MRS2内置了适配WCH-Link系列硬件调试器的代码下载模块,支持查询硬件调试器模式、开启/禁用芯片代码保护功能、设置芯片ROM+RAM分配状态、禁用芯片两线调试接口、全擦、下载、校验、复位、启用SDI打印等功能。同时,MRS2还支持切换为其他硬件调试器,按用户指定的启动参数调用外部软件来完成下载操作。
    在这里插入图片描述
    在这里插入图片描述
  • 支持远程下载功能
    MRS2还支持远程下载功能,通过近、远端MRS2中运行的远程协助模块将近端(调试方)编译生成的目标文件加密发送至远端(被调试方),再自动调用远端连接的WCH-Link硬件调试器完成下载操作,并将程序运行结果回显到近端。
    在这里插入图片描述
  • 集成多种独立下载工具
    除了内置的下载功能模块,MRS2还集成了WCHISPStudio、WCH-LinkUtility等独立下载工具,以实现在不同的使用场景、芯片预留接口条件下满足开发者的代码下载需求。

在这里插入图片描述
在这里插入图片描述

3.8代码调试

  • 完整的在线仿真调试功能
    MRS2支持单步运行、重新运行、暂停运行等在线仿真调试功能,提供了代码反汇编、寄存器、外设、调用栈、变量等监控窗口。
    在这里插入图片描述
  • 支持一键开启RISC-V半主机模式(semihosting)
    MRS2支持一键开启semihosting功能,无需开发者手动移植相关接口函数,可直接将打印函数输出的内容显示到控制台。配合简化的printf函数,在减少代码占用的同时,不再额外需要串口硬件、上位机串口接收软件,简化了代码的调试环境搭建过程。
    在这里插入图片描述
    在这里插入图片描述
  • 在线异常追踪调试
    在实际的嵌入式产品使用场景中,有部分代码异常运行现象只会在特定的软硬件环境下偶现。此时如果采用常规的在线仿真调试手段,需要先复位芯片再进入调试模式,从而导致多次重试都无法复现之前的异常现象,极大降低了此类问题的处理效率。
    MRS2针对此类应用场景,特别支持了在线异常追踪调试方法,通过GDB指令,获取芯片当前变量、寄存器、Flash、调用栈内容,无需芯片先复位、运行再去监控变量、寄存器等内容,最大程度保留硬件瞬时状态,利于追踪代码问题。

在这里插入图片描述

  • 支持远程源码级、目标代码级调试
    MRS2还支持远程调试功能,通过近、远端MRS2中运行的远程协助模块将近端(调试方)编译生成的目标文件、调试指令等加密发送至远端(被调试方),再自动调用远端连接的WCH-LinkE硬件调试器与芯片通信,完成各项单步操作,并将单步调试执行结果回显到近端。MRS2也支持远程目标代码级调试:近端用户将修改后编译生成的目标文件远程下载到目标芯片,然后根据远端回显的芯片运行时打印信息来调整近端源码,再重复上述下载、查看回显信息过程,直到确定最终的代码内容。

在这里插入图片描述

四、开放性

  • 开放式厂商组件
    MRS2支持在线更新各类模块组件,如SDK、OpenOCD等。芯片及开发板厂商可以通过MounRiver组件发布平台,上传组件供其他用户下载使用。
    在这里插入图片描述
    在这里插入图片描述

五、下载与更新

  • 访问我们的官方网站:http://www.mounriver.com/download,根据操作系统选择对应的安装包进行下载。
  • 软件支持在线、离线更新操作。
    在这里插入图片描述

六、反馈与建议

  • MRS2内置反馈与建议通道
  • 沁恒微电子官方论坛:https://www.wch.cn/bbs/forums/tech.html
  • MRS2内置用户手册在这里插入图片描述

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件框架
    +关注

    关注

    0

    文章

    22

    浏览量

    9873
  • 集成开发环境

    关注

    0

    文章

    64

    浏览量

    17721
  • RISC-V
    +关注

    关注

    45

    文章

    2292

    浏览量

    46210
收藏 人收藏

    评论

    相关推荐

    RISC-V架构及MRS开发环境回顾

    RISC-V被称为开放指令集的主要原因。(4)RISC-V目前的应用 沁恒微电子于2020年2月24日发布了首款基于 RISC-V架构,自
    发表于 12-16 23:08

    关于RISC-V学习路线图推荐

    : 使用IDE(如VSCode、Eclipse等)或命令行工具搭建RISC-V开发环境。 四、RISC-V编程实践 编写简单的RISC-V
    发表于 11-30 15:21

    RISC-V能否复制Linux 的成功?》

    是他们可以信任的。” O\'Connor预测很快就会有开源FPGA,最后还会有SoC。 RISC-V处理器设计浮出水面 基于RISC-V开源硬件的处理器设计与开源软件有所不同:其框架
    发表于 11-26 20:20

    RISC-V如何支持不同的AI和机器学习框架和库?

    RISC-V如何支持不同的AI和机器学习框架和库?还请坛友们多多指教一下。
    发表于 10-10 22:24

    加入全球 RISC-V Advocate 行列,共筑 RISC-V 的未来 !

    加入RISC-VAdvocate行列!我们正在寻找来自世界各地的RISC-V爱好者,通过全球推广和参与,成为支持RISC-V进步的关键参与者。作为一名RISC-VAdvocate,您将
    的头像 发表于 09-10 08:08 426次阅读
    加入全球 <b class='flag-5'>RISC-V</b> Advocate 行列,共筑 <b class='flag-5'>RISC-V</b> 的未来 !

    RISC-V Summit China 2024 青稞RISC-V+接口PHY,赋能RISC-V高效落地

    沁恒在历届峰会上分享RISC-V在MCU领域的创新成果,和大家共同见证了本土RISC-V产业的成长。早在第一届RISC-V中国峰会上,沁恒就公开了青稞RISC-V系列量产芯片的关键技术
    的头像 发表于 08-30 18:18 1533次阅读
    <b class='flag-5'>RISC-V</b> Summit China 2024  青稞<b class='flag-5'>RISC-V</b>+接口PHY,赋能<b class='flag-5'>RISC-V</b>高效落地

    RISC-V Summit China 2024 | 青稞RISC-V+接口PHY,赋能RISC-V高效落地

    MounRiver Studio IDE(MRS)不仅在工具链层面为青稞RISC-V的免表中断和指令扩展提供支持,还通过一键工程创建、多种运行库、数学库、本地/远程调试、免复位问题定位等实用功能,让
    发表于 08-30 17:37

    2024 RISC-V 中国峰会:华秋电子助力RISC-V生态!

    、生态伙伴、公开课、开发者社区、评测试用等栏目,是为各生态厂商量身定制的硬件开发平台,通过线上社区+一站式供应链服务让硬件开发变得更简单。他表示,RISC-V开放平台已吸引30+厂商入驻,发布硬件产品
    发表于 08-26 16:46

    risc-v的发展历史

    Foundation),旨在促进RISC-V架构的发展和推广。该基金会由大量的企业和机构支持,包括英特尔、Nvidia、谷歌、华为、IBM、红帽、西部数据等。 2015年:RISC-V基金会发布了第一个稳定版
    发表于 07-29 17:20

    rIsc-v的缺的是什么?

    通过软件模拟或复杂的指令序列来实现一些高级功能,这可能会增加执行时间和功耗。 2. 生态系统支持不足 软件和工具链的可用性:尽管RISC-V社区在快速发展,但与成熟的ARM等架构相比,
    发表于 07-29 17:18

    如何在VSCODE下面进行RISC-V的调试

    如题,如何在VSCODE下面进行RISC-V的调试?下载等
    发表于 07-25 11:49

    Efinity RISC-V IDE入门使用-3

    自从新版本的Efinity RISC-V IDE发布之后,这直没有时间操作一下,它为RISC-V ' C '和' c++ '软件开发提供了一
    的头像 发表于 07-09 08:46 1223次阅读
    Efinity <b class='flag-5'>RISC-V</b> <b class='flag-5'>IDE</b>入门使用-3

    解锁RISC-V技术力量丨曹英杰:RISC-V与大模型探索

    4月12日,第二期“大家来谈芯|解锁RISC-V技术力量”在上海临港新片区顶科永久会址举办,本期沙龙聚焦RISC-V技术,围绕AI时代的RISC-V市场机会、RISC-V在汽车领域的应
    的头像 发表于 04-16 08:16 722次阅读
    解锁<b class='flag-5'>RISC-V</b>技术力量丨曹英杰:<b class='flag-5'>RISC-V</b>与大模型探索

    昉·星光2 RISC-V单板计算机体验(一) - 开箱

    昉·星光2 RISC-V单板计算机体验(一) - 开箱 一、开箱 昉·星光2( VisionFive 2 )的包装盒设计的很有科技感。“拥抱变革, 拥有未来”这句话太适合当下环境了。
    的头像 发表于 02-21 10:10 725次阅读
    昉·星光<b class='flag-5'>2</b> <b class='flag-5'>RISC-V</b>单板计算机体验(一) - 开箱

    什么是RISC-V

    siFive搞RISC-V 赛昉搞RISC-V 香山搞RISC-V 到底什么是RISC-V? 先不问有什么用,RISC-V目前的能力来说,工
    发表于 02-02 10:41