KeilμVision2软件的调试窗口
KeilμVision2软件在调试程序时提供了多个窗口,主要包括输出窗口(OutputWindow)、观察窗口(Watch&CallStackWindow)、窗口(MemoryWindow)、反汇编窗口(DssemblyWindow)和串行窗口(SerialWindow)等。进入调试模式后,可以通过菜单“View”下的相应命令打开或关闭这些窗口。
在进入调试模式之前,工程窗口的寄存器页面是空白的,进入调试模式以后,此页面就会显示出当前模拟状态下寄存器的值,如下图所示。
寄存器页面包括了当前的工作寄存器组和系统寄存器,系统寄存器有一些是实际存在的寄存器(如A、B、DPTR、SP、PSW等),有一些是实际中并不存在或虽然存在却不能对其进行操作的(如PC、Status等)。
每当程序中执行到对某寄存器的操作时,该寄存器会以反色(蓝底白字)显示,用单击然后按下F2键,即可修改该值。
下图所示是调试模式下的输出窗口、存储器窗口和观察窗口
进入调试程序后,输出窗口自动切换到“Command”页(命令窗口)。输出窗口可以输入调试命令,同时可以输出调试信息,调试命令以文本的形式输入,详细的命令语句可以参照“GettingStartedwithμVision2”的说明,大约有30个命令。
存储器窗口可以显示系统中各种内存中的值,通过在Address后的编辑框内输入“字母:数字”即可显示相应内存值,其中字母可以是C、D、I和X,分别代表代码存储空间、直接寻址的片内存储空间、间接寻址的片内存储空间和扩展的外部RAM空间。数字代表想要查看的地址。如输入“D:5”,即可观察到地址Ox05开始的片内RAM单元值,键入“C:O”即可显示从0开始的ROM单元中的值,即查看程序的代码。该窗口的显示值可以以各种形式显示,如十进制、十六进制、字符型等。
改变显示方式的方法是:按鼠标右键,在弹出的快捷菜单中选择,该菜单用分隔条分成3部分,其中第一部分与第二部分的3个选项为同一级别,选中第一部分的任意选项,内容将以整数形式显示;而选中第二部分的“ASCII”项将以字符型显示,选中“Float”项内容将以相邻4字节组成的浮点数形式显示,选中“Double”项内容将以相邻8字节组成的双精度形式显示。第一部分又有多个选项,其中“Decimal”项是一个开关,如果选中该选项,则窗口中的值将以十进制的形式显示,否则按默认的十六进制方式显示。“Unsigned”和“Signed”后分别有3个选项:Char,Int,Long,分别代表以单字节方式显示、相邻双字节组成整型数方式显示、相邻4字节组成长整型方式显示,而“Unsigned”和“Signed”则分别代表无符号形式和有符号形式,至于究竟从哪一个单元开始相邻单元则与设置有关。第三部分的“ModifyMemoryatX:xx”用于更改鼠标处的内存单元值,选中该项即出现如下图的对话框,可以在对话框中输入要修改的内容。
观察窗口是很重要的一个窗口,工程窗口中仅可观察到工作寄存器和有限的系统寄存器,如A、B、DPTR等,如果需要观察其他寄存器的值或者在高级语言编程时需要直接观察变量,就要借助于观察窗口了。比如如果想要观察程序中某个临时变量tmp在单步工作时的变化情况,就可以在观察窗口中按F2键,然后键入变量名tmp,这样在程序运行的时候会看到tmp变量的即时值。一般情况下,仅在单步执行时才对变量值的变化感兴趣,全速运行时,变量的值是不变的,只有在程序停下来之后,才会将这些最新的变化反映出来。但是,在一些特殊的场合也可能需要在全速运行时观察变量的变化,此时可以选择“View/PerioWindowUpdata”菜单,确认该项处于被选中状态,即可在全速运行时动态地观察有关变量值的变化。选中该项,将会使程序模拟执行的速度变慢。
选择菜单“View/DisassemblyWindow”可以打开反汇编窗口。
该窗口可以显示反汇编后的代码、源程序和相应反汇编代码的混合代码,可以在该窗口进行在线汇编、利用该窗口跟踪己执行的代码、在该窗口按汇编代码的方式单步执行。打开反汇编窗口,单击鼠标右键,出现快捷菜单,其中MixedMode是以混合方式显示,AssemblyMode是以反汇方式显示。
程序调试中常使用设置断点然后全速执行的方式,在断点处可以获得各变量值,但却无法知道程序在断点前究竟执行了哪些代码,而这往往是需要了解的。为此,KeilμVision2提供了跟踪功能,在运行程序之前打开调试工具条上的运行跟踪代码开关,然后全速运行程序。当程序停止运行后,单击查看跟踪代码按钮,自动切换到反汇编窗口,其中前面标有“.”号的行就是中断以前执行的代码,可以按窗口边的上卷按钮向上翻查看代码执行记录。
KeilμVision2提供了2个串行观察窗口,用于PC机与模拟的51单片机窗口通信。从模拟的51单片机的CPU串口输出的数据,将在这个串行窗口中显示,而在串口中输入的字符,将被输入到模拟的51单片机的CPU串口中,利用这一点,可以在没有外部硬件的情况下模拟51机CPU的。
- 上一篇:如何给领导做PPT
- 下一篇:在Windows中使用dScope的调试功能