打印

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

[复制链接]
2183|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 | 只看该作者
还有就是时钟是不是被修改了

使用特权

评论回复
5
xuyaqi| | 2017-5-7 15:46 | 只看该作者
仔细检查程序执行的内容,肯定能找出变慢的原因,正常单片机程序不会越来越慢。

使用特权

评论回复
6
linqing171| | 2017-5-7 19:41 | 只看该作者
抽样CPU的执行位置。
做个异步接口,使用中断,调用keil的内联函数,getreturnaddress, 把进入中断前的R14打印出来。
分析概率,看哪个地方变慢了。

如果是系统时钟变慢了,这个好解决啊,就是把所有的sfr dump出来一比较就可以了。

使用特权

评论回复
7
atidat|  楼主 | 2017-5-7 20:55 | 只看该作者
ayb_ice 发表于 2017-5-7 15:45
还有就是时钟是不是被修改了

时钟被修改怎么理解?是程序修改的时钟吗?

使用特权

评论回复
8
atidat|  楼主 | 2017-5-7 20:57 | 只看该作者
linqing171 发表于 2017-5-7 19:41
抽样CPU的执行位置。
做个异步接口,使用中断,调用keil的内联函数,getreturnaddress, 把进入中断前的R14 ...

实在是跟不上您的节奏,自己学的太浅了,上面的名词都不太懂。

使用特权

评论回复
9
study1234| | 2017-5-7 21:29 | 只看该作者
中毒了

使用特权

评论回复
10
郑凤| | 2017-5-8 14:23 | 只看该作者
努力深度理解中。。。。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

21

帖子

0

粉丝