MRS_开发编译与设置相关问题汇总
解决问题如下:
- MRS开发编译时,如何修改工程优化等级
- MRS进行工程编译时,如何配置FLASH、RAM显示占比
- 打印浮点类型
- 配置LD文件在工程中显示
- 使用sprintf打印
- 当重复多次调用相同函数编译出错,删除一些正常
- 关于MRS 的汇编设置 assembler 和 assembler-with-cpp 的区别以及如何切换
- 关于关键字 __attribute__((section(x)))的使用
- 关于sprintf打印输出配置
- 当使用MounRiver编译遇到下列问题
- MRS使用C++编译修改方法
- 关于编译器默认是char还是unsigned char的问题
- MounRiver同时生成hex文件和bin文件设置方法
- MRS将变量指定RAM区域Noinit不初始化
MRS开发编译时,如何修改工程优化等级
具体如下:

或有时编译报错,也可按照下列勾选试一下

MRS进行工程编译时,如何配置FLASH、RAM显示占比
具体配置如下:

配置完成后,编译显示如下:

关于RAM显示占比百分之百问题:这是由ld文件的书写不同导致的,不影响的,data+bss的大小就是实际使用的RAM的大小。若需要修改显示,可将ld文件修改下,修改内容如下图,修改ld文件的同时需要将debug.c文件中的void *_sbrk(ptrdiff_t incr)函数整体注释掉,此处需要注意,修改过后,动态内存分配超出将不会有提示。

打印浮点类型
当需要打印浮点类型时,MRS要进行如下配置,具体如下图:

或只勾选下面这个

配置LD文件在工程中显示
当打开工程没有显示LD文件时,如何配置LD文件在工程中显示,具体如下图。直接在工程文件夹下修改ld文件名称,将.ld文件名称重命名为link.ld,然后将ld文件路径修改

使用sprintf打印
当使用sprintf打印时,如执行sprintf(buf, "%5.1f", fvalue),需进行如下配置:

当重复多次调用相同函数编译出错,删除一些正常
原因如下:

关于MRS 的汇编设置 assembler 和 assembler-with-cpp 的区别以及如何切换


用例程 WebServer参考FreeRTOS,移植FreeRTOS的代码,编译报错,如下图

区别是有没有打开汇编文件的预处理,如下图所示:

关于关键字 __attribute__((section(x)))的使用

关于sprintf打印输出配置

当使用MounRiver编译遇到下列问题

可在工程属性页勾选汇编预处理选项尝试解决该问题,如下:

MRS使用C++编译修改方法
1、选中工程 右键 new->other



注意事项:

1、
la a0,__libc_fini_array
call atexit
call __libc_init_array

2、
void _init(void){}
void _fini(void){}

关于编译器默认是char还是unsigned char的问题

不勾选 char默认是unsigned char;勾选后默认是signed char。
如果不确定可通过以下函数确认:

MounRiver同时生成hex文件和bin文件设置方法


注:配置后点击应用并关闭
图二中构建bin文件指令:
riscv-none-embed-objcopy -O binary "${ProjName}.elf" "${ProjName}.bin"
如果你的MounRiver在图一选择的输出bin文件则图二可以使用以下指令:
riscv-none-embed-objcopy -O ihex "${ProjName}.elf" "${ProjName}.hex"
MRS将变量指定RAM区域Noinit不初始化

浙公网安备 33010602011771号