您的位置 首页 设计

Keil c 优化选项

优化级别说明(仅供参考):则其中的CodeOptimization栏就是用来设置C51的优化级别。共有9个优化级别(书上这么写的),高优化级别

优化等级阐明(仅供参考):
则其间的 Code Optimization 栏便是用来设置C51的优化等级。共有9个优化等级(书上这么写的),高优化等级中包含了前面一切的优化等级。现将各个等级阐明如下:

0级优化:
1、 常数折叠:只需有或许,编译器就执即将表达式化为常数数字的核算,其间包含运转地址的核算。
2、 简略拜访优化:对8051体系的内部数据和位地址进行拜访优化。
3、 跳转优化:编译器总是将跳转延至最终目标上,因而跳转到跳转之间的指令被删去。
1级优化:
1、 死码消除:无用的代码段被消除。
2、 跳转否决:依据一个测验回溯,条件跳转被仔细检查,以决议是否可以简化或删去。
2级优化:
1、 数据掩盖:适于静态掩盖的数据和位段被辨别并符号出来。衔接定位器BL51经过对大局数据流的剖析,挑选可静态掩盖的段。
3级优化:
1、“窥孔”优化:将冗余的MOV指令去掉,包含不必要的从存储器装入目标及装入常数的操作。别的假如能节约存储空间或许程序履行时间,杂乱操作将由简略操作所替代。
4级优化:
1、 寄存器变量:使主动变量和函数参数尽或许坐落作业寄存器中,只需有或许,将不为这些变量保存数据存储器空间。
2、扩展拜访优化:来自IDATA、XDATA、PDATA和CODE区域的变量直接包含在操作之中,因而大多数时分没有必要将其装入中心寄存器。
3、部分公共子式消除:假如表达式中有一个重复履行的核算,第一次核算的成果被保存,只需有或许,将被用作后续的核算,因而可从代码中消除冗杂的核算。
4、 CASE/SWITCH句子优化:将CASE/SWITCH句子作为跳转表或跳转串优化。
5级优化:
1、 大局公共子式消除:只需有或许,函数内部相同的子表达式只核算一次。中心成果存入一个寄存器以替代新的核算。
2、 简略循环优化:以常量占有一段内存的循环再运转时被优化。
6级优化:
1、 回路循环:假如程序代码能更快更有效地履行,程序回路将进行循环。
7级优化:
1、 扩展进口优化:在适合时对寄存器变量运用DPTR数据指针,指针和数组拜访被优化以减小程序代码和进步履行速度。
8级优化:
1、 公共尾部兼并:对同一个函数有多处调用时,一些设置代码可被重复运用,然后减小程序代码长度。
9级优化:
1、 公共子程序块:检测重复运用的指令序列,并将它们转换为子程序。C51甚至会重新安排代码以取得更多的重复运用指令序列。
当然,优化等级并非越高越好,应该依据具体要求恰当挑选。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/sheji/317535.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部