打印
[STM32C0]

大家都是怎么选择合适的编译器优化等级啊?

[复制链接]
楼主: 班杰明
手机看帖
扫描二维码
随时随地手机跟帖
41
abotomson| | 2024-10-23 19:55 | 只看该作者 回帖奖励 |倒序浏览
如果对代码大小有严格要求,编译器优化可以帮助减少最终代码的大小。

使用特权

评论回复
42
fengm| | 2024-10-23 20:59 | 只看该作者
较高的优化等级(如-O2或-O3)可能会对代码进行较多的优化和重排,这虽然能提高运行效率,但也可能使得调试变得更加困难。

使用特权

评论回复
43
mnynt121| | 2024-10-23 21:29 | 只看该作者
如果应用对性能有较高要求,且代码调试已经完成,可以选择较高的优化等级(如-O2或-O3)。
这将有助于提高代码的执行速度,但可能牺牲一定的调试便利性。

使用特权

评论回复
44
uptown| | 2024-10-23 21:55 | 只看该作者
等级优化可能会使得变量值和代码执行流程与源代码不一致

使用特权

评论回复
45
maqianqu| | 2024-10-25 09:19 | 只看该作者
优先优化代码大小,生成的代码较小。

使用特权

评论回复
46
chenci2013| | 2024-10-25 09:58 | 只看该作者
选择STM32的编译器优化等级是一个需要综合考虑多个因素的过程。通过了解优化等级的基本特点、根据应用场景选择优化等级、考虑编译器和工具链的兼容性以及进行实际测试和验证,可以找到最适合当前应用的优化等级。

使用特权

评论回复
47
ulystronglll| | 2024-10-25 10:24 | 只看该作者
对于代码大小不是特别敏感的应用,可以选择较低的优化等级(如-O1),以保持较好的调试体验。

使用特权

评论回复
48
vivilyly| | 2024-10-25 11:10 | 只看该作者
如果你的代码量较大,接近STM32芯片的闪存极限,可以选择较高的优化等级(如-O2或-O3),因为这些等级通常能生成更小的代码。

使用特权

评论回复
49
biechedan| | 2024-10-25 14:26 | 只看该作者
高级优化可能会使生成的汇编代码难以理解和维护。

使用特权

评论回复
50
公羊子丹| | 2025-1-25 08:39 | 只看该作者
我一般调试的时候用O0优化,保证代码逻辑清晰;发布时才会考虑用更高的优化等级,比如O2或者Os。

使用特权

评论回复
51
周半梅| | 2025-1-25 08:40 | 只看该作者
优化等级高的时候,编译器可能会重排代码,你可以加volatile关键字保护关键变量,避免出问题。

使用特权

评论回复
52
帛灿灿| | 2025-1-25 08:42 | 只看该作者
O1是个折中选项,优化不太激进,运行效率也比O0好,调试起来还能看得懂。

使用特权

评论回复
53
童雨竹| | 2025-1-25 08:43 | 只看该作者
如果是时间关键的部分,比如中断服务程序,可以用#pragma指定单独的优化等级,其他部分再用高优化。

使用特权

评论回复
54
万图| | 2025-1-25 08:44 | 只看该作者
O3优化等级确实容易“失控”,如果逻辑不对,就很可能是编译器为了优化省略了某些操作。

使用特权

评论回复
55
Wordsworth| | 2025-1-25 08:46 | 只看该作者
其实Os也挺好用的,它主要针对代码大小优化,性能和可调试性一般还能兼顾。

使用特权

评论回复
56
Bblythe| | 2025-1-25 08:47 | 只看该作者
如果高优化等级不按逻辑运行,检查一下是不是用了未初始化变量或者代码写法有歧义。

使用特权

评论回复
57
Pulitzer| | 2025-1-25 08:48 | 只看该作者
对于STM32C0这种资源有限的MCU,优化代码大小(Os)可能比优化性能更重要,节省点Flash和RAM嘛。

使用特权

评论回复
58
Uriah| | 2025-1-25 08:49 | 只看该作者
如果实在担心高优化等级影响逻辑,可以多用单元测试,确保代码在各种优化下都跑得对。

使用特权

评论回复
59
Clyde011| | 2025-1-25 08:50 | 只看该作者
最好结合实际需求选择,开发调试用O0或者O1,最终固件可以试试Os或者O2平衡性能和大小。

使用特权

评论回复
60
PreWorld| | 2025-1-26 23:57 | 只看该作者
较低的优化级别(例如-o1)通常会提供更好的调试体验,因为它们生成的代码与源代码更加一致。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则