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.2.6 仿真调试 - 图1

图 20.6 多任务列表窗口

20.2.6 仿真调试 - 图2

图 20.7 变量观察

(5)选择Peripherals→I/O-Ports→Port 1命令,打开并行端口P1。同样,可以打开并行端口P2,如图20.8所示。

(6)按F5键,开始执行仿真。此时,从端口P1和P2可以看到交通灯的运行情况,如图20.9所示。

20.2.6 仿真调试 - 图3

图 20.8 端口P1和P2

20.2.6 仿真调试 - 图4

图 20.9 运行时的端口P1和P2

(7)此时,在串口仿真窗口“UART#0”输出了命令信息。这里输入设置时间命令T 9:12:45,即将时间设置在白天交通灯运行时间段。

(8)再次输入D命令,显示运行时间,如图20.10所示。

20.2.6 仿真调试 - 图5

图 20.10 显示运行时间

(9)此时,可以在变量观察窗口察看各个交通灯的交替变化,如图20.11所示。

(10)另外,在多任务列表窗口可以察看当前各个任务的状态,如图20.12所示。

(11)在P1端口,手工改变P1.2的值,模拟行人通行按钮按下。此时可以看到交通灯的变化,验证整个系统的运行正确性。

20.2.6 仿真调试 - 图6

图 20.11 交通灯变化

20.2.6 仿真调试 - 图7

图 20.12 多任务执行状态