KeilμVison3的调试和仿真.ppt
第13章 Keil Vison3的调试和仿真,在Keil Vison3集成开发环境中,具有完备的程序调试器。通过Keil Vison3的程序调试器,可以程序进行单步调试、断点调试、性能分析和优化、以及代码覆盖分析等。同时,8051单片机内部集成了多种片上资源,包括并行I/O端口、定时器/计数器、串行接口和中断系统等。这些丰富的片上资源构成了单片机强大的功能。开发单片机程序需要对单片机的各种片上资源进行操作。如果能够在程序设计的同时,仿真代码的执行以及各种片上资源的响应,则可以大大加速开发的进度以及提高程序的准确性。本章主要介绍Keil Vison3的程序调试器的各种调试功能,包括性能分析器、代码覆盖分析器和断点等。同时本章还详细介绍Keil Vison3中单片机硬件资源的仿真。,13.1 Keil Vison3的程序调试,Keil Vison3集成开发环境具有完备的程序调试功能。通过Keil Vison3的调试工具可以在不使用外部硬件的情况下,对程序进行完备的分析,及时发现并解决问题。,13.1.1 Keil Vison3的程序调试模式,当在Keil Vison3集成开发环境中完成源代码的编写后,选择“Debug”“Start/Stop Debug Session”命令,便可以进入程序仿真调试环境。Keil Vison3的仿真调试环境,如图所示。其中各个窗口均可以通过菜单栏或者工具栏来打开或关闭。,Keil Vison3的仿真调试环境,13.1.2 断点,Keil Vison3集成开发环境中,内建了完善的断点调试功能。当程序仿真执行到断点位置的时候便会自动停止,然后可以对程序执行的结果进行观察,或者修改相应的存储器、寄存器以及外部端口的值,以便于进一步的代码调试。1断点的种类2断点的设置,断点属性对话框,13.1.3 性能分析器,Keil Vison3集成开发环境中,内建了性能分析器,如图所示。性能分析器用于在程序运行时,统计各个函数或者程序模块的执行次数及运行时间,以便找到程序最耗时的部分进行优化。,性能分析器,13.1.4 代码覆盖分析器,Keil Vison3集成开发环境中,内建了代码覆盖分析器,具有代码覆盖功能。在程序运行时,代码覆盖分析器执行两部分的工作:将已执行过的代码在程序窗口用特殊的颜色标识,如图所示。统计已执行的程序代码的比例,结果以百分数显示在代码覆盖分析器窗口。,执行代码的标识,13.1.5 调试命令,在Keil Vision3集成开发环境中,除了可以使用菜单命令和工具栏来调试程序外,还支持完善的调试命令。这些调试命令可分为如下所示的几大类。通用命令:提供了诸如系统复位,退出调试模式等通用调试操作。程序命令:提供了目标程序的执行调试操作。包括跳出当前函数,停止程序运行等操作命令。断点命令:提供了调试断点的相关操作。包括开启或关闭断点,删除或添加断点等操作命令。存储器命令:用来显示和更改存储器的内容。例如显示存储器中的内容,在线编译代码等操作。,13.2 系统资源仿真,除了强大的调试功能,Keil Vison3集成开发环境中还提供了对单片机强大的仿真支持。在Keil Vison3支持多个厂商的单片机系列,几乎可以囊括市场上所有的51系列单片机。同时,Keil Vison3对每一款单片机上的各种片上资源提供了仿真支持。即使没有外部硬件支持,在Keil Vison3集成开发环境中也可以完美仿真模拟程序的执行。对于标准的8051单片机,其支持的片上资源仿真包括:并行I/O端口寄存器中断定时器/计数器串行接口定时器/计数器看门狗定时器低功耗模式,13.2.1 并行I/O端口仿真,典型的51系列单片机具有4个8位的并行I/O端口,分别为P0、P1、P2和P3。对于其他一些单片机,可能包含更多或者更少的I/O端口。这些并行I/O端口均可以用作输入和输出引脚来使用。Keil Vison3集成开发环境提供了这些并行I/O端口的支持。并行端口0的仿真界面,如图所示。,并行端口0的仿真界面,寄存器仿真,51系列单片机通过寄存器来实现硬件资源控制,因此Keil Vison3集成开发环境可以支持仿真单片机内部的各种寄存器。在程序执行的时候,每一个寄存器的值都可以随时查看,这样便于实时观察程序运行的正确性。不同的硬件资源由不同的寄存器来控制,除此之外,还包含一些通用的寄存器。这里介绍通用寄存器的仿真操作。1寄存器的仿真界面2寄存器的仿真,寄存器的仿真界面,13.2.3 中断仿真,51系列单片机总共提供了5个中断源,包括2个定时中断源、2个外部中断源和1个串行中断源。部分增强型的单片机还提供了更多的中断源。当在Keil Vison3集成开发环境中建立项目并指定所使用的单片机型号后,在仿真调试模式便可以加载该单片机的中断资源供仿真调试使用。1中断系统的仿真界面2中断系统的仿真,13.2.4 串行接口仿真,51系列单片机集成了全双工的串行通信接口,Keil Vison3集成开发环境同样提供了完整的串行接口的仿真环境。通过串口的仿真,可以实时查看并更改各个寄存器的设置,也可以模拟串行数据流的输入输出。1串行接口的仿真界面2串行接口的仿真3字符串输入输出的仿真操作,结束程序,13.2.5 定时器/计数器仿真,51系列单片机具有两个定时器/计数器T0和T1,对于52系列单片机还包含额外的定时器/计数器T2。这里以定时器/计数器T0、T1和T2为例,介绍定时器/计数器的仿真操作。1定时器/计数器T0和T1的仿真界面2定时器/计数器T0的仿真3定时器/计数器T2的仿真界面4定时器/计数器T2的仿真,P1.2引脚的仿真波形,13.2.6 看门狗定时器的仿真,目前,大多数单片机都内置有看门狗定时器。当程序正常运行的时候,看门狗定时器将定时清零。如果遇到系统故障,导致程序跑飞,则看门狗定时器将得不到及时的清零。此时,看门狗定时器溢出,引起系统复位。使用看门狗定时器可以增加软件的可靠性。Keil Vison3集成开发环境对看门狗定时器提供了仿真支持。1看门狗定时器的仿真界面2看门狗定时器的仿真,低功耗仿真,51系列单片机提供了两种低功耗模式,省电保持模式和休眠运行模式。可以在软件中通过检查PCON.4的标志位查看电源的状态,从而根据情况将单片机设置为低功耗模式。另外,在程序设计中,也可以通过特殊功能寄存器PCON来进行设置低功耗模式。当CPU置PCON.1位为1后,即PD=1,单片机便进入省电模式;当CPU置PCON.0位为1后,即IDL=1,单片机便进入休眠运行模式。如果同时写入PD和IDL时,PD优先,即单片机优先进入省电模式。,13.3 小结,本章首先介绍了Keil Vision3集成开发环境的程序调试功能,包括断点、性能分析器、代码覆盖分析器和调试命令等。同时,本章还详细介绍了Keil Vison3集成开发环境中,对单片机各种常见的片上资源的仿真操作。主要包括并行I/O端口、寄存器、定时器/计数器、串行接口、中断、看门狗定时器以及低功耗。Keil Vison3集成开发环境对各种片上资源均提供了完善的仿真调试支持。在程序设计时,通过仿真以及程序调试操作可以完美地模拟程序的执行情况,便于及时发现并解决问题。这样便大大提高了程序开发的可靠性,加速了程序的开发速度。因此,读者应该熟练掌握本章内容。,