打印

好慢

[复制链接]
876|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jlyuan|  楼主 | 2016-9-10 23:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DSP是6713,核心跑200MHz,EMIF跑100MHz。
图像大小1M x 16bit,处理比较简单,就是从25MHz的SRAM读出数据,与一个固定的阈值比较。数据小于阈值什么也不做,如果大于阈值就在SDRAM中记录一下地址。
而且99。99%的数据都是小于阈值的,比一下就扔了。
可就这么一个程序跑起来慢的要死

相关帖子

沙发
liliang9554| | 2016-9-10 23:05 | 只看该作者
编译器优化参数

使用特权

评论回复
板凳
午夜粪车| | 2016-9-10 23:07 | 只看该作者
速度多少?

使用特权

评论回复
地板
jlyuan|  楼主 | 2016-9-10 23:11 | 只看该作者
连2Hz都很困难。

使用特权

评论回复
5
zhaoxqi| | 2016-9-10 23:12 | 只看该作者
是不是犯了什么低级错误

使用特权

评论回复
6
zhanghqi| | 2016-9-10 23:14 | 只看该作者
硬件上的配置没问题吧

使用特权

评论回复
7
jlyuan|  楼主 | 2016-9-10 23:15 | 只看该作者
是啊,我也估计,第一次接触TI的DSP

使用特权

评论回复
8
zhangmangui| | 2016-9-10 23:16 | 只看该作者
硬件资源选定了  只能靠你的优化了

使用特权

评论回复
9
jlyuan|  楼主 | 2016-9-10 23:17 | 只看该作者
用DMA吗?

使用特权

评论回复
10
jlyuan|  楼主 | 2016-9-10 23:20 | 只看该作者

没有用DMA。都是直接从EMIF读写。

使用特权

评论回复
11
wuhany| | 2016-9-10 23:21 | 只看该作者
啥意思?

使用特权

评论回复
12
jlyuan|  楼主 | 2016-9-11 08:49 | 只看该作者
就是for循环读1M个数,用if判断一下大小。

使用特权

评论回复
13
wyjie| | 2016-9-11 08:51 | 只看该作者
试试每个for循环中判断多个数来减少for的个数

使用特权

评论回复
14
jlyuan|  楼主 | 2016-9-11 08:53 | 只看该作者
试了,丝毫没有提速

使用特权

评论回复
15
jiajs| | 2016-9-11 08:56 | 只看该作者
我写了个代码试了试,从移动硬盘读取1M x 8bit的文件 检测阀值,大部分6-7ms就能检测完了,偶尔几次有时间较长50ms,可能任务被切出去了 哈哈
平台性能
DDR     396MHz
CPU    405MHz
----------------------------------
数据量比楼主的少了一半,但是速度比楼主的快很多很多

使用特权

评论回复
16
huangchui| | 2016-9-11 08:59 | 只看该作者
启动DMA或是CACHE吧。 同时最好不要一个一个数的比较。这样循环次数太多。

使用特权

评论回复
17
zhaoxqi| | 2016-9-11 09:01 | 只看该作者
一次可以比较一组数据。这一组可以并行处理,效率就会高多了

使用特权

评论回复
18
jlyuan|  楼主 | 2016-9-11 09:02 | 只看该作者
知道了,多谢楼上

使用特权

评论回复
19
spark周| | 2016-9-11 09:04 | 只看该作者

楼主是用什么接口读取sdram?

使用特权

评论回复
20
jiaxw| | 2016-9-11 09:06 | 只看该作者

我觉得和CMD文件中你的堆栈分配,数据存储有关。因为我也遇到过这种问题,数据存储在SDRAM中感觉速度始终要慢一些

使用特权

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

本版积分规则

880

主题

12030

帖子

4

粉丝