打印
[工具下载]

keil代码被优化的问题总结

[复制链接]
楼主: zerorobert
手机看帖
扫描二维码
随时随地手机跟帖
21
robincotton| | 2024-8-18 17:43 | 只看该作者 回帖奖励 |倒序浏览
编译器在优化过程中可能会产生一些警告和错误,这些警告和错误往往指出了潜在的问题。

使用特权

评论回复
22
louliana| | 2024-8-18 22:53 | 只看该作者
当变量可能被程序以外的因素改变时(如硬件中断、多线程环境等),应该将其声明为volatile,以防止编译器对该变量的读写进行优化。

使用特权

评论回复
23
yangxiaor520| | 2024-8-19 07:52 | 只看该作者
一般不建议修改优化等级,除非对你的代码特别了解

使用特权

评论回复
24
fengm| | 2024-8-19 10:57 | 只看该作者
注意优化是否导致指针的错误使用或内存访问越界。

使用特权

评论回复
25
geraldbetty| | 2024-8-19 14:05 | 只看该作者
编译器可能会优化掉未使用的变量或表达式,或者将它们移动到循环外。

使用特权

评论回复
26
gygp| | 2024-8-19 18:10 | 只看该作者
O0 (No Optimization):禁用所有优化。
O1 (Small):进行基本的优化,保持可读性的同时提升性能。
O2 (Large):进行更多的优化,可能会牺牲代码的可读性和调试能力。
O3 (Huge):进行最大程度的优化,可能会影响调试功能。

使用特权

评论回复
27
fengm| | 2024-8-19 21:15 | 只看该作者
随着优化等级的提升,编译时间会相应增长。这是因为编译器需要进行更多的分析和优化处理。在项目开发初期或频繁调试的阶段,这一点尤其需要注意。

使用特权

评论回复
28
jackcat| | 2024-8-20 09:19 | 只看该作者
仔细检查优化是否影响了对边界情况和异常的处理。一些优化可能会简化或省略对罕见但关键的错误情况的处理。

使用特权

评论回复
29
wwppd| | 2024-8-20 10:58 | 只看该作者
编译器优化可能会暴露出潜在的问题,表现为编译器警告。

使用特权

评论回复
30
iyoum| | 2024-8-20 15:44 | 只看该作者
编译器可能会重新排序代码以提高性能,这可能会影响依赖于代码执行顺序的逻辑。确保关键部分的代码顺序不被改变,必要时使用内存屏障或其他同步机制。

使用特权

评论回复
31
houjiakai| | 2024-8-20 19:05 | 只看该作者
编译器可能会改变变量的存储位置以优化访问速度。这可能会导致指针失效或数组越界等问题。

使用特权

评论回复
32
minzisc| | 2024-8-20 22:47 | 只看该作者
高度优化的代码(尤其是使用-O2和-O3等级)可能会让源代码和生成的汇编代码之间的映射变得复杂,这使得断点定位和变量观察变得更加困难。

使用特权

评论回复
33
yangxiaor520| | 2024-8-21 08:06 | 只看该作者
一般情况下不轻易去改变优化等级

使用特权

评论回复
34
1988020566| | 2024-8-21 10:39 | 只看该作者
优化可能会影响程序的执行时序,导致与硬件或其他软件的交互出现问题。

使用特权

评论回复
35
janewood| | 2024-8-21 19:01 | 只看该作者
可能会改变代码的执行路径和逻辑,导致程序行为不符合预期。例如,某些优化可能会删除看似无用的代码,但实际上这些代码在特定情况下是有用的。

使用特权

评论回复
36
houjiakai| | 2024-8-21 20:43 | 只看该作者
高优化级别可能会改变代码的执行流程,例如通过内联函数、循环展开等方式。这可能会导致原本正确的代码在优化后出现问题。

使用特权

评论回复
37
sesefadou| | 2024-8-21 22:21 | 只看该作者
编译器优化可能会利用未定义行为来生成更高效的代码,但这可能会导致意料之外的结果。

使用特权

评论回复
38
gygp| | 2024-8-22 07:42 | 只看该作者
尽管优化可以提高性能,但过度优化可能会牺牲代码的可读性和维护性。

使用特权

评论回复
39
uiint| | 2024-8-22 09:23 | 只看该作者
volatile关键字告诉编译器不要对变量进行优化,这对于中断服务程序和其他需要频繁访问的变量来说非常重要。

使用特权

评论回复
40
mikewalpole| | 2024-8-22 10:38 | 只看该作者
优化存储器访问模式,以提高效率。

使用特权

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

本版积分规则