一、全局优化

- 无优化 Level 0 (-O0):是编译器的默认级别。关闭大多数优化,除了一些简单的源代码转换。使用-O0可以加快编译和构建时间,但生成的代码比其他优化级别更慢。代码大小和栈使用也显著增加。
- 优化等级 Level 1 (-O1):受限制的优化。这个优化级别提供了比-O0更好的代码质量和良好的调试体验。栈的使用也比-O0有所改进。为了获得良好的调试体验,Arm官方推荐使用这个选项。
- 优化等级Level 2 (-O2):高优化方式。对debug将产生一定的影响。
- 优化等级Level (-O3):最大的优化。这个选项通常非常不利于debug。
- 优化等级(-Ofast):启用所有来自-O3的优化,以及其他可能违反严格遵守语言标准的激进优化,包括- fast-math。
- 优化等级 (-Os):平衡代码执行效率与体积。

我们在设置的时候只需要在左侧工程栏里面的文件夹上点击右键,在弹出的菜单上面选择options for Group选项即可。

三、函数级优化
__attribute__((optimize("O0"))) static void delay_ms(uint32_t ms)
{
// ...
}Keil环境下的三种常用的优化方式,您平时如何使用呢?
我要赚赏金
