20.2.6 仿真调试
当完成程序设计和编译后,可以在KeilµVision3集成开发环境中对程序进行仿真,以确保程序的正确性。具体操作步骤如下。
(1)在KeilµVision3集成开发环境中,选择Debug→Start/Stop Debug Session命令,进入仿真分析状态。
(2)选择Peripherals→RTX-Tiny Tasklist命令,打开多任务列表窗口,如图20.6所示。其中列出了所有任务的任务函数以及相关运行信息。运行信息包括如下几项。
❑TID表示了任务的任务号。
❑Task Name表示了任务的函数名。
❑State表示了任务的当前状态。
❑Wait for Event表示了任务正在等待的事件。
❑Sig表示了系统分配给该任务的信号标志状态。Sig=1表示置位,Sig=0表示复位。
❑Timer表示了产生超时的定时节拍数。
❑Stack表示了局部任务在IDATA空间内的堆栈起始地址。
(3)选择Peripherals→Serial命令,打开串口仿真窗口“UART#0”。
(4)选择View→Watch&Call Stack Window命令,打开变量观察窗口。在其中输入道路交通灯及行人按钮对应的变量进行观察,如图20.7所示。
图 20.6 多任务列表窗口
图 20.7 变量观察
(5)选择Peripherals→I/O-Ports→Port 1命令,打开并行端口P1。同样,可以打开并行端口P2,如图20.8所示。
(6)按F5键,开始执行仿真。此时,从端口P1和P2可以看到交通灯的运行情况,如图20.9所示。
图 20.8 端口P1和P2
图 20.9 运行时的端口P1和P2
(7)此时,在串口仿真窗口“UART#0”输出了命令信息。这里输入设置时间命令T 9:12:45,即将时间设置在白天交通灯运行时间段。
(8)再次输入D命令,显示运行时间,如图20.10所示。
图 20.10 显示运行时间
(9)此时,可以在变量观察窗口察看各个交通灯的交替变化,如图20.11所示。
(10)另外,在多任务列表窗口可以察看当前各个任务的状态,如图20.12所示。
(11)在P1端口,手工改变P1.2的值,模拟行人通行按钮按下。此时可以看到交通灯的变化,验证整个系统的运行正确性。
图 20.11 交通灯变化
图 20.12 多任务执行状态