CH32V003开发环境MRS配置

发布时间 2023-08-11 22:22:21作者: fxzq

MRS是MounRiver工作室采用开源项目Eclipse制作的一款易于使用的开发工具,它几乎是为WCH系列芯片量身定制的,相对于其他一些开发环境,它具有编译速度快,使用简洁方便,支持多种平台等特点,可访问MounRiver的官网(www.mounriver.com)下载最新版本。

MRS的安装可全部采用默认选项进行,安装完成后启动程序并新建一个工程,这里选择芯片型号为CH32V003F4P6。工程建立完成后,MRS会替你配置一个完整的开发环境,包含有全部库文件。从其左边的工程浏览窗口中可看到创建的文件结构,如下图所示。

上图中,头两个目录Binaries和Includes是MRS环境生成的,一个存放编译后生成的二进制文件,一个存放包含的头文件。这两个目录不能也不用移除。 接下来的第3个目录Core里存放有RISC-V的核心文件及其头文件,它们里面定义有与内核相关的一些设备(比如系统定时器SysTick等)。第4个目录Debug主要存放与串口调试相关的文件及其头文件。第5个目录Ld存放的是编译时的链接文件。第6个目录Peripheral中就是存放库文件及其头文件的。第7个目录Startup是存放系统启动文件的。第8个目录obj也是MRS环境生成的,它存放的是编译后所有的生成文件及makefile文件,也移除不了(编译后会自动创建)。第9个目录User就是用户目录了,它里面存放的文件如下图所示。

可见主程序文件main.c就放在这其中。从以上的目录结构可以看出,MRS借鉴了STM32开发的库文件形式。使用库文件虽然有利于降低开发难度,可实现对芯片的快速开发,但对于芯片原理性的学习却并不合适。因为库函数替你做了太多的事情,封装了很多对寄存器的操作,不利于对芯片底层操作的学习。另一方面,CH32V003虽然是一款32的芯片,但其资源还是有限的,ROM只有16KB,RAM只有2KB。加上RISC-V架构的代码密度本来就不如ARM架构,所以控制程序的容量大小及其对RAM的使用量就显的十分必要。此外,48MHz的最高运行速度其实也不算很高。使用库函数时,频繁的函数调用会额外地增加压栈和出栈的时间,不仅浪费时间还浪费空间,对于CH32V003这类“小”芯片来说并不适合。综上所述,本教程对于CH32V003的开发不使用任何库函数,本着能省则省、提高效率为原则,从学习每个寄存器的操作开始。

基于上述原因,可以对MRS的默认开发环境进行重新配置。为了加快编译速度,这里就把不用的文件全部移出开发环境,只保留几个关键文件,分别是:头文件ch32v00x.h,启动文件startup_ch32v00x.S,链接文件Link.ld,RISC-V的核心文件core_riscv.c及其头文件core_riscv.h,系统配置文件system_ch32v00x.c及其头文件system_ch32v00x.h。当然,还应该有个主程序文件main.c(要把其中的内容全部清空)。如下图所示。

在工程的最后还有一个名为CH32V003F4P6.launch的文件,该文件是MSR开发环境的配置文件,与程序无关,可以保留。

最后还需要改一下头文件,因为里面包含有已经移除的文件。打开头文件ch32v00x.h,找到“#include <ch32v00x_conf.h>”这一句(大概在2396行),把它注释掉就可以了,如下图所示。

通过以上的配置,MRS已经被精简了很多,编译速度也加快了不少。至此,就可以使用它来进行后续的学习与开发了。