ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MounRiver Studio配置全攻略:版本选择、GCC路径与汉化

MounRiver Studio配置全攻略:版本选择、GCC路径与汉化 上个月帮一个刚转RISC-V开发的朋友收拾电脑一个MounRiver Studio就折腾了两个晚上。他的遭遇特别典型官网下载页对着一堆版本号不知道选哪个装完IDE之后在系统里翻遍了吧也找不到GCC到底装到了哪里好不容易把工程编译通过又因为默认英文界面配置调试器时菜单翻得头皮发麻。之后我去论坛逛了一圈才发现这根本不是个例——问GCC路径的一抓一大把问汉化的帖子每年都有新人翻出来。这篇我就把版本选择、GCC路径定位、汉化配置这三件事串在一起讲透把我自己踩过的和帮别人排查过的坑都列出来给后来的人省点时间。1. 入手MounRiver Studio前需要先想明白的三件事很多人的第一个坑不是版本选错而是根本不知道MounRiver Studio到底是什么、跟手上芯片是什么关系冲着一个官网最新版就装了。1.1 它本质上是Eclipse不是一套独立开发工具MounRiver Studio下文简称MRS是沁恒官方推出的集成开发环境做RISC-V系列MCU开发的像CH32V003、CH32V103、CH32V307、CH32L103这些芯片的工程基本都是用它来写、编译、烧录和调试。但这套IDE并不是从零开发的它基于Eclipse深度定制改造而来。搞清楚这一点特别关键因为后面所有关于汉化、插件、工作空间的骚操作思路都和Eclipse一脉相承。你用Eclipse时积累的经验——比如工作空间Workspace里乱掉之后怎么救、构建日志在哪看、插件怎么装——在MRS里几乎都能平移过来。反过来说Eclipse的老毛病它也一样不少路径里有中文可能出问题、跨版本打开工程可能报一堆错、界面语言切换不是设置里点一下那么简单。1.2 V1.x和V2.x不是一个简单的升级关系MRS的版本线大致能分成V1.x系列和V2.x系列。V1.x是最早一批版本界面朴素功能相对基础适合老用户在一个固定环境里长期维护老工程V2.x是后面的版本线底层的Eclipse基座更新了界面细节、芯片支持列表、工具链版本都有明显变化新出的芯片基本只在V2.x系列里支持。这里要特别提醒V2.x并不是V1.x的补丁版而是底层重构过的新系列。我用过一个项目从V1.8往V2.0迁移工程文件本身能打开但编译链路径、调试配置里的链接脚本位置全得重设一遍。所以别抱着版本越新越省事的心态你要是手里有个跑了两年的老项目升级前先把整个工程目录备份了再说。1.3 你的芯片决定版本上限而不是上限决定体验选版本最稳的判断标准就一条打开你要用的芯片对应型号的官方例程看它要求哪个MRS版本。官方例程工程的头文件里或者下载页面的说明里通常会标注使用MRS V2.x以上版本打开之类的提示。你手上的芯片越新需要的MRS版本就越新反过来如果你就维护一个CH32V103的老项目刻意追最新的MRS反而可能引入不必要的变量。另外要注意WCH-Link调试器的固件版本和MRS版本之间也有配合关系。官方会把配套的WCH-Link驱动和固件放在MRS相关页面或工具链里版本太老可能识别不到调试器太新也可能跟旧版MRS的调试插件有兼容问题。稳妥做法是先确认芯片型号再看官方例程要求的MRS版本范围最后选那个范围里偏新的稳定版。2. 版本选择实操从下载到确认底层版本号说清楚了原理接下来是能直接照着做的操作步骤。版本选择这种事必须在动手安装之前做完装完再后悔成本就高了。2.1 下载页面容易看走眼的三个细节下载MRS时最容易看走眼的是三处。第一32位和64位安装包的区别Windows下选错最多是装了跑不起来或者打开大工程卡到怀疑人生第二有的下载链接给的是安装包exe有的是zip压缩包zip包解压即用但不会写注册表、不会自动装驱动新手建议直接选exe安装包省得后面WCH-Link驱动缺失了还不知道为什么第三非稳定版本标识比如带Beta、RC字样的版本尽量避开MCU开发工具稳比新重要。下载完安装包后建议顺手记一下版本号。这个习惯帮我省过不少事——比如有一天你在论坛上看到别人说升到某版本之后OpenOCD配置不生效了你能立刻判断自己是不是同样的情况。记在哪不重要微信文件传输助手都行。2.2 安装路径这一关很多人跪在这里MRS的安装路径选择比大多数人想象的重要。我的建议简单粗暴建议安装到一个纯英文、无空格、无特殊符号的路径下比如D:\MRS\。千万别手滑装到D:\软件\MounRiverStudio\这种带中文的目录。原因不是玄学。MRS内置的GCC工具链和Eclipse框架对路径里的非ASCII字符支持并不好轻则编译时报路径找不到重则整个工程无法构建。你后面所有的痛苦可能都源于安装时多打了两下键盘。另外安装过程中如果有添加环境变量创建桌面快捷方式之类的选项建议保持默认勾选后面能找到GCC路径会方便一点。2.3 安装完之后怎么确认版本和底层Eclipse版本装好之后打开IDE在菜单栏的Help About MounRiver Studio或者关于MounRiver Studio里能看到版本号。但如果你想做汉化还需要知道它底层基于的Eclipse具体版本这个信息藏在两个地方Help About MounRiver Studio Installation Details看Properties标签页里的eclipse.buildId那里面会有类似4.x.x的Eclipse版本号或者在安装目录下打开readme、epl-v10.html这类文件旁边的说明文档有的版本会直接写明基于哪个Eclipse版本构建。记下这个Eclipse基座版本是后面一切汉化方案的起点。我见过太多人拿着一个基于Eclipse 4.x的老版本去装为Eclipse 4.20语言包装完IDE直接起不来的惨案。3. GCC到底装在哪里路径问题这样一次定位清楚不少人在系统环境变量里找不到GCC就以为MRS没装编译工具链。其实MRS是自带工具链的设计GCC就藏在IDE安装目录里只是它默认不加入系统PATH所以你打开命令行敲gcc肯定找不到。想要精确定位它有几种办法按效率排序给你。3.1 最直接的办法看IDE构建日志打开任意一个RISC-V工程随便编译一下控制台Console里会完整打印编译命令行。你会看到riscv-wch-elf-gcc或者riscv-none-embed-gcc这类编译器可执行文件的完整路径这个就是当前IDE实际使用的GCC。这个方法最准因为它反映的是IDE真实调用的编译链不会被系统PATH里其他GCC干扰。以我见过的大多数环境为例路径通常长这样C:\MounRiverStudio\MRS\toolchain\RISC-V Embeded GCC\bin\riscv-wch-elf-gcc.exe注意不同版本的MRS工具链文件夹的名字可能不一样有的叫RISC-V Embeded GCC有的直接以工具链前缀命名比如riscv-wch-elf-gcc。认准里面的bin目录就对了编译器的几个可执行文件都在bin下。3.2 命令行搜索兜底方案如果你懒得开IDE或者IDE已经崩了可以用Windows自带的搜索命令直接扫where /R C:\MounRiverStudio riscv*-gcc.exe把C:\MounRiverStudio替换成你实际的安装根目录这个命令会递归扫描该目录下的所有匹配文件。运气好的话几秒钟就能看到路径。如果安装目录比较大也可以只扫toolchain子目录更快。3.3 要不要手动把GCC加进系统PATH这个问题得看使用场景。如果你只是老老实实点IDE的锤子图标编译那完全不需要把GCC加进PATH加了反而有风险但如果你像我一样喜欢写脚本批量编译、做CI或者需要在命令行里跑riscv-wch-elf-gcc处理一些链接脚本、生成bin文件那加进PATH能省很多事。加PATH的操作不用说太多但我有一个血泪教训加的时候务必精确到bin目录这一级不要图省事把整个toolchain目录加进去。我自己有次就把toolchain根部加进了PATH结果命令行敲make的时候系统竟然找到了toolchain里某个老旧的make工具跟我脚本里调用的make版本完全对不上排查了大半天。3.4 多版本MRS共用一个系统的冲突现场因为工作原因我电脑里同时装了V1.x和V2.x两个版本的MRS这个场景在MRS用户里很常见。很多人会在这时候踩坑安装时顺手勾了添加PATH两个版本自带的GCC版本还不一样命令行里敲riscv-wch-elf-gcc -v看到的版本就取决于PATH顺序。如果此时脚本里又没写死绝对路径编译出来的产物和IDE里编的完全不是一回事链接阶段各种奇奇怪怪的错误就来了。所以我的建议是要么两个版本都不加PATH靠脚本里的绝对路径区分要么只加常用版本的那个。别装一个加一个到时候自己都记不住谁先谁后。4. 汉化配置把英文界面换成中文的完整方案汉化是MRS新手最常问的话题。MRS的界面语言跟安装时选择的语言包有关有的版本默认英文有的版本会跟随系统语言但实际体验往往不完整——菜单一半中文一半英文看着更难受。下面我把原理和几条路径都讲清楚你根据自己的情况选。4.1 汉化的底层原理Eclipse语言包机制MRS是Eclipse改的Eclipse的界面文字来自各插件包里的语言资源文件。界面显示什么语言取决于Eclipse启动时拿到的locale参数和实际存在的语言资源。所以汉化本质上就两件事第一件告诉IDE我要用简体中文第二件让IDE有对应的中文语言资源可用。根据这个原理汉化的方法就清晰了最快的是改启动参数让IDE以中文locale启动如果它自带中文资源那就是纯中文如果想汉化得更完整那就安装中文语言包把缺失的资源补上。很多人搞不清这两种方式的区别其实很类似你手机上的英文系统中文输入法和整体系统语言切到中文的关系。4.2 方案一启动参数强制中文最快要一分钟方法是在启动MRS的快捷方式或者命令行里加上-nl zh_CN参数。-nl是Eclipse系通用的指定语言环境参数zh_CN代表简体中文。具体操作右键桌面上的MounRiver Studio快捷方式选属性在目标一栏的末尾引号之后加一个空格输入-nl zh_CN点击确定重新打开MRS你会发现界面变成了中文至少能翻的部分都会变。如果MRS的启动是通过一个包装程序launcher来做的改快捷方式不一定有效那就去安装目录下找和启动程序同名的.ini文件比如MRS.ini或mrs.ini用文本编辑器打开在-vmargs之前单独加两行-nl zh_CN保存后重新启动IDE。这个方法的优点是风险低、操作快缺点是它只强制IDE使用中文语言环境如果MRS自带的中文资源本身不完整那界面该是英文的还是英文。4.3 方案二安装中文语言包汉化更彻底想要更完整的汉化效果就得安装Eclipse的Babel中文语言包。但这里有个大前提语言包版本必须和MRS底层的Eclipse基座版本匹配。前面我说过要先去Help About里查Eclipse基座版本就是为了这一步。大体步骤是确认MRS底层Eclipse版本比如4.7、4.9、4.21之类去Eclipse Babel项目地址可自行搜索Eclipse Babel download下载对应版本的简体中文语言包一般是BabelLanguagePack-eclipse-zh_CN_XXXX.zip这样的文件关闭MRS把zip里的plugins和features两个目录解压出来打开MRS安装目录把这两个目录下的内容合并拷贝到同名的plugins和features目录里重新启动MRS启动时建议加-clean参数强制Eclipse清理缓存否则有时候语言包不生效。如果你能接受用Eclipse自带的Install New Software在线安装方式也可以直接在IDE里操作Help Install New Software添加Babel的更新站点只筛选简体中文语言包安装。不过在线装Babel经常会因为源在国外而慢得让人抓狂甚至装一半超时所以我个人更推荐离线zip手动合并的方式。4.4 汉化之后的中英混排不要强求完美需要提前打个预防针MRS汉化后出现中英混排是正常状态不是你的操作失误。MRS里有一部分沁恒自己开发的界面、右键菜单和配置项是不在国际语言包覆盖范围内的这些地方不管你怎么汉化都会保持英文。再就是工具链自带的一些控制台输出、编译器警告信息本来就是全英文的这个谁也改不了。我见过有人为了把最后那点英文消灭掉去翻插件源码硬改语言文件浪费了几天时间最后升级一次版本全部白改。说实话没必要IDE和命令行输出里保留英文反而是嵌入式开发者的常态调试信息本来就是按英文阅读习惯设计的。汉化追求的是菜单能看懂、配置项不抓瞎不是全屏没有一个英文字母。5. 避坑实录版本、路径、汉化叠加时的三个真实排错现场这一节我写几个自己或帮朋友排查过的真实案例。它们都不是什么惊心动魄的大故障但特别典型新手照着做至少能少走一半弯路。5.1 案例一汉化包装错版本IDE直接打不开有个朋友在V1.x老版本的MRS上装了一个Babel中文语言包结果重启之后IDE连欢迎页都出不来日志里全是类加载失败。一查原因那个语言包是为新版Eclipse基座编译的老版MRS加载不了这些资源类文件直接导致整个插件体系崩溃。排查恢复的过程也不复杂进安装目录找到之前拷进去的plugins和features目录把当时语言包zip里的几个jar文件全部删掉再重启IDE就恢复正常。这个案例给我的最大教训是动手汉化之前一定要在关于页面确认底层Eclipse版本而且不要跨越太大的版本代差去装语言包。如果底层的Eclipse基座是4.9你就老老实实找4.9.x对应的语言包别拿4.21的来凑。5.2 案例二换新版MRS打开老工程编译报找不到编译器另一个朋友把电脑里的MRS从V1.7升级到了V2.x打开老工程后点击编译控制台直接报Program riscv-wch-elf-gcc not found或者无法运行程序。工程设置里指向的编译器绝对路径还写着老版本的工具链位置工具链本身在老版本被覆盖或卸载后已经不存在了。这种问题的修法不复杂在工程上右键进入属性找到C/C Build相关的设置汉化后是C/C 构建把工具链路径重新指定到新版本MRS的toolchain目录下然后Project Clean清一遍再重新编译。但更值得说的预防措施是升级MRS大版本前建议把老的安装目录整个保留一份或者至少把工具链子目录单独备份。工程里面写死的路径不会自动跟着新版本走留着老目录可以让你在新环境没配好之前随时切回去干活。5.3 案例三命令行GCC和IDE内置GCC不是同一个我自己踩过的坑。有阵子我想用脚本批量编译几个工程图省事把某个MRS版本的GCC加进了PATH结果有一台机器上PATH里先加载的是另一个老版本工具链脚本编译出来的固件在板子上运行表现和IDE编译的不一样某些外设初始化就是不正常。那次排查绕了很大一圈最后的结论不是代码问题而是编译器版本差异导致的代码生成不同。从那以后我所有的编译脚本里一律写死GCC的绝对路径比如set GCC_BINC:\MounRiverStudio\MRS\toolchain\RISC-V Embeded GCC\bin %GCC_BIN%\riscv-wch-elf-gcc.exe -v宁可脚本丑一点也不要让环境变量里的隐性顺序决定你用哪个编译器。这也解释了为什么我前面建议多版本MRS别都加PATH——这不是洁癖是实打实的排错成本。6. 顺手分享几个能长期受用的习惯前面把版本、路径、汉化三大块讲完了最后再分享几个我自己的习惯不敢说多高级但确实帮我省过很多次事。第一永远保留一份稳定可用的MRS安装包。官网可能隔段时间就更新页面旧的安装包链接大概率会被替换掉。手里存一份网盘或移动硬盘里的稳定版哪怕是不带升级的新电脑也能快速复现环境。这个习惯我吃了太多甜头了。第二工作空间单独备份不要和IDE装在一起。MRS的工作空间里保存着你所有工程的编译状态、调试配置、窗口布局等信息。很多人默认路径把工作空间建在安装目录下一升级MRS变得小心翼翼。建议新建工作空间时单独指定一个目录比如D:\MRS\workspace这样卸掉旧版、装新版几乎无损切换。第三遇到首次启动很慢不要慌。无论是汉化、装插件还是换了工作空间MRS首次启动都会做大量缓存重建界面上看起来像卡死了其实它还在加载。等个两三分钟如果还没反应再用-clean参数重启一次。ECO最后说一句关于网络搜索的事。我注意到有朋友在搜诸如codex汉化怎么配置之类的问题时思路其实是想找某个开发工具的汉化教程。如果你搜到的工具恰好也是基于Eclipse定制的那么本文讲的这套思路——确认基座版本、改-nl参数、匹配Babel语言包——完全可以直接复用。工具换了汉化的底层逻辑还是那一套这点明白了以后遇到任何Eclipse系IDE都不用再求人。写这篇的时候我又想到了一个值得单独扩展的话题MRS工程从V1.x迁移到V2.x时链接脚本、启动文件和调试配置具体需要调整哪些字段。这个坑我还没在论坛里看到有人系统整理过。等下次有空我再把它单独写一篇这次先到这里希望这些内容能帮你在MounRiver Studio上少熬几个夜。
返回列表