STVD + COSMIC + STM8S_StdPeriph编译后,为啥占用片内很大空间啊!
如题,例子在附件里。使用ST固件库占用空间Program Size: Code=3303 Eeprom=0 ZeroPage=14 Ram=0
把固件库的寄存器揪出来后占用空间Program Size: Code=406 Eeprom=0 ZeroPage=10 Ram=0
相差近乎10倍了!不知道是我哪里设置不对,还是别的问题?
STVD ver4.35
COSMIC ver4.3.4:
STM8S_StdPeriph ver2.1.0
RE:STVD + COSMIC + STM8S_StdPeriph编译后,为啥占用片内很大空间啊!
本来就是这样的。因为它的库对于所有的8S芯片都很用,而且包含了所有的内容。往往我们用不到很多的功能,但是编译器还是会把这些函数编译起来。但是寄存器就不一样,针对性强。所以内存占用不同了。你可以用库的里面在debug里面设置一下,把用不到的函数剔除到编译,这样会节约很多空间。RE:STVD + COSMIC + STM8S_StdPeriph编译后,为啥占用片内很大空间啊!
这个可以选择需要的库来添加,不需要的可以先不添加。RE:STVD + COSMIC + STM8S_StdPeriph编译后,为啥占用片内很大空间啊!
先谢谢两位的回答。还是自己解答吧。原来是编译器把所有函数都编译链接导致占用空间较大。在C compiler的Optimizations里选中Split functions。。。。。。。即可,编译链接后会小很多。
:L
RE:STVD + COSMIC + STM8S_StdPeriph编译后,为啥占用片内很大空间啊!
楼主的方法是一个解决方法,同时在工程中,把不用到的功能库不要加到工程中,这样也会小的
页:
[1]