本帖最后由 我芯永恒 于 2025-2-28 13:26 编辑
想必用RISC-V MCU的工程师都发现常用的编译器 MounRiver Studio(MRS)已经悄然更新成2.0版本了。经过一段时间使用后分享一下心得体验。
本文分享《工程创建》《工程配置》《工程管理》《代码编辑》,后续将继续更新
一、概述
MounRiver Studio Ⅱ(MRS2)为MounRiver Studio的换代版本,从V2.1开始,框架更换至更现代的VSCode,并深度定制开发。在工程管理、代码编辑、编译、调试等方面均兼容之前版本,并在效率和功能等方面进行提升,着力将MRS打造为更加轻量化、智能化、高效化的RISC-V IDE。同时,提供Windows/Linux/macOS 以及国产操作系统版本,用户可前往MRS官网进行下载。
二、MRS2亮点
高速化软件启动:针对安装速度、软件框架启动速度进行了专项优化。
自动化工程配置:从模板无需设置直接创建工程、自带默认的编译配置、工具链切换时编译选项联动修改。
实时化全局搜索:搜索结果根据实际文件内容实时刷新。
智能化代码辅助:支持代码导航、补全、诊断、格式化、重构以及代码的实时静态语法分析;
可视化代码分析:支持图表化显示代码中ROM,RAM用量占比、函数及变量占用内存大小及变化、输出文件各段数据实际大小等。
高效化芯片调试:除常用的在线仿真调试外,还支持在线异常追踪调试以及远程调试。
多样化辅助工具:集成HEX/BIN文件处理、串口调试、ISP下载、二进制文件浏览等多种嵌入式开发辅助工具。
三、核心功能介绍
【工程创建】
内置芯片模板工程,支持快速创建项目
MRS2内置了沁恒微RISC-V芯片裸机及嵌入式实时操作系统工程模板,配套提供完整的编译、下载、调试参数文件,无需手动逐一设置,可直接一键式创建项目。
自定义工程模板创建、导入、导出功能
MRS2支持将自定义的项目创建为芯片工程模板并导出,再由安装在其他主机上的MRS2导入后,即可在新建工程时使用自定义的芯片工程模板创建项目。
【工程配置】
集中式工程配置页面,支持参数联动设置
MRS2提供了一个集中式配置页面,包含嵌入式项目开发中涉及的编译、下载、调试等关键配置信息。并支持切换工具链时,自动排除不支持的扩展指令参数;切换目标芯片型号时,禁用该型芯片不支持的Flash操作勾选项等。
【工程管理】
支持多种工程加载方式,便捷切换目标芯片型号
MRS2兼容旧版MRS创建的工程、解决方案以及WCH EVT工程,可双击.wvproj/.wvsln文件或软件内菜单项加载工程/解决方案。MRS2还支持切换当前目标芯片型号,同时自动设置对应的下载、调试参数。
内置文件版本管理功能,支持回溯历史版本源码
MRS2在文件保存时会自动按照分钟级的时间跨度进行版本备份,用户可以查看、对比任意备份的文件历史版本,并支持同步两个文件历史版本间的代码差异。
【代码编辑】
自由添加文件书签、笔记
MRS2可通过快捷键或右键菜单添加代码书签、笔记,支持快捷键方式跳转、专属页面全局管理,该功能不会像代码注释一样修改源码,修改后不影响源码编译结果,有助于审阅、浏览代码时添加备注信息。
主动式文件编码识别,避免中文字符出现乱码
由于在Windows/Linux/macOS等平台下,文件的默认编码方式不同,导致更换平台加载工程时,包含中文的源码往往会显示为乱码,此时用户需要手动调整当前编辑器或整个集成开发环境(IDE)的默认文件编码。而当一个工程中包含多种编码方式的文件时,大多数只支持设置全局文件编码的IDE更是无法准确加载每个文件的中文字符。
MRS2支持在打开文件时自动识别其编码方式,并提供切换浏览、保存文件时编码的快捷按钮,轻松应对跨平台浏览源码、加载包含不同编码文件工程等IDE使用场景。
主动式标点转换,防止符号误输入
在编写代码过程中,开发者经常面临在集成开发环境与其他软件之间不断切换使用的场景,可能导致部分全角符号被误输入到代码中,尤其是逗号、分号、圆角括号等半角、全角模式下外观差异不大的标点符号。开发者需要依赖集成开发环境在语法分析、代码编译阶段的报错提示,才能逐个修复误输入的符号。
而MRS2在支持上述被动检测符号语法的基础上,还增加了主动式标点转换功能,可以将代码编辑区输入的逗号、分号、圆角括号等全角字符直接转换为半角字符,避免了后续手动修改的步骤,提升了代码开发效率。
智能代码辅助
①代码补全:
在MRS2中,可以通过使用代码补全来更快输入代码。只要开始输入关键字、变量名或函数名,MRS2便会提供一系列匹配的建议供你选择。
②代码格式化
在软件开发过程中,代码的整洁性和一致性对于提升代码质量和维护效率至关重要。为此,我们提供了强大的代码格式化功能,帮助开发者轻松修正代码的缩进、换行以及重新排列注释,以确保代码结构的清晰和易读。
此外,我们还支持自定义代码格式模板,允许开发者根据自己的编码习惯和项目需求,灵活设置代码的格式规范。有助于保持代码风格的一致性,从而减少因格式差异而导致的代码审查冲突和误解。
③代码导航:精准定位,实时更新
在软件开发过程中,高效地导航代码是提升开发效率的关键。MRS2提供的代码导航功能,不仅能够快速跳转至代码的声明、定义和引用位置,而且具备实时更新的能力,确保即使文件经过修改,导航也不会跳转至过时的位置。
④代码重构:全局多次重命名,安全可靠
在软件开发过程中,全局重命名是一项至关重要的功能,它允许开发者快速且准确地更新代码中的变量名、函数名等符号,以保持代码的一致性和可读性。
MRS2支持跨文件的多次全局重命名,在进行全局重命名时能够理解代码中的上下文和作用域,即使存在相同名称但作用域不同的局部变量,也能被准确地区分和重命名,而且无论涉及的文件数量多少,都能准确且一次性地完成所有相关标识符的更新。
⑤代码分析:代码质量实时监控(clang-tidy实时分析)
MRS2能够实时监控代码,寻找其中可能存在的错误。一旦发现任何潜在问题,它会在编辑器中高亮显示可疑的代码段,帮助开发者迅速定位并解决问题。
⑥代码诊断:快速修复,高效解决编译问题
MRS2支持快速修复功能。该功能能够自动为许多常见的编译问题提供修复建议,并且可以根据建议自动更新代码。
另外MRS2能够智能识别并自动转换代码中的点操作符(.)为箭头操作符(->),这一转换在处理结构体指针时尤为关键,有助于减少因操作符使用不当而导致的编译错误。更重要的是,该功能能够即时生效,无需开发者手动查找和替换,从而大幅提升了代码修复的效率。
|