用KEIL实现联机调试的步骤

来源:互联网 发布:柯震东微博照片软件 编辑:程序博客网 时间:2024/06/05 16:36

作者:iamlaosong

 

keil除了可以编写、编译和仿真执行来调试用户程序外,还可以通过串口实现联机调试,即通过单步、断点看代码在硬件上的执行效果。步骤如下:

使用的是AT89C51CC03单片机,keil版本是Keil C51 V9.00。

1、用KEIL建立工程项目文件,编程、编译调试用户程序,保证软件执行进行没什么问题。

2、修改KEIL安装点keil/c51/FlashMon目录下与单片机型号一致的配置文件config.inc,主要是根据实际情况修改cpu_clock和code_start两个参数值,我改为12M和0E000H。

3、重新编译该目录下的程序,生成新的调试程序Monitor.HEX,如果没有重新生成,把选项create HEX file勾上。

4、运行FLIP程序,将Monitor.HEX烧进单片机中,起始地址为0E000H,即     SBV=E0、BLJB选上、BSB=0、EB=FF

5、点击Start Application按钮执行Monitor.HEX程序

6、运行keil,打开工程项目文件,修改调试参数,即菜单project-->option for target,选debug页,点击右边的use keil monitor 51 driver,点击seting按钮,选择串口和波特率,注意,要和烧片子时用的波特率一致,一般用9600。需要注意的是,如果串口为自动方式(即除了三根通信线外,还接了RTS和DTR),需要将RTS和DTR设置为inactive.

7、编译好程序,点击debug菜单下的调试命令,可以单步执行,可以设置断点,可以全速运行,这时候实际使用单片机硬件运行程序,可以看到执行效果,如显示、按键响应等。这种情况下可以调试程序实际执行的效果。

8、如果不设置断点,全速运行用户程序,则用户程序和实际运行一致,keil会失去对用户程序的控制,无法中断用户程序的执行(只有按reset才能中断用户程序运行了)

9、发现问题可退出调试状态,修改程序,重新编译,然后再次进入调试状态,单步或设置断点进行调试。注意,全速运行时不能中断,否则退不出(强行退出的后果是monitor的状态不对,无法再次进入联机调试状态)。

10、退出调试后,无论是按reset还是通过flip程序的start application按钮,都无法再次执行monitor程序,此时执行的是用户程序,要想继续调试,只能擦除flash,重新将monitor烧进单片机。

 

原创粉丝点击