关于代码执行速度越来越慢的问题

[复制链接]
2931|9
 楼主| atidat 发表于 2017-5-7 08:26 | 显示全部楼层 |阅读模式

在调试以STM32F103为CPU的电路板时,发现代码的执行速度越来越慢。具体表现为:

  1)刚开始,所有配置初始化和功能模块初始化,都在几秒内完成

  2)随着调试次数增加,上述的执行时间逐渐增加,到现在竟然需要90秒左右的时间,让人难以接收。

所以,我猜测是不是内存泄漏了,导致代码执行速度越来越慢?又或是其他的原因?

恳亲大家赐教
ayb_ice 发表于 2017-5-7 10:22 来自手机 | 显示全部楼层
是不是某个中断太频繁了
 楼主| atidat 发表于 2017-5-7 10:28 来自手机 | 显示全部楼层
ayb_ice 发表于 2017-5-7 10:22
是不是某个中断太频繁了

中断种类,数量确实挺多的。不过是怎么造成执行速度越来越慢的呢?我这里的执行速度变慢不是一次实验中出现的,而是几十次的上电,执行,断电的完整实验出现的。就和电脑用久了,速度变慢效果一样。
ayb_ice 发表于 2017-5-7 15:45 来自手机 | 显示全部楼层
还有就是时钟是不是被修改了
xuyaqi 发表于 2017-5-7 15:46 | 显示全部楼层
仔细检查程序执行的内容,肯定能找出变慢的原因,正常单片机程序不会越来越慢。
linqing171 发表于 2017-5-7 19:41 | 显示全部楼层
抽样CPU的执行位置。
做个异步接口,使用中断,调用keil的内联函数,getreturnaddress, 把进入中断前的R14打印出来。
分析概率,看哪个地方变慢了。

如果是系统时钟变慢了,这个好解决啊,就是把所有的sfr dump出来一比较就可以了。
 楼主| atidat 发表于 2017-5-7 20:55 | 显示全部楼层
ayb_ice 发表于 2017-5-7 15:45
还有就是时钟是不是被修改了

时钟被修改怎么理解?是程序修改的时钟吗?
 楼主| atidat 发表于 2017-5-7 20:57 | 显示全部楼层
linqing171 发表于 2017-5-7 19:41
抽样CPU的执行位置。
做个异步接口,使用中断,调用keil的内联函数,getreturnaddress, 把进入中断前的R14 ...

实在是跟不上您的节奏,自己学的太浅了,上面的名词都不太懂。
study1234 发表于 2017-5-7 21:29 | 显示全部楼层
中毒了
郑凤 发表于 2017-5-8 14:23 | 显示全部楼层
努力深度理解中。。。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

21

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部