2.2.4 KeilµVision3的各种常用窗口
KeilµVision3集成开发环境提供了多种不同用途的编辑或显示窗口,可以用于源代码的编辑、编译和调试的输出结果、反汇编的查看、堆栈数据查看、变量查看以及仿真波形图等。这些窗口是KeilµVision3集成开发环境使用的基础,下面介绍一些在程序设计及仿真调试中常用的窗口及操作。
1.源代码编辑窗口
源代码编辑窗口用于编辑程序的源代码,如图2.12所示。选择“File”→“New”命令可以打开一个源代码编辑窗口。在源代码编辑窗口中可以使用汇编语言,一般需要保存为.ASM文件,也可以使用C51语言,一般需要保存为.C文件。
源代码编辑窗口是使用最为频繁的窗口,这里介绍几个源代码编辑窗口中常用的操作。
(1)设置标签
如果源代码比较长,则查找和定位文本比较麻烦,此时可以使用标签。在源代码编辑窗口中,标签可以设置在任何行,使用标签可以快速地查找和定位文本。
图 2.12 源代码编辑窗口
将鼠标光标放置在需要设置标签的行,选择“Edit”→“Toogle Bookmark”命令可以设置一个标签。在同一行再次选择“Edit”→“Toogle Bookmark”命令可以取消当前标签。同时也可以通过工具栏来设置或取消当前行的标签。
(2)标签之间的转移
标签之间的切换十分方便,选择“Edit”→“Goto Next Bookmark”命令可以将鼠标光标移到下一个标签处;选择“Edit”→“Goto Previous Bookmark”命令可以将鼠标光标移到上一个标签处。
(3)断点的设置和取消
断点用于在程序仿真的时候中断程序的执行,查看运行的中间结果。在源代码编辑窗口,双击某一行可以设置断点,双击同一行可以取消当前断点。用户也可以使用菜单命令来设置断点。
2.编译输出窗口
编译输出窗口用于输出项目编译链接的信息,如图2.13所示。如果程序在编译链接的过程中有错误,则显示具体的错误信息及其位置。同时,编译输出窗口还显示输出代码的大小。
图 2.13 编译输出窗口
3.反汇编窗口
反汇编窗口用于显示C51代码的反汇编代码,如图2.14所示。反汇编窗口在程序运行或调试模式下才会出现。选择“Debug”→“Start/Stop Debug Session”命令,进入调试模式。此时,可以通过选择“View”→“Disassembly Window”命令来显示或隐藏反汇编窗口。
反汇编窗口中列出了KeilµVision3编译器对当前C51代码的反汇编结果。选择“Debug”→“Enable/Disbale Trace Recording”命令后,可以在反汇编窗口跟踪指令执行的历史记录,已经执行的指令可以用“Debug”→“View Trace Records”命令来显示。
图 2.14 反汇编窗口
4.观察和堆栈窗口
观察和堆栈窗口用于显示程序运行中的变量的值,如图2.15所示。观察和堆栈窗口也是在程序运行和调试模式显示。选择“D e b u g”→“Start/Stop Debug Session”命令,进入调试模式。此时,可以通过选择“View”→“Watch&Call Stack Window”命令,来显示或者隐藏观察和堆栈窗口。
图 2.15 观察和堆栈窗口
观察和堆栈窗口中有3个选项页,Locals选项页用于显示在程序执行过程中,正在执行的函数里面所有的局部变量。Call Stack选项页用于显示当前函数的调用情况。Watch选项页中,用户可以自行编辑需要观察的变量,以便于程序的调试。编辑的方法可以采用如下两种方式。
❑在Watch#1或Watch#2窗口中,单击“<Type F2 to edit>”,然后按F2键便可以进入编辑状态,直接输入需要观察的变量名即可。
❑进入调试模式后,在源代码窗口,右击需要观察的变量,选择“Add to Watch Window”命令,可以将该变量添加到一个Watch选项页中。
5.存储器窗口
存储器窗口用于显示不同存储器的数据,如图2.16所示。存储器窗口也是在程序运行和调试状态才有的。选择“Debug”→“Start/Stop Debug Session”命令,进入调试模式。此时,可以通过选择“View”→“Memory Window”命令来显示或隐藏存储器窗口。
\
图 2.16 存储器窗口
在存储器窗口的Address文本框中,可以输入地址值或者表达式来查看某个储存器单元中的数据。
存储器窗口提供了4个不同的存储器显示页,用不同的显示页可以显示不同的存储器数据或者不同地址段的存储器数据。例如分别可以显示内部数据存储器、外部数据存储器和代码存储器中的内容。
如果需要程序运行过程中显示存储器数据,可以选择“View”→“PeriodI2C Window Update”命令,这样,存储器窗口的内容便随程序的执行而周期性地更新显示。否则,存储器窗口的内容只在程序执行到断点或程序停止后才能显示。
6.CPU寄存器窗口
CPU寄存器窗口显示了CPU寄存器中的值,如图2.17所示。CPU寄存器窗口在程序运行和调试状态下显示,用户可以单击项目管理窗口下的Regs标签来显示。CPU寄存器窗口中的寄存器值随着程序的执行而不断变化。
图 2.17 CPU寄存器窗口
7.串行窗口
串行窗口用于显示串行的输入/输出信息,它只在程序运行或调试状态下显示。选择“Debug”→“Start/Stop Debug Session”命令,进入调试模式。此时,可以通过选择“View”→“Serial Window#1”命令来显示或隐藏串行窗口1。通过串行窗口打印输出字符串的程序及串行窗口的输出内容,如图2.18所示。
图 2.18 串行窗口
8.逻辑分析窗口
逻辑分析窗口用于显示程序运行时变量的波形图,如图2.19所示。逻辑分析窗口只在程序运行或调试的时候显示。其中,显示的变量可以为数字变量,也可以为模拟变量。
图 2.19 逻辑分析窗口
在逻辑分析窗口中,单击“Setup”按钮,弹出“Logic Analyzer”对话框,如图2.20所示。用户可以在其中添加或者删除需要观察的变量。
图 2.20 “Logic Analyzer”对话框
9.符号观察窗口
符号观察窗口显示了程序运行时所有函数和模块的公共符号、当前模块或函数的局部符号、代码行号和当前载入应用所定义的CPU特殊功能寄存器SFR。符号观察窗口也需要在程序调试或运行时才能显示,如图2.21所示。用户可以选择“View”→“Symbol Window”命令来显示或隐藏符号观察窗口。
图 2.21 符号观察窗口