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

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

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

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

Keil C51过滤0xfd字符的bug(某些汉字无法正常显示)

Keil C51过滤0xfd字符的bug(某些汉字无法正常显示)

keil c51在编译的时候会将0xfd的字符(有些汉字含该字符的内码)过滤, 而导致程序出错。 所以在做液晶汉字显示时. 有些汉字根本没法显示出来,例如“三”。 这个bug已经很多年了,不知道为什么keil一直不修正。 针对这个bug,某网友制作了补丁。 补丁使用办法,将补...

XP 安装IIS步骤

XP 安装IIS步骤

第一步:在网上下载IIS5.1安装包。第二步:进入控制面板-添加/删除程序-添加删除Windows组件-在Internet信息服务上画对勾。这里还有很重要的一步设置 ,否则总是会出现找不到文件!进windows组件后,选附件和工具(详细信息),游戏(详细信息),去掉internet游戏前面的勾。第三...

金蝶K3中用户组和用户的权限导入导出

金蝶K3中用户组和用户的权限导入导出

帐套管理-帐套-用户引入引出...

ZBlog 1.8 ASP转PHP

ZBlog 1.8 ASP转PHP

ZBlog 1.8 ASP转PHP版本过程第一步:将ZBlog升级到2.x版本,因为只有2.x才支持【ZBlog PHP转换工具】需要注意的是:官方下载最新的ASP版本里面没有zb_update18to20这个文件夹,需要从GitHub(https://github.com/zblogcn/zblo...

Android Studio:Your project path contains non-ASCII characters

Android Studio:Your project path contains non-ASCII characters

参考资料: http://stackoverflow.com/questions/32171968/your-project-path-contains-non-ascii-characters-android-studio 问题: Android Studio编译工程时,提示: Error:(1...

Can't place multiple pins assigned to pin location Pin_101

Can't place multiple pins assigned to pin location Pin_101

错误:Error (176310): Can't place multiple pins assigned to pin location Pin_101 (IOPAD_X34_Y18_N21)     Info (176311): Pin addr[8] is as...

发表评论

访客

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