MDK-ARM各种优化选项详细说明、实际应用及拓展内容
1总述
我们所指的优化,主要两方面:
代码大小(Size)
代码性能(运行时间)
2优化选项说明
本节详细讲述优化相关选项,同时,编译器选择AC5和AC6时有差异,下面也会针对AC5和6分别讲述。
函数跨模块内联
删除未引用的变量和函数
通过重新排列变量优化内存访问
在可能的情况下重用内存
4.Execute-only Code:生成只执行的代码
C、Thumb代码
基于Cortex-M3、M4的处理器
编译器5.04以上
3如何优化?
本节讲述三种编译优化,使其达到最优(代码最小、性能最好)
代码大小
代码性能(速度)
代码平衡(大小和速度)
Use MicroLIB
Use Cross-module optimization
Optimization:level 2 (-O2)
Use MicroLIB
Optimization:-Oz image size
Use Cross-module optimization
Optimization:level 3 (-O3)
Optimize for Time
Optimization:-Ofast
Link-Time Optimization
Use Cross-module optimization
Optimization:level 3 (-O3)
Optimize for Time
Optimization:-Os balanced
Link-Time Optimization
4拓展说明
MDK-ARM的优化功能需要结合项目实际情况进行优化。对一些项目能起到很大帮助作用,但优化之后也可能带来一些影响。
1.使用高度优化(-O1以上),可能会影响Debug调试(因为优化之后,编译输出和实际代码不匹配)。
2.指定源文件/文件组优化
有些代码不需要优化,我们优化指定的源文件/文件组就行。
5最后
我的知乎:strongerHuang
我的网站:www.strongerhuang.com
若觉得文章对你有帮助,随手点赞、分享,也是对我的支持和鼓励。
关注公众号『strongerHuang』,在底部菜单中查看更多精彩内容!
长按识别图中二维码关注