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

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

xjtudll10年前 (2017-02-02)技术心得64870

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优化及如何设置某段代码不优化” 的相关文章

远程连接:发生身份验证错误 要求的函数不受支持

远程连接:发生身份验证错误 要求的函数不受支持

问题: 远程连接失败,提示:发生身份验证错误 要求的函数不受支持 操作系统: Win7 64bit 原因:打了系统补丁,权限被限制了,需要修改客户端电脑相关权限。 解决过程如下: 双击“加密Oracle修正“ 然后重新打开远程登录客户端就可以登录了。...

二极管电容效应

二极管电容效应

二极管具有电容效应。它的电容包括势垒电容CB和扩散电容CD。 半导体二极管等效模型 1、势垒电容CB PN结内缺少导电的载流子,其电导率很低,相当于介质;而PN结两侧的 P区、N区的电导率高,相当于金属导体。从这一结构来看,PN结等效于一个电容器。 事实上,当PN结两端加正向电压时,PN...

C#实现重启应用程序

推荐使用: Application.Restart();...

多字节乘法--汇编实现原理

       乘法的本质是加法,乘法是加法的简便运算。但是如果纯粹用加法,加的次数太多,例如,358*24,即使用358作加法,也要24次。多字节乘法与珠算的“空盘前乘法”类似,是手工算法的变种。   &n...

如何减小Multisim仿真文件大小

如何减小Multisim仿真文件大小

Multisim默认是保存仿真数据的,所以一旦仿真过,文件将会变得很大,几百kB是非常容易就达到了。这个异常不爽。 进行如下设置后,就只保存电路图了。 第一步: 第二步: 只要不勾选“保存仿真数据和仪器”即可。 另外还可以设置是否自动备份等等,看个人所好了。...

sqlserver数据库触发器调用外部exe

sqlserver数据库触发器调用外部exe

https://www.cnblogs.com/syp1Blog/p/9482088.html sqlserver数据库触发器调用外部exe,同事可以选择参入参数! sqlserver使用 master..xp_cmdshell 进行外部exe的执行。 使用master..xp_cmdshell 之...

发表评论

访客

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