执行过去也就是逐行执行,不进去但是执行,比如整个函数当一步执行完
执行出来是函数内部出来,虽然函数内部执行到一半,但是用了这就直接执行完函数内部其他步骤并返回出来
挂起是让正在执行的程序停下来,比如在while循环里,挂起后黄色光标在哪就是程序执行到哪
黄色-执行到哪 是即将执行该句 但并未执行
绿色-光标
上图是从main调用了delay,所以堆栈顺序也是这样
上图中是各窗口在程序上面都有
如果添加函数进watch窗口,那么value显示函数的入口地址
可以选中后拖进watch
上图中是右键选十六进制显示
优化选项最好 选level0 也就是不优化 因为如果优化等级高,比如不调用的函数编译的时候就不编译了,或者debug时有些变量值在watch窗口里不显示,显示not in scope这就是和优化有关,当然也可能是变量没用到
上图可以查看一些寄存器的值
上三张图中,最好也设置好后两项,然后keil窗口最大化在右下角可以显示时间。然后可以设置断点,查看执行时间
上图中,如果不知道数组的地址,可以将其拖入watch窗口,数组名对应的就是数组地址
设置好时钟和优化,可参考查看执行时间那里设置,就可以进行上述的中断执行信息查询。可以让程序一直运行,然后看触发中断的情况
上图中必须是全局变量,设置圈出来的两个,断点会停留在下一行代码,因为读或写要完成才会停,虽停在下一行但是下一行并未执行
上面两张图,例子中一次中断接收一个字符,完成一次完整的中断服务函数,因为设置了断点,虽然电脑还在发后面的ELLO但是CPU在第一个字母H的中断服务函数内断点停止并不能响应后面的中断,所以不可以接收完整HELLO。还有个例子就是USB握手,A传给B,B一定时间内回复A完成握手,但是调试时候B停在了断点无法完成握手。