这么一个程序跑起来慢的要死

[复制链接]
3642|23
 楼主| yszong 发表于 2013-5-29 19:54 | 显示全部楼层 |阅读模式
DSP是6713,核心跑200MHz,EMIF跑100MHz。
图像大小1M x 16bit,处理比较简单,就是从25MHz的SRAM读出数据,与一个固定的阈值比较。数据小于阈值什么也不做,如果大于阈值就在SDRAM中记录一下地址。
而且99。99%的数据都是小于阈值的,比一下就扔了。
可就这么一个程序跑起来慢的要死
spark周 发表于 2013-5-29 19:54 | 显示全部楼层
编译器优化参数
午夜粪车 发表于 2013-5-29 19:56 | 显示全部楼层
速度多少?
午夜粪车 发表于 2013-5-29 19:56 | 显示全部楼层
连2Hz都很困难。
zhaoxqi 发表于 2013-5-29 19:59 | 显示全部楼层
是不是犯了什么低级错误
huangchui 发表于 2013-5-29 19:59 | 显示全部楼层
硬件上的配置没问题吧
lizye 发表于 2013-5-29 20:10 | 显示全部楼层
应该没问题。
lizye 发表于 2013-5-29 20:10 | 显示全部楼层
zhaoxqi 发表于 2013-5-29 19:59
是不是犯了什么低级错误

是啊,我也估计,第一次接触TI的DSP
zhenykun 发表于 2013-5-29 20:14 | 显示全部楼层
用DMA吗?
 楼主| yszong 发表于 2013-5-29 20:14 | 显示全部楼层
没有用DMA。都是直接从EMIF读写。
jlyuan 发表于 2013-5-29 20:16 | 显示全部楼层
啥意思?
 楼主| yszong 发表于 2013-5-29 20:17 | 显示全部楼层
就是for循环读1M个数,用if判断一下大小。
heweibig 发表于 2013-5-29 20:19 | 显示全部楼层
试试每个for循环中判断多个数来减少for的个数
 楼主| yszong 发表于 2013-5-29 20:19 | 显示全部楼层
试了,丝毫没有提速
lizye 发表于 2013-5-29 20:21 | 显示全部楼层
我写了个代码试了试,从移动硬盘读取1M x 8bit的文件 检测阀值,大部分6-7ms就能检测完了,偶尔几次有时间较长50ms,可能任务被切出去了 哈哈
平台性能
DDR     396MHz
CPU    405MHz
----------------------------------
数据量比楼主的少了一半,但是速度比楼主的快很多很多
shimx 发表于 2013-5-29 20:22 | 显示全部楼层
启动DMA或是CACHE吧。 同时最好不要一个一个数的比较。这样循环次数太多。
jiajs 发表于 2013-5-29 20:24 | 显示全部楼层
一次可以比较一组数据。
jiajs 发表于 2013-5-29 20:24 | 显示全部楼层
这一组可以并行处理,效率就会高多了
 楼主| yszong 发表于 2013-5-29 20:28 | 显示全部楼层
知道了,多谢楼上
 楼主| yszong 发表于 2013-5-29 20:28 | 显示全部楼层
结贴了~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

830

主题

11379

帖子

4

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