单片机编程软件是单片机使用过程中不可缺少的一环,因此对于单片机编程软件,相关人员应当具备一定了解。往期文章中,小编对单片机编程软件有过诸多介绍。本文对于单片机编程软件的介绍基于两点:1.keil单片机编程软件编译环境优化等级说明,2.keil单片机编程软件中两大概念名词解析。如果你对单片机编程软件具有一定兴趣,不妨继续往下阅读哦。

一、KEIL编译环境优化等级

优化级别说明(仅供参考):

Keil软件中的 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甚至会重新安排代码以获得更多的重复使用指令序列。

当然,优化级别并非越高越好,应该根据具体要求适当选择。

二、KEIL软件概念名词解析

1. uVision

uVision是KEIL公司开发的一个集成开发环境(IDE),和Eclipse类似。它包括工程管理,源代码编辑,编译设uVision置,下载调试和模拟仿真等功能,uVision有uVision2、uVision3、uVision4、uVision5四个版本,目前最新的版本是uVision5。它提供一个环境,让开发者易于操作,并不提供能具体的编译和下载功能,需要软件开发者添加。uVisionu通用于KEIL的开发工具中,例如MDK,PK51,PK166,DK251等。

2. MDK

MDK(Microcontroller Development Kit),也称MDK-ARM、KEIL MDK、RealView MDK、KEIL For ARM,都是同一个东西。ARM公司现在统一使用MDK-ARM的称呼,MDK的设备数据库中有很多厂商的芯片,是专为微控制器开发的工具,为满足基于MCU进行嵌入式软件开发的工程师需求而设计,支持ARM7,ARM9,Cortex-M4/M3/M1,Cortex-R0/R3/R4等ARM微控制器内核。

来源:单片机编程软件很简单(22),keil单片机编程软件优化等级+概念解析 - 21ic电子网

单片机编程软件很简单(22),keil单片机编程软件优化等级+概念解析相关推荐

  1. 单片机编程软件很简单(八),Keil单片机编程软件辅助功能讲解

    单片机编程软件的应用很多,在单片机编程软件的帮助下,我们对单片机的控制才变得如此简单.在市场上流通的单片机编程软件中,小编最为喜爱Keil单片机编程软件.在本文中,小编将为大家介绍Keil单片机编程软 ...

  2. 单片机编程软件很简单(17),Keil单片机编程软件之编译、链接

    单片机编程软件使用较多,诸多朋友大学期间便接触单片机编程软件.因此,大家对于单片机编程软件或多或少有所了解.本文中,将对Keil单片机编程软件加以介绍,主要在于介绍如何在这款单片机编程软件中进行项目设 ...

  3. 单片机编程软件很简单(23),keil单片机编程软件调试stm32

    单片机编程软件的使用意义较强,不论是工作还是学习,单片机编程软件都是常被使用的软件之一.本文对于单片机编程软件的介绍将基于如何采用keil单片机编程软件调试stm32,如果你对单片机编程软件抑或本文内 ...

  4. 单片机编程软件很简单(二),keil单片机编程软件心得秘笈

    单片机编程软件为常用软件之一,单片机开发人员均用过多款单片机编程软件.那么,用单片机编程软件进行开发时,大家是否有独特新得呢?本文对单片机编程软件的讲解基于Keil C51,主要为大家介绍使用这款单片 ...

  5. 单片机编程软件很简单(五),keil单片机编程软件变量用法(下)

    对于单片机编程软件,想必大家均有所了解.针对单片机编程软件,小编曾对keil.IAR予以介绍.本文对于单片机编程软件的讲解,同样基于keil.本文中,将介绍keil单片机编程软件变量用法下篇.如果你对 ...

  6. 单片机编程软件很简单(14),Keil单片机编程软件断点设置

    单片机编程软件十分常用,对于单片机编程软件,小编于往期文章中做过诸多介绍.本文对于单片机编程软件的介绍基于Keil,主要内容在于介绍该单片机编程软件的在线汇编功能以及断点设置.如果你对Keil单片机编 ...

  7. 单片机编程软件很简单(13),Keil单片机编程软件常用调试命令

    单片机编程软件使用广泛,操作单片机编程软件的人员往往需具备专业知识.市场上有多款单片机编程软件可供大家选择,而小编较为推荐keil单片机编程软件.本文中,将主要为大家介绍这款单片机编程软件中的一些常见 ...

  8. androidstudio 日历视图怎么显示农历_中秋国庆旅游攻略怎么做?用这个便签软件很简单...

    九月已经到来,中秋节和国庆节距离我们也不远了,今年的中秋和国庆节重叠了有足足八天的假期.不少人都想趁着这个小长假出门旅游,要想保证旅游质量,那么就要做好攻略.中秋国庆旅游攻略怎么做? 要想做好一份中秋 ...

  9. 计算在一起的天数html,记录情侣在一起天数的软件 很火的情侣天数记录软件

    记录情侣在一起的天数是非常有意义,而且市面上有很多为情侣设计的APP,接下来我们就来看看记录情侣在一起天数的软件以及很火的情侣天数记录软件. 一.记录情侣在一起天数的软件 很火的情侣天数记录软件 1. ...

最新文章

  1. R语言使用scatterplot3d包的scatterplot3d函数可视化3D散点图(3D scatter plots)、在3D散点图中添加垂直线和数据点描影、3D图中添加回归平面
  2. RabbitMQ 一二事 - 简单队列使用
  3. python测试代码_python入门-测试代码
  4. linux部署tomcat项目404_一个tomcat下部署多个项目或一个服务器部署多个tomcat
  5. Yoast SEO wordpress插件 + 所有扩展
  6. ionic 组件之二维码扫描
  7. python界面开发工具手机版_Python界面编程工具包WxPython
  8. 使用R语言的BNLearn包实现贝叶斯网络
  9. .NET程序反汇编JustDecompile 开源
  10. python获取淘宝服务器的毫秒级时间
  11. Android NDK 下载地址
  12. C语言交换两个变量数值的几种方法
  13. excel合并两列内容_办公教程:Excel如何快速将两列内容合并成一列
  14. 【节能学院】剩余电流动作继电器在浴室中的应用
  15. sap进阶系列(14):第一篇:财务总览之合并会计报表(1)
  16. 3D 打印机 G 代码命令:完整列表和教程
  17. 领英工程VP:如何用 AI 消除 AI 偏见,打造高级人才推荐系统
  18. Error: Already running on PID 2510 (or pid file '/home/tarena/airflow/airflow-webserver.pid' is stal
  19. Windows运维之道——PXE备份系统
  20. IPv6发展综述及部署预测与分析

热门文章

  1. 2021年中式烹调师(中级)报名考试及中式烹调师(中级)考试总结
  2. 从Spark MLlib到美图机器学习框架实践
  3. 2019年TI杯 简易电路特性测试仪 制作过程(6)——测量任务分析(Av、fH) 20/05/01
  4. 集合框架,JDK8新特性
  5. 小米手环6NFC安装太空人表盘
  6. 颈椎病及腰椎间盘突出病因病理(程序员)
  7. 提名卡斯卡迪亚的免费软件社区贡献者
  8. Java结合Web页面使用多线程实现全双工串口通信
  9. 从AI幻术到电商防线:我们听京东安全专家聊了聊“黑箱”中的秘密
  10. Uber打车用户留存情况预测