当前位置:首页 > 技术心得 > 正文内容

Keil优化及如何设置某段代码不优化

xjtudll9年前 (2017-02-02)技术心得59230

Keil默认会对代码进行优化的,如图所示:

clip_image001

一般情况缺省编译优化设置被设定为8级优化,实际最高可设定为9级优化。

1、Dead code elimination

2、Data overlaying

3、Peephole optimization

4、Register variables

5、Common subexpression elimination

6、Loop rotation

7、Extended Index Access Optimizing

8、Reuse Common Entry Code

9、Common Block Subroutines

如何设定不优化或改变某个文件的优化设置

1、针对某个文件

(1) 右键->Option for File XXXX

clip_image002

(2) 切换到【C51】选项卡

default表示与工程设置一致

clip_image003

2、针对某段代码(局部优化)

#pragma OPTIMIZE(x)  x就是你希望的优化级别

举例如下:

#pragma OPTIMIZE(6)

void FunA()

{

}

......

......

#pragma OPTIMIZE(9)

void FunB()

{

}

上面的意思就是说,在void FunA()到void FunB()之前的所有函数,包括FunA在内,都采用6级的优化,而从FunB开始直到之后,只要没碰上#pragma OPTIMIZE,都采用9级优化了。

OPTIMIZE还可以多一个参数,就是speed和size,

用法: #pragma OPTIMIZE(9,speed)或#pragma OPTIMIZE(5,size)

对应的就是9级优化,以速度为主,或5级优化,以空间最小为主。

参考资料:

http://www.cnblogs.com/xidongs/p/5772290.html

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/438/

标签: keil
分享给朋友:

“Keil优化及如何设置某段代码不优化” 的相关文章

IOS获取应用程序的名称和版本号

应用程序的名称和版本号等信息都保存在mainBundle的一个字典中,用下面代码可以取出来。 NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary]; NSString* versionNum =[infoDict object...

SQL累减语句

https://bbs.csdn.net/topics/70362619 表一 Item Qty A 10 A 12 A 14 B 13 B 60 C 30 C 40 C 10 表二 Item Qty A...

如何释放由RingtoneManage实例化的MediaPlayer

参考资料:http://stackoverflow.com/questions/15450255/how-to-release-the-mediaplayer-instantiated-by-ringtonemanager 为了获取android铃声的名称,使用了以下代码 //根据铃声地址获取铃声的...

mircrosoft project2010怎么设置任务级别,降级

mircrosoft project2010怎么设置任务级别,降级

参考资料: http://zhidao.baidu.com/link?url=hW3eTVmKLi2WzQM_jTfsCb2btmRnrmixR8tfFfiRn1YTtM6ylBBXMsnQHpEAUefawNdg-bTiFeXh9Of-U47Mma 两个方法: 1、任务菜单---计划列表---那两...

Proteus电源设置

Proteus电源设置

Proteus中,默认电源为VCC=5V,GND=0,当我们要使用其它电压值时该怎么办?例如3.3V,-5V,15V等等,没关系,有专门的菜单可以设置,跟我学:菜单: 新增加: 注意Name可以随意和Voltage值才是电压值 比如系统默认VEE=-5V ...

一些奇葩问题

1、排针居然有电阻 问题描述: 排针的不同PIN之间用万用表测量居然是有电阻的 原因: 排针质量有问题,老化   2、按键 问题描述: 导通电阻不是0,200欧姆~2k欧姆不等 原因: 按键老化 这种有导通电阻的,对于独立式按键来说影响不大,对于AD键盘而言,影响将很明显,很有可能导致误判...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。