stm8用stlink调试的时候,发现即便不打断点的时候,运行速度和实际上电运行的速度不一样,调试的时候在有的地方慢很多,是错觉?
应该不会的,我之前调试都很好,如果你觉得仿真不好,就用printf,可以实时观察你要的
是这样的,调试的时候,有可能你第一条语句执行完,等一会儿才执行第二条语句(我说的是单步调试哦)。有时候虽然你在执行函数实现的那条语句,但是实际是跳进函数里面执行了,所以感觉有点慢吧。
比如delay60ms后打断点,发现不止延时了60ms……但是有的部分速度又很正常,比如定时器测频的时候
这个不一定很准的,因为这种延时本来就不是很准确,我想你应该明白。其次还有语句执行的时间呢。等等之类的吧,想必都会有一定的影响吧。
感觉定时器倒是准能正常测频,延时简直差几十倍……delay60ms在debug的时候要几分钟……
没有吧,哪有这么长时间啊。我还没遇到过,你的stm8我没用过。。。。。
你用iar还是stvd?这个是不是有像keil一样的,可以看那个sec的。如下的图片,你看看这是keil当中的,我的没有你说的几分钟的。所以我好想也没怎么关注过,这个时间,总之我的是挺短的时间在debug的时候就执行完了。从第一句,到第二句,您关注下这个时间的变化。
这个sec不像是真实的(一直在变),像是模拟运行过程中的(执行一下停止一下)时间
其实我没关注过这个时间,只是我知道每执行一句,它就在变。我更加关注debug的watch窗口等等的。O(∩_∩)O哈哈~
delay等的急人本来,stm8的printf也是龟速
从来不用什么printf。。
仿真时进入断点有个时间差
龟速printf,内部是咋弄得我不清楚,慢倒是真正的感受,换成串口明显飞快
检查一下你延时程序里的变量的数值和你定义的数据类型是否匹配。延时程序出错,大多是这种原因。
实际上电运行的延时正常,调试的时候延时不正常……数据类型没注意,8位的延时几十个单位而已