MounRiver使用技巧及配置1
使用技巧1
Debug时,看不到外设寄存器选项,如下图:
原因及方法:未添加SVD文件路径,需添加SVD文件路径。CH32V103、CH32V307对应文件路径如下:
CH32V003:${eclipse_home}template/wizard/WCH/RISC-V/CH32V003/NoneOS/CH32V003xx.svd
CH32V103:${eclipse_home}template/wizard/WCH/RISC-V/CH32V103/NoneOS/CH32V103xx.svd
CH32V203:${eclipse_home}template/wizard/WCH/RISC-V/CH32V203/NoneOS/CH32V203xx.svd
CH32V307:${eclipse_home}template/wizard/WCH/RISC-V/CH32V303/NoneOS/CH32V307xx.svd
添加方法如下:
添加之后如下:
或可直接新建工程,也可以得到该路径
使用技巧2
Debug时,如何更改变量显示类型
修改方法如下:
使用技巧3
MRS下载编译时,更改生成文件是HEX文件还是BIN文件,具体如下:
使用技巧4
MRS开发编译时,如何修改工程优化等级,具体如下:
使用技巧5
MRS进行工程编译时,如何配置FLASH、RAM显示占比,具体配置如下:
添加 -Wl,--print-memory-usage
配置完成后,编译显示如下:
关于RAM显示占比百分之百问题:这是由ld文件的书写不同导致的,不影响的,data+bss的大小就是实际使用的RAM的大小(一般情况下,以CH32系列为主,其他可能有所区别)。若需要修改显示,可将ld文件修改下,修改内容如下图,修改ld文件的同时需要将debug.c文件中的void *_sbrk(ptrdiff_t incr)函数整体注释掉,此处需要注意,修改过后,动态内存分配超出将不会有提示。
使用技巧6
CH32V307是支持硬件浮点的,可以是math.h中的sinf。IQMath主要是为没有硬件浮点的MCU提供的定点运算库。如果CH32V307要使用IQMath,需要把f扩展给关闭
CH32V307是支持单精度的浮点,math.h中的不带f结尾的函数都是double类型的速度很慢。要使用带f结尾的函数,如:sinf(x),cosf(x).
CH32V307使用IQMath库时,MounRiver如何配置,如下图:
首先在main文件中要包含头文件路径:#include"IQmath_RV32.h",具体如下图:
其次要在Extension Library中勾选了“Use iqmath”。
最后,还需将f扩展给关闭,具体如下图,参考下图设置,关闭红框里两个地方
使用技巧7
使用MRS时,当使用到math数学库时,除了要包含math.h头文件之外,还要进行如下配置,如下图:
使用技巧8
当需要打印浮点类型时,MRS要进行如下配置,具体如下图:
使用技巧9
当打开工程没有显示LD文件时,如何配置LD文件在工程中显示,具体如下图。直接在工程文件夹下修改ld文件名称,将.ld文件名称重命名为link.ld,然后将ld文件路径修改
使用技巧10
当使用sprintf打印时,如执行sprintf(buf, "%5.1f", fvalue),需进行如下配置:
关于sprintf函数,其并不是一个打印函数,如下图,其是将M_PI的值输出到str所指向的字符串。如果成功,则返回写入的总字符数,不包括字符串追加在字符串末尾的空字符。如果失败,则返回一个负数。可使用puts函数输出该字符串