Keil调试器可用于调试应用程序,调试器提供了在PC上调试和使用评估板/硬件平台进行目标调试。工作模式的选择在Options for Target→Debug对话框内进行,如图2-12所示。
在没有目标硬件时,可以使用仿真器(Simulator)将Keil调试器配置为软件仿真器。它
图2-12 Debug对话框
可以仿真微控器的许多特性,还可以仿真许多外围设备,包括串行接口、外部I/O接口及时钟等。所能仿真的外围设备在为目标程序选择CPU时就被选定了。在目标硬件准备好之前,可用这种方式测试和调试嵌入式应用程序。
Keil已经内置了多种高级GDI驱动设备,如果使用其他仿真器,则需要首先安装驱动程序,然后在此列表里面选取。在此也可配置与Proteus软件的接口,使两个软件联合工作。
1.启动调试模式
通过菜单命令Debug-Start/Stop Debug Session或者工具栏中的图标,可以启动/关闭Keil的调试模式,如图2-13所示。
图2-13 Debug工作界面
在调试过程中,若程序停止执行,Keil会打开一个显示源文件的编辑窗口或显示CPU指令的反汇编窗口,下一条要执行的语句以黄色箭头指示。
在调试时,编辑模式下的许多特性仍然可用,如可以使用查找命令、修改程序中的错误等,应用程序中的源代码也在同一个窗口中显示。
调试模式与编辑模式有所不同:调试菜单与调试命令是可用的,其他的调试窗口和对话框、工程结构或工具参数不能修改,所有的编译命令均不可用。
2.程序调试
程序调试要使用Debug菜单下常用命令和热键,也可使用按钮进行。Debug菜单下的命令和热键功能说明如下:
Run、键盘上的F5键:全速运行,直到运行到断点时停止,等待调试指令。
Step into、键盘上的F11键:单步运行程序。每运行一次,程序执行一条语句。对于一个函数,程序指针将进入到函数内部。(www.xing528.com)
Start Over、键盘上的F10键:单步跨越运行程序。与单步运行程序相似,不同点是跨越当前函数,运行到函数的下一条语句。
Step Out of current Function、键盘上的Ctrl+F11键:跳出当前函数。程序运行到当前函数返回的下一条语句。
Run to Cursor line、键盘上的Ctrl+F10键:运行到当前指针。程序将会全速运行到光标所在语句时停止。
Stop Running:停止全速运行。停止当前程序的运行。
设置断点的作用是当程序全速运行时,需要程序在不同的地方停止运行然后进行单步调试,可以通过设置断点来实现。断点的设置只能在有效代码处设置,如图2-14所示,栏中的有效代码为深灰色(实际上是红色)长方块处。
图2-14 断点的设置
将鼠标移到有效代码处,双击鼠标左键就会出现一个红色标记,表示断点已成功设置;在红色标记处又双击鼠标左键,红色标记消失,表示断点已成功删除。程序运行到设置的断点位置就停止运行。
图2-15 对数值x的监视
此时,可以打开View-Watch&Call Stack Window窗口,对程序中的数值进行监视,例如对i的值进行监视,如图2-15所示。每按下一次Step into按钮,x的数值会减小一次。数值(Value)可以在十六进制和十进制之间选择。
同时也可以在Project Workspace的regs内看到运行时间,如图2-16所示。利用delay(x)函数延时,如调整闪烁的时间间隔,只需调整函数形参的取值。但利用延时函数不能做到精确地延时,在本例的delay(x)函数中,x=50000时,延时约零点几秒。
利用Keil μVision3进行单片机程序设计,从项目的创建到编译结束共包含4个步骤,其中程序设计是整个项目设计的关键,也是系统设计过程中花费时间最长、投入精力最多的环节。程序设计结束后,还要对程序进行调试、电路仿真和实际运行,以检测程序设计的正确性、稳定性。
图2-16 仿真运行时间
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。