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

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

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

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

eclipse:android R.java文件丢失或无法更新

eclipse:android R.java文件丢失或无法更新

http://www.cnblogs.com/zdz8207/archive/2012/11/30/eclipse-android-adt-update.html 问题: eclipse编译android工程,发现R.java无法更新 解决办法: 1、先确定SDK没问题,就是说工程设置里用的SDK,...

气压传感器选型指南

气压传感器选型指南

文章来源:传感器视角 详细出处:http://blog.21ic.com/user1/6459/archives/2010/68599.html 在我给客户做技术的工作当中,经常遇到客户问到这样的问题,"目前市场上气压传感器都各有什么优势?""我们应该如何去选型?&...

金蝶 如何实现BOS单据下推下游单据后,不能将上游BOS单据反审核

金蝶 如何实现BOS单据下推下游单据后,不能将上游BOS单据反审核

【操作步骤】 1、使用系统管理员或者管理员组用户登陆K/3主控台,依次点击左上角【系统】→【K/3BOS】,使用有权限的用户登陆系统,进入【系统视图】界面,找到对应BOS单据发布的模块,双击进入单据界面; 2、进入上游自定义BOS单据的BOS 设计界面,单击菜单栏【编辑】→【操作...

因为数据库正在使用,所以无法获得对数据库的独占访问权

还原或删除sql server 2008数据库时,经常烩出现: “因为数据库正在使用,所以无法获得对数据库的独占访问权”,终解决方案如下 关键SQL语句: use master ALTER DATABASE [datebase] SET OFFLINE WITH ROLLB...

静电实验平台的搭建及要求

静电实验平台的搭建及要求

Test setup 1、Cables: 2m, with 470KΩ * 2 ---EUT and Metal HCP (Horizontal Coupling Plate); ---HCP and Metal Plate connected to the ground 2、Insu...

Qt打包发布程序

Qt打包发布程序

Qt发布程序有两种方式,静态编译和动态编译。静态编译操作繁琐,东拉西扯要N长时间,所以我选择的是动态发布,动态发布有个缺点,就是要附加多个dll文件,传输极为不便,如果能搞成单文件就比较爽了。 本文就是讲述如何将多个文件打包成一个exe文件。 当然,你首先要将Qt编译设置成Release模式,将Re...

发表评论

访客

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