首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

STM32 ST的库的代码优化

STM32 ST的库的代码优化

使用了ST的库,感觉体积有点大,点亮个 LED 使用了  2.5K flash 了。

一个简单的瘦身办法,也就是,将不使用的函数剔除,不连接进去最终的烧写文件,有用的函数连接进去,没用的函数不要。

只需要2步

设置项目属性
1,在 Linker 页的 Misc contrrols 那里添加  --remove
作用是将不使用的输入段(input sections)移除。

--remove 这个参数是Keil 默认已经开启的,所以加不加都一样 , Etual  2012-6-29 修改

2,单加上面那个是没有效果的,因为一个文件作为一个输入段的话就没效果了。
所以下面的操作是将每个函数作为一个输入段,这就可以优化了。方法是
在 C/C++ 页勾选 “One ELF Section per Function”  就可以了
优化我一般选 -02

重新编译,原来 2.5K 的程序,现在变成 1.2K 了 ......


最近做了个基于STM32的项目,原来代码没有任何的编译器优化,正好拿来实际测试下~
没有任何优化:code 16640(刚过16K一点点,为了这一点点就要换成32K的,不值得,必须优化!)
仅勾选:code 11680
勾选 + 优化-02:code 9472
勾选 + 优化-03:code 9392
仅优化-02:code 13372
仅优化-03:code 13296

通过以上测试发现,仅仅是提高优化级别,效果不是很明显,或者说不令人满意,勾选 后,效果非常好,应该是应用ST官方库进行开发来减少代码的优选考虑,不错,学习了,呵呵

当然优化过程中会出现程序问题,。主要是一些变量的定义上,所以有些优化要慎重。
返回列表