历史上的今天
今天是:2024年12月15日(星期日)
2018年12月15日 | 用KEIL实现联机调试的步骤
2018-12-15 来源:eefocus
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烧进单片机。
史海拾趣
|
嵌入式系统开发,为什么选择Linux? 在过去的几年中,嵌入式系统的开发发生了很大的变化。以前嵌入式设备往往是一个孤立的、资源有限的系统,它们追求的是在有限的价格上满足一定的功能性要求。通常它们采用那些功能并不强大的CPU,这也是开发 ...… 查看全部问答> |
|
本数控电源既可以用一个可调的电位器手动控制输出电压的大小。也可以通过电脑RS232串口(或具有串口功能的单片机、PLC、DSP)直接输入一个简单的可视ASCII调压命令进行全数字化设定输出。比如串口输入“DC100”,则输出直流100V电压,串口输入“DC2 ...… 查看全部问答> |
|
本月11日,中国嵌入式系统产业联盟“百家e坛”嵌入式技术主题论坛第三期如期召 开,延续前两期活动的火爆场面,本期活动同样吸引了众多嵌入式技术爱好者的热情参与。 本期活动可谓是名家云集,三位主讲嘉宾都是嵌入式业界知名的技术专家,因此吸引 ...… 查看全部问答> |
|
关于cortex m4 launchpad的,还没订不要再去订了,已经订了的等着退款吧 https://bbs.eeworld.com.cn/thread-346484-1-1.html 上面是我上一个帖子, 是关于我的第一个板子订单被取消的问题。 我当时怀疑是和下订单时那几个选项(用途啊什么的)有关, 又用另一个邮箱重新下了个单,填的完全和以前成功买MSP430那个lau ...… 查看全部问答> |
|
#include #include int main(void) { int retval; retval = system(\"ls -l\"); if(retval == 127) &n ...… 查看全部问答> |




