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

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

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

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

Proteus7.10SP0安装&和谐包下载

dxswp 这位仁兄出手太快了,网上Proteus7.10安装包刚出来,ta就和谐了。NB人士。赞一个。 安装文件 http://115.com/file/be4tmeh4#  基于Nemo78  7.10 sp0 crack 修改。 中文系统可用,...

RFID原理通俗讲解

最近,公司有项目用到了RFID,对RFID原理一直不甚了解。网上看到一篇好文,共享之。 原文网址:http://blog.21ic.com/user1/914/archives/2012/89510.html 以13.56MHz的RFID技术为例,分为读卡器和卡。读卡器是跟电源接的,当卡靠近读...

Altium打印设置

Altium打印设置

Altium Designer打印有两种方法,一种是利用打印机或者虚拟打印机,将原理图或PCB打印出来;一种是利用其自带的Smart PDF功能将原理图或PCB打印成PDF文档。本文旨在讲述这两种方法。 一、利用打印机打印 首先,设置文档的打印信息。【File】->【Page Setup】...

SQL Server 树形递归查询

SQL Server 树形递归查询

原始查询 原始表格查询: select * from dbo.T_DeptInfo; 原始表格查询结果:: 递归查询 递归查询结果 带缩进的的树形递归查询 缩进递归查询结果 查询是否子节点的树形递归查询 树形递归查询是否包含子节点的查询结果...

VSPD + Keil 实现串口的仿真调试

VSPD + Keil 实现串口的仿真调试

VSPD顾名思义就是在本本上虚拟串口,实际上这个软件做的就是虚拟出一对已经互联的串口。 上面就是虚拟出来了com3和com4,而且已经交叉(默认)连接了,这样相当于本本的com3、com4在外面已经连好了,下面要做的就是在内部分别赋予com3和com4所属终端了。 com4—&mda...

CrystalDecisions.Windows.Forms.CrystalReportViewer.DisplayGroupTree”已过时

问题:早期工程升级到VS2010 提示: CrystalDecisions.Windows.Forms.CrystalReportViewer.DisplayGroupTree”已过时 解决办法: this.crystalReportViewer1.DisplayGroupTree =...

发表评论

访客

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