前天的时候,不小心将STM8L152C6写满了,无奈只好开启了Maximize execution speed这个默认的优化选项,以下简称speed。
开启Speed后,观察还占用了超过30000+字节的flash空间,在对程序结构进行优化,并且合并类似的操作为一个函数后,压缩到
了29139字节的大小。随后,在注释掉一个无用函数后发现,占用空间变小,也就是说speed模式不会删除无用函数!!!
另外在仿真的时候,发现speed模式已经会自动的将一些想同的C语句段落合并到一起了。
接着再记录了Minimize code size(+compact)和Split Function in Separate Sections(+split)这两个在以前注意到的比较强力的编译选项后,结果
如下:
优化选项
| 前天(字节)
| 今天(字节)
| 增加(字节)
| Speed
| 29139
| 30068
| 929
| Split
| 25713
| 29688
| 3975
| Compact
| 25538
| 27148
| 1610
| Split+ Compact
| -
| 26827
| -
| 在今天早上之前的时候我都还认为,只要用Split模式完成项目是没有问题的,结果今天给坑了- -!
speed模式才增加了929字节,Split模式居然增加了3975!!!
项目还要增加10分之一左右的功能,代码量大概就是5 6KB左右吧,
表格中前三个优化选项暂时没有发现有什么BUG,看网友们说COSMIC在深度优化的时候会有莫名其妙的BUG,
所以我对Compact甚至Split+ Compact带有一点点的畏惧。
大家说下,自己用这些优化的时候是不是真的遇到过BUG啊,真有BUG的话我也只能再申请买STM8L151C8了,估计会被上司狠狠的BS一番了- -!
|