发新帖我要提问
12
返回列表
打印
[应用相关]

如何确保某一段程序不被优化掉

[复制链接]
楼主: rosemoore
手机看帖
扫描二维码
随时随地手机跟帖
21
ccook11| | 2024-3-12 17:20 | 只看该作者 回帖奖励 |倒序浏览
在Keil项目的Options for Target -> C/C++标签页中,可以设置优化等级。选择等级较低的优化或不进行优化可以减少优化导致代码段消失的可能性。

使用特权

评论回复
22
pixhw| | 2024-3-15 13:59 | 只看该作者
在某些情况下,可以使用宏定义来避免代码被优化。例如,定义一个宏来代替某个小函数,这样即使函数没有被调用,宏也可能因为其他地方的使用而被保留。

使用特权

评论回复
23
ulystronglll| | 2024-3-15 17:08 | 只看该作者
在GCC和一些其他编译器中,可以使用__attribute__((used))属性来防止未使用的函数被优化掉。

使用特权

评论回复
24
hudi008| | 2024-3-15 21:52 | 只看该作者
内联函数往往会被编译器优化,如果你希望保留代码的原样,应该避免使用内联函数。

使用特权

评论回复
25
elsaflower| | 2024-3-16 13:43 | 只看该作者
没有任何外部因素影响循环的执行

使用特权

评论回复
26
vivilyly| | 2024-3-17 09:40 | 只看该作者
如果担心某个函数会被内联优化,可以使用__declspec(noinline)(针对Microsoft编译器)或__attribute__((noinline))(针对GCC编译器)阻止编译器内联该函数。

使用特权

评论回复
27
everyrobin| | 2024-3-17 13:45 | 只看该作者
在Keil中使用C语言编写代码时,可以通过添加关键字volatile来防止编译器优化掉某一段代码。

使用特权

评论回复
28
jackcat| | 2024-3-17 16:54 | 只看该作者
使用__attribute__((optimize(0))): 你还可以使用C语言的__attribute__宏来指定编译器的优化级别。

使用特权

评论回复
29
bestwell| | 2024-3-18 00:50 | 只看该作者
在需要避免优化的代码段前和后分别添加__asm关键字。这个关键字可以告诉编译器在这段代码中不要进行优化。

使用特权

评论回复
30
小夏天的大西瓜| | 2024-3-18 17:51 | 只看该作者
使用mdk编程,假如有一个有用的函数你定义了但是没有显式的调用,mdk在默认方式下,将会把这个函数从整个程序总删除掉,以节省ROM.

使用特权

评论回复
31
LinkMe| | 2024-3-20 12:15 | 只看该作者
Volatile只适用于变量优化

使用特权

评论回复
32
芯路例程| | 2024-3-20 14:57 | 只看该作者
Inline functions are often optimized by compilers, so if you want to keep the code as it is, you should avoid using inline functions。

使用特权

评论回复
33
zerorobert| | 2024-3-23 13:39 | 只看该作者
过度禁止优化可能会降低程序整体的运行效率,所以在确保关键代码不被优化的同时,应尽量保持整体优化策略的合理性。

使用特权

评论回复
34
cashrwood| | 2024-3-23 20:51 | 只看该作者
可以使用#pragma optimize指令来控制编译器的优化等级。

使用特权

评论回复
35
elsaflower| | 2024-3-24 12:54 | 只看该作者
过度禁用优化可能会增加代码的大小和执行时间,所以应该谨慎使用这些策略,并确保它们不会对你的应用程序产生负面影响。

使用特权

评论回复
36
bestwell| | 2024-3-24 16:38 | 只看该作者
可以通过在代码中添加特定的编译器指令来实现。

使用特权

评论回复
37
szt1993| | 2024-3-25 10:55 | 只看该作者
这个是不是跟软件版本的选择有关系?

使用特权

评论回复
38
AIsignel| | 2024-3-28 11:54 | 只看该作者
While compiler optimizations can improve program performance, in some cases you may need to keep your code in its original form for easier understanding and debugging。

使用特权

评论回复
39
初级工程渣| | 2024-8-31 21:03 | 只看该作者
设置正确的串口参数

使用特权

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

本版积分规则