请教keil C51关于调试的问题

进入调试模式后,为什么我将程序复位后,再进行单步执行,Debug窗口会跳到Startup.a51中?首次进入Debug进行单步运行并不是这样的,一直在我写的c程序窗口中进行的啊!

如下面图(我使用的是keil MDK,但道理都是一样的),在debug界面中,如果你将Run to main()复选框前的对号去掉,每次进入debug都会从Startup.a51,因为这个文件存在一些启动代码,复位后要先进入这个文件的,你虽然是用C写的代码,但是实际下载到单片机的还有编译器为你自动加入的Startup.a51文件中的代码,这个主要将RAM区数据清零,然后跳转到你写的C语言main函数.由于你进入debug后再复位,实际上是从程序的最开始执行,至于为什么进入调试模式是执行的你写的C代码,就是因为你选择了下图中的Run to main()---编译器按照你选定的设置进执行了一些步骤而已

来自:求助得到的回答
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答