微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > KEIL调试运行到调用子程序的指令后,没有跳到子程序里?

KEIL调试运行到调用子程序的指令后,没有跳到子程序里?

时间:10-02 整理:3721RD 点击:
我在用KEIL调试汇编语言时遇到一个问题,在用单步调试运行到调用子程序的指令后,没有跳到子程序里,这样导致了我无法看到子程序内各条指令的执行情况。那位大侠知道怎么解决,望不吝赐教。

Keil单步调试有3种:Step(F11)、Step Over(F10)、Step Out(Ctrl+F11)。Step是真正的单步,遇到函数调用会进入函数内部执行。Step Over是执行一条语句,如果这条语句是个函数调用,则整个被调用的函数全部执行完,效果相当于在下一条语句前设置断点。StepOut是从一个函数中跳出,效果相当于全速运行,遇到“return”等函数指令后停止,如果一直没遇到就会一直运行。
如果你用Step Over,就会出现你说的情况。请使用Step单步调试。如果不是这个原因,可以把代码或者工程贴出来,看看是你软件的问题还是代码的问题

可能是子程序条件不成立,可以查看寄存器是否符合条件;也可能是单步默认调试模式直接把子程序执行完并返回原点,设置中断点可以解决,或者试下F10、F11单步总有一个行

果真如此,谢谢,问题解决了。分给了你了,因为你的回答比另一个的更详细,易懂

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top