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

Keil优化及如何设置某段代码不优化,第1张

Keil默认会对代码进行优化的

一般情况缺省编译优化设置被设定为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

(2) 切换到【C51】选项卡

default表示与工程设置一致

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级优化,以空间最小为主。

Keil烧录程序慢的原因可能有很多,例如:1.烧录器的性能不够强;2.烧录程序的复杂度较高;3.烧录程序的代码量较大;4.烧录程序的编译速度较慢;5.烧录程序的编程模式不当;6.烧录程序的烧录时间较长;7.烧录程序的烧录环境不当;8.烧旦尺盯录程序的烧录次数较多;9.烧录程序的烧录条件不当;10.烧录程序的烧录参数不当等等。为了解决Keil烧录程序慢的问题,您可以尝试以下方法:1.更换更高性能的烧录器;2.精简烧录程序的代码量;3.优化烧录程序的编译速度;4.合理设置烧录程序的编程模式;5.缩困郑短烧录程序的烧录时间;6.优化烧录程序模和的烧录环境;7.减少烧录程序的烧录次数;8.合理设置烧录程序的烧录参数等等。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12387884.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存