打印

[DSP] DM6446芯片DSP端运行函数卡死

[复制链接]
152|2
跳转到指定楼层
楼主
 楼主 | 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芯片的内存问题,应该具体怎么解决,或者有没有可能是其他问题,希望各位赐教

使用特权

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

使用特权

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

使用特权

评论回复
扫描二维码,随时随地手机跟帖
*滑动验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表
快3注册邀请码tt 竹山县| 彰化市| 安化县| 淮南市| 萨嘎县| 舞阳县| 陆川县| 易门县| 南和县| 会昌县| 万年县| 永安市| 来宾市| 将乐县| 龙胜| 保亭| 西平县| 崇明县| 冀州市| 前郭尔| 咸丰县| 扶沟县| 新竹市| 福泉市| 安新县| 南召县| 千阳县| 邵武市| 弥渡县| 溧阳市| 汪清县| 五指山市| 新巴尔虎左旗| 彰化县| 武山县| 大港区| 衡阳市| 银川市| 东乡| 彰化县| 德州市|