[求助] 单片机在用调试器debug的时候,在不打断点的状态下的运行速度是否和实际速度一样?

飞鸿浩劫   2016-7-13 18:56 楼主
stm8用stlink调试的时候,发现即便不打断点的时候,运行速度和实际上电运行的速度不一样,调试的时候在有的地方慢很多,是错觉?

回复评论 (16)

全速运行应该就差不多了
点赞  2016-7-13 19:55
应该不会的,我之前调试都很好,如果你觉得仿真不好,就用printf,可以实时观察你要的
点赞  2016-7-13 20:35
是这样的,调试的时候,有可能你第一条语句执行完,等一会儿才执行第二条语句(我说的是单步调试哦)。有时候虽然你在执行函数实现的那条语句,但是实际是跳进函数里面执行了,所以感觉有点慢吧。
点赞  2016-7-13 20:44
引用: huaiqiao 发表于 2016-7-13 20:44
是这样的,调试的时候,有可能你第一条语句执行完,等一会儿才执行第二条语句(我说的是单步调试哦)。有时 ...

比如delay60ms后打断点,发现不止延时了60ms……但是有的部分速度又很正常,比如定时器测频的时候
点赞  2016-7-13 21:05
引用: 飞鸿浩劫 发表于 2016-7-13 21:05
比如delay60ms后打断点,发现不止延时了60ms……但是有的部分速度又很正常,比如定时器测频的时候

这个不一定很准的,因为这种延时本来就不是很准确,我想你应该明白。其次还有语句执行的时间呢。等等之类的吧,想必都会有一定的影响吧。
点赞  2016-7-13 21:12
引用: huaiqiao 发表于 2016-7-13 21:12
这个不一定很准的,因为这种延时本来就不是很准确,我想你应该明白。其次还有语句执行的时间呢。等等之类 ...

感觉定时器倒是准能正常测频,延时简直差几十倍……delay60ms在debug的时候要几分钟……
点赞  2016-7-13 22:26
引用: 飞鸿浩劫 发表于 2016-7-13 22:26
感觉定时器倒是准能正常测频,延时简直差几十倍……delay60ms在debug的时候要几分钟……

没有吧,哪有这么长时间啊。我还没遇到过,你的stm8我没用过。。。。。
点赞  2016-7-13 22:31
引用: huaiqiao 发表于 2016-7-13 22:31
没有吧,哪有这么长时间啊。我还没遇到过,你的stm8我没用过。。。。。

俺也刚用stm8,发现很奇怪……
点赞  2016-7-14 08:48
引用: 飞鸿浩劫 发表于 2016-7-14 08:48
俺也刚用stm8,发现很奇怪……

你用iar还是stvd?这个是不是有像keil一样的,可以看那个sec的。如下的图片,你看看这是keil当中的,我的没有你说的几分钟的。所以我好想也没怎么关注过,这个时间,总之我的是挺短的时间在debug的时候就执行完了。从第一句,到第二句,您关注下这个时间的变化。

111.png
点赞  2016-7-14 09:53
引用: huaiqiao 发表于 2016-7-14 09:53
你用iar还是stvd?这个是不是有像keil一样的,可以看那个sec的。如下的图片,你看看这是keil当中的,我的 ...

这个sec不像是真实的(一直在变),像是模拟运行过程中的(执行一下停止一下)时间
点赞  2016-7-14 10:02
引用: 飞鸿浩劫 发表于 2016-7-14 10:02
这个sec不像是真实的(一直在变),像是模拟运行过程中的(执行一下停止一下)时间

其实我没关注过这个时间,只是我知道每执行一句,它就在变。我更加关注debug的watch窗口等等的。O(∩_∩)O哈哈~
点赞  2016-7-14 10:56
引用: huaiqiao 发表于 2016-7-14 10:56
其实我没关注过这个时间,只是我知道每执行一句,它就在变。我更加关注debug的watch窗口等等的。O(∩_∩) ...

delay等的急人本来,stm8的printf也是龟速
点赞  2016-7-14 10:58
从来不用什么printf。。
仿真时进入断点有个时间差
点赞  2016-7-14 12:17
引用: huo_hu 发表于 2016-7-14 12:17
从来不用什么printf。。
仿真时进入断点有个时间差

龟速printf,内部是咋弄得我不清楚,慢倒是真正的感受,换成串口明显飞快
点赞  2016-7-14 19:32
检查一下你延时程序里的变量的数值和你定义的数据类型是否匹配。延时程序出错,大多是这种原因。
点赞  2016-7-15 15:24
引用: bilaoxjtu 发表于 2016-7-15 15:24
检查一下你延时程序里的变量的数值和你定义的数据类型是否匹配。延时程序出错,大多是这种原因。

实际上电运行的延时正常,调试的时候延时不正常……数据类型没注意,8位的延时几十个单位而已
点赞  2016-7-15 17:56
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复