打印
[DSP]

DM6446芯片DSP端运行函数卡死

[复制链接]
581|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Kudosherlock|  楼主 | 2019-11-1 16:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
新手刚接触DSP,想用开发板做一个函数,但是遇到了DSP端函数跑不出结果的问题。
开发环境:艾睿合众SEED-DTK6446实验箱,芯片型号为DM6446
提供的视频采集显示的例程完成的内容是从摄像头采集图像,然后将图象显示在开发板的显示屏上。其中包含三个部分:codecs算法包, servers算法封装包, video_app应用程序(ARM端)。
我在codecs当中的video_copy.c文件中加入了自己写的二维FFT处理函数,其他部分未做修改,想要完成一个从摄像头采集图像、对图像进行FFT、FFT之后的幅度结果显示在显示屏上这样的程序。
在实际调试的过程中发现显示屏上完全没有结果显示。经过测试,发现如果将自己写的二维FFT函数变换的区域大小减小到64x64以下,而其他部分不进行处理时,程序可以正常运行,显示屏上出现的现象就是一部分处理过,另一部分未处理的图象。但当我将FFT的尺度变大到128x128的时候,虽然仍然正常运行,但是显示屏上的视频出现了明显的卡顿情况,帧率小于2fps。
尺度再变大到256x256时,显示屏上就没有任何结果显示了。经过测试,程序应该是卡在了ARM调用DSP函数的时候,也就是我修改过的函数没有跑出结果,导致ARM端的程序没有办法继续运行,使得后续的显示部分也没有运行起来。
所以问题还是出在我修改过的2dFFT函数上面。下面是我个人的分析:
1.FFT尺度变大导致视频出现卡顿,说明在此时FFT运行速度较慢导致跟不上视频帧率从而出现卡顿,说明是算法本身受到了内存等资源的限制。
2.但是问题在于直观上讲,以DSP芯片的处理能力不应该处理一个二维FFT就卡慢,甚至跑不出结果。所以暂时不知道该如何解决,是应该修改我的二维FFT算法,还是应该解决DSP芯片的内存问题。
如果修改算法,能否推荐一个现有的纯C语言的算法(我感觉TI应该有函数库但是不太找得到也不太会用)
如果解决DSP芯片的内存问题,应该具体怎么解决,或者有没有可能是其他问题,希望各位赐教

使用特权

评论回复

相关帖子

沙发
deadtime| | 2019-11-2 16:34 | 只看该作者
优化一下算法,可能是算法不合适导致的资源占用过大

使用特权

评论回复
板凳
zhangmangui| | 2019-11-3 10:22 | 只看该作者
不行再MATLAB或者VS上面跑跑看看  你想实现部分的内容

使用特权

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

本版积分规则

2

主题

3

帖子

0

粉丝