CH32V编译问题

一个小程序,写爆了flash空间,通过测试,原因是这样的:我有一个tool.c文件,里面有F1-F100,一共100个函数,但在我的main里,我只使用了F1这1个函数,但是在编译过后,F2-F100也被编译到flash空间中。。。。。我记得在以前用过的IDE里编译的时候,不管代码里写了多少函数,编译的时候只会把程序运行中使用到的函数编译到flash里,未使用的函数不参加编译。请问:在MRS里能实现这种效果吗?能通过在那里设置一个编译选项实现吗?如果不能实现的话,只能在每个APP工程里再弄一个配置,决定那些函数参加编译,还要在tool.c里的每个函数上都加上条件编译,那就太费劲了。。。

图片中的三个选项会将函数和数据分成不同的section,链接时会删除没有调用的section。默认都是开启的。

image.png


image.png

这个是LD文件里的内容,您所说的section指的是这个么?我不太明白,如果把您说的选项选中后,编译后是每一个函数会占一个section还是所有的函数都是一个section中,或是某些函数在一个section中,而其它函数又在另一个section中?如果并不是每一个函数占一个section,那么不还是会造成没有使用过的函数也会被编译到flash里的情况吗?


跟 linker script 没关系的,是编译和链接的参数。


只有登录才能回复,可以选择微信账号登录