netmouse-286983 发表于 2014-4-9 23:16:13

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

那片清茶 发表于 2014-4-10 08:45:13

RE:STVD + COSMIC + STM8S_StdPeriph编译后,为啥占用片内很大空间啊!

本来就是这样的。因为它的库对于所有的8S芯片都很用,而且包含了所有的内容。往往我们用不到很多的功能,但是编译器还是会把这些函数编译起来。但是寄存器就不一样,针对性强。所以内存占用不同了。你可以用库的里面在debug里面设置一下,把用不到的函数剔除到编译,这样会节约很多空间。

废鱼 发表于 2014-4-10 10:47:55

RE:STVD + COSMIC + STM8S_StdPeriph编译后,为啥占用片内很大空间啊!

这个可以选择需要的库来添加,不需要的可以先不添加。

netmouse-286983 发表于 2014-4-10 20:30:43

RE:STVD + COSMIC + STM8S_StdPeriph编译后,为啥占用片内很大空间啊!

先谢谢两位的回答。
还是自己解答吧。原来是编译器把所有函数都编译链接导致占用空间较大。在C compiler的Optimizations里选中Split functions。。。。。。。即可,编译链接后会小很多。
:L

feiante-155820 发表于 2014-4-12 23:19:31

RE:STVD + COSMIC + STM8S_StdPeriph编译后,为啥占用片内很大空间啊!

楼主的方法是一个解决方法,同时在工程中,把不用到的功能库不要加到工程中,这样也会小的
页: [1]
查看完整版本: STVD + COSMIC + STM8S_StdPeriph编译后,为啥占用片内很大空间啊!