第一部分 8051开发工具
KEILC51标准五年级家长寄语C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,
使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编
器数学广角优化,实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活的开发环境。
C51 V7版本是目前最高效、灵活的8051开发平台。它可以支持所有8051的衍生产品,也可以支持所有兼容的仿真器,同时支持其它第三
方开发工具。因此,C51 V7版本无疑是8051开发用户的最佳选择。
第二部分 uVision2集成开发环境
宝宝鼻子不通气怎么办
一、项目管理
工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。
一个单一的uVision2工程能够产生一个或多个目标程序。产生目标程序的源文件构成“组”。开发工具选项可以对应目标,组或单个文件。
uVision2包含一个器件数据库(device databa),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定
微控制器的要求。此数据库包含:片上存储器和外围设备的信息,扩展数据指针(extra data pointer)或者加速器(math accelerator)的特
性。
uVision2可以为片外存储器产生必要的连接选项:确定起始地址和规模。
鸢尾花花期
二、集成功能
uVision2的强大功能有助于用户按期完工。
1.集成源极浏览器利用符号数据库使用户可以快速浏览源文件。用详细的符号信息来优化用户变数存储器。
2.文件寻找功能:在特定文件中执行全局文件搜索。
3.工具菜单:允许在V2集成开发环境下启动用户功能。
4.可配置SVCS接口:提供对版本控制系统的入口。
5.PC-LINT接口:对应用程序代码进行深层语法分析。
6.Infineon的EasyCa接口:集成块集代码产生。
7.Infineon的DAVE功能:协助用户的CPU和外部程序。DAVE工程可被直接输入uVision2
第三部分编辑器和调试器
一、源代码编辑器
uVision2编辑器包含了所有用户熟悉的特性。彩色语法显像和文件辩识都对C源代码进行和优化。可以在编辑器内调试程序,它能提供一
种自然的调试环境,使你更快速地检查和修改程序。
二、断点
uVision2允许用户在编辑时设置程序断点(甚至在源代码未经编译和汇编之前)。用户启动V2调试器之后,断点即被激活。断点可设置
为条件表达式,变量或存储器访问,断点被触发后,调试器命令或调试功能即可执行。
在属性框(attributes column)数字代表的意思中可以快速浏览断点设置情况和源程序行的位置。代码覆盖率信息可以让你区分程序中已执行和未执行的
部分。
三、调试函数语言
uVision2中,你可以编写或使用类似C的数语言进行调试。
1.内部函数:如printf, memt, rand及其它功能的函数。
2.信号函数:模拟产生CPU学生自己写书怎么出版的模拟信号和脉冲信号(simulate analog and digital inputs to CPU)。
3.用户函数:扩展指令范围,合并重复动作。
四、变量和存储器
用户可以在编辑器中选中变呈来观察其取值。双层窗口显示,可进行以下调整:
1.当前函数的局部变量
2.用户在两个不同watch窗口页面上的自定义变量儒家伦理思想
3.堆栈调用(call stack)页面上的调用记录(树)(call tree)
4.不同格式的四个存储区
第四部分 C51编译器
KEIL C51编译器在遵循ANSI标准的同时,为8051微控制器系列特别设计。语言上的扩展能让用户使用应用中的所有资源。
一、存储器和特殊功能寄存器的存取
C51编译器可以实现对8051系列所有资源的操作。SFR的存取由sfr和sbit两个关键字来提供。变量可旋转到任一个地址空间。用关键字-
at-还能把变量放入固定的存储器.存储模式(大,中,小)决定了变量的存储类型。
连接定位器支持的代码区可达32个,这就允许用户在原有64K ROM的8015基础上扩展程序。在V2的编译器和许多高性能仿真器中,可以
支持应用程序的调试。
二、中断功能
C51允许用户使用C语言编写中断服务程序,快速进、出代码和寄存器区的转换功能使C语言中断功能更加高效。
可再入功能是用关键字来定义的。多任务,中断或非中断的代码要求必须具备可再入功能。
三、灵活的指针
C51提供了灵活高效的指针。
通用指针用3个字节来存储存储器类型及目标地址,可以在8051的任意存储区内存取任何变量。
特殊指针在声明的同时已指定了存储器类型,指向某一特定的存储区域。由于地址的存储只需1-2字节,因此,指针存取非常迅速。
第五部分代码优化
一、通用代码优化
1.常量重叠(constant folding) | 6.寄存器间参数传递(parameter passing in register) |
| |
2.通用子表达式删除(common subexpression elimination) | 7.循环(loop rotation) |
| |
3.长度缩减速(reduction) | 8.死码删除(dead code elimination) |
| |
4.控制流优化(control flow optimization) | 9.通用Tail Merging |
| |
5.寄存器变量使用(register variable usage) | 10.生命作文通用子程序块打包(block subroutine packing) |
| |
二、8051特殊优化
1.孔颈优化(peephole optimization) | 4.数字覆盖(overlaying) |
| |
2.跳转-分支优化(switch-ca optimization) | 5.扩展入口优化(extended access optimization) |
| |
3.中断函数优化(interrupt function optimization) | |
| |
三、寄存器优化