×
单片机 > 单片机程序设计 > 详情

用KEIL实现联机调试的步骤

发布时间:2020-09-02 发布时间:
|

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烧进单片机。


关键字:KEIL  联机调试  步骤

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32中断向量表的位置.重定向