[技术问题解答] codeworrior 如何使用局部优化

[复制链接]
1593|4
 楼主| peihua12344 发表于 2015-4-1 16:32 | 显示全部楼层 |阅读模式
Codewarrior , 使用的是KL16Z64 , 工程全局使用O1优化级别,我想在某一函数前或者文件开头调用局部的优化代码如下,
#pragma GCC push_options
#pragma GCC optimize ("O0")    //可选O0(不优化), O1, O2, O3, O4
//insert my code here
#pragma GCC pop_options

来进行局部不优化的功能
但是行不通· 代码仍然被优化。请各位前辈指教,或者有没有其他的办法,达到同样的效果·
FSL_TICS_ZJJ 发表于 2015-4-1 17:15 | 显示全部楼层

楼主,#pragma GCC pop_options这个是报警,所以你用给下面的:
#pragma GCC push_options
#pragma GCC optimize ("O0")  
//insert my code here

#pragma GCC reset_options


 楼主| peihua12344 发表于 2015-4-1 17:57 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-4-1 17:15
楼主,#pragma GCC pop_options这个是报警,所以你用给下面的:
#pragma GCC push_options
#pragma GCC op ...

能否解释一下这几句代码的意思·?
还发现一个问题,按照理论,如果全局进行优化,工程大小是9点几KB,然后再使用以上三句代码,工程大小应该是大于9点几KB,因为我是放在整个.C文件的开头和结尾。事实上编译之后反而是8.几 KB 。呵呵··· 有点不理解的· :lol
FSL_TICS_ZJJ 发表于 2015-4-2 10:08 | 显示全部楼层
peihua12344 发表于 2015-4-1 17:57
能否解释一下这几句代码的意思·?
还发现一个问题,按照理论,如果全局进行优化,工程大小是9点几KB,然 ...

这个代码在CW根目录的文档中有讲:
C:\Freescale\CW MCU v10.6\MCU\Help\PDF
MCU_Kinetis_GCC.pdf
Table 5-3. Equivalent Pragmas
我觉得优化,你需要查看他的汇编,比如你搞一小段,看看不优化和优化,这段同样的C代码对应的汇编有什么区别。
FSL_TICS_ZJJ 发表于 2015-5-13 15:05 | 显示全部楼层
   非常感谢你关于IDE的技术问题。如果你没有其他问题,我们将此帖默认为已解决.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

36

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部