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

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

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

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://www.xjtudll.cn/Exp/438/

标签: keil
分享给朋友:

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

模数转换器的分类

直接ADC是将输入模拟电压直接转换成数字量,如并联比较型ADC和逐次比较型ADC; 间接ADC是先将输入模拟电压转换成时间或频率,然后再把这些中间量转换成数字量,如双积分型ADC。 并联比较型ADC 优点:采用各量级同时并行比较,各位输出码同时并行产生,因此转换速度快,转换速度与输出码位数无关...

提交到app store时,提示ERROR ITMS-90478 ,ERROR ITMS-90062错误

提交到app store时,提示ERROR ITMS-90478 ,ERROR ITMS-90062错误

ios app提交到AppStore时,提示ERROR ITMS-90478 ,ERROR ITMS-90062,如下图所示: 看字面意思,应该是我提交的版本比之前上架的版本要低。 但是,之前的版本是V1.03,现在是V1.1.0。好像版本要高,并没有低。 然而,到AppStore构建版本那里查看...

太阳能板发电原理

太阳表面温度高达摄氏6000度,内部不断进行核聚变反应,并且以辐射方式向宇宙空间发射出巨大能量。人类有三个途径利用太阳能:光热转换、光电转换及光化转换。 光热转换即靠集热器把太阳能收集,可应用于将水加热,或在寒带地区的冬季,设计太阳能暖房让人抵抗低温。太阳能暖房系统由太阳能收集器、热储存装置、...

将rdlc报表作为资源嵌套使用

将rdlc报表作为资源嵌套使用

参考资料: 2. 如何将嵌入的资源读取出来,作为报表查看器控件的来源呢? 也就是说,我们可以通过LocalReport的一个特殊属性(ReportEmbeddedResource)来很方便地实现该需求 实际上路径一般默认是类名+文件夹名 我的程序包名是XonixERP.View,然后又有三层文...

Virtual Box Android X86安装:please check you have enough free disk space to install androd x86

原因:下载的iso有问题,换一个iso吧。 当然,前提是你分配的空间确实是足够的,默认8GB肯定是足够的。 我分配了8GB空间,在写入的时候,却提示: Installation failed:please check you have enough free disk space to...

TM87系列单片机使用及注意事项

TM87系列单片机使用及注意事项

一、宏的使用 1、.define 可使用在任意地方,但.EQU只能在RAM区和常数区使用。 2、宏调用时,前面必须有空格。否则提示:DUPLICATE LABEL。如图所示。   二、LCD的使用 1、首先,Mask Option里面,LCD要是启用的。不然折腾半天也是瞎折腾。设置Mas...

发表评论

访客

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