[求助] keil编写程序完成后debug前面出现绿色框框

无赖好好   2011-10-26 12:30 楼主
本人51单片机初学者,在用keil写完程序后,debug时出现的现象求解:1、程序有的行前面有灰色才能打断点,没有灰色无法打断点。
2、程序前面黄色箭头无法移动。
3、此时project按钮按下去后无法按其中按钮。
4、不知道啥时候有的灰色框框变成绿色的了,不知道啥意思。
具体贴图如下:
  • 无标题2.jpg
  • 无标题3.jpg
  • 新建位图图像.jpg

回复评论 (9)

回复 楼主 无赖好好 的帖子

是编译器优化的原因,优化后没有代码对应自然就不能断点了
点赞  2011-10-27 16:45
我经验不足,不知道啊,但是你可以把你的程序和工程文件打包发上来我下载了之后在我电脑上仿真试试看,不知道可以吗?
点赞  2011-10-27 17:05

回复 楼主 无赖好好 的帖子

你程序写错了吧
for (i=1000;i>=0;i--)
    for (j=110;j>=0;j--);   //for (i=110;j>=0;i--)这段对 i 的重新赋值会导致前个for循环无任何意义,因此优化后就没有代码可执行了
点赞  2011-10-27 17:27
1、程序有的行前面有灰色才能打断点,没有灰色无法打断点。
仔细瞧瞧有灰色的和没灰色的行有啥区别?
有没发现,那些不是括号就是一些函数头之类的东西,这些东西,函数当然无法执行到这些地方,自然也就无法下断点。
有的IDE更牛逼,你刻意在中间来一个死循环,下边的都打不了断点——这玩意太聪明了。
2、程序前面黄色箭头无法移动。
就你的图来看,那是个循环,人家还没走完呢?
如果你怀疑这个结论,在下边的语句加一个断点,然后选择执行到下一个断点——当然了,执行到这个位置是要时间的。具体啥时候执行过去我也不知道。
你是在单步吧?

3、此时project按钮按下去后无法按其中按钮。
亲,这是必须的,因为你debug时,是不允许做这些操作的,就好像,你在debug的时候,是没法编译改动的程序一样的。

第四个问题,不好意思,我也不太清楚。

4L的兄弟说的对。
不同层循环之间,要小心操作不同层的循环变量,不然极可能导致死循环。或者反过来,循环次数不够
强者为尊,弱者,死无葬身之地
点赞  2011-10-27 19:46

回复 沙发 huo_hu 的帖子

这个循环肯定是陷进一个死循环里
强者为尊,弱者,死无葬身之地
点赞  2011-10-27 19:48
感谢版主小小白得关注,感谢huo_hu跟辛昕的无私帮助,问题已经得到解决!祝各位商祺!
点赞  2011-10-28 12:27
老版主说的比较详细了!
点赞  2011-10-28 12:30
第四个问题,是因为在options 里面Debug选择你选择的是
      左边的Use Sinmulator, 比如我用ULINK2调试程序,会选择右边的ULINK2/ME Cortex Debugger
点赞  2014-12-28 21:47
选择Option for target ,再选Debug选项,选择右边USE后面的单选框即可。
点赞  2018-4-17 11:52
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复