我是靠谱客的博主 默默羽毛,最近开发中收集的这篇文章主要介绍关于DSP中的动态内存,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近一直在DSP上实现OI算法(正交迭代),由于OI算法中涉及到很多矩阵运算,并且在C语言中,又没有像Matlab中那么多矩阵操作的函数,所以实现起来比较麻烦。在DSP实现这个算法时,可以有几个方法去实现。

 

第一种:将Matlab和DSP连接起来;

第二种:将Opencv加载到DSP中(即emcv);

第三种:自己写矩阵运算的函数。

但由于本人用的板子的问题,前两种都运行不了,所以采用自己写矩阵操作函数。首先定义了一个矩阵结构体,然后声明为指针,在后面很多的矩阵操作函数中都是传递矩阵地址来完成。

在本算法中特别是在矩阵操作这块涉及到很多malloc函数,虽然很多人不建议在DSP中使用malloc函数,但是由于用到很多矩阵,要每个都去静态分配地址的话会很乱,所以还是使用了malloc函数。刚开始时,我是在VC6.0中实现的,没感觉到malloc会出现什么问题,当我把程序拷到DSP中时,就出现问题了,就是动态内存不够用,所以一直在寻找如何增加动态内存。去网上找相关的信息却很少,可能这个问题很简单,但我问过周围的同学,却都没遇到过,所以还是自己去寻找解决办法。最后不经意间看到了一个解决办法:

 

我用的是CCS2.0,在菜单Project->Build Options->Linker->Heap size。改这个大小就可以了。

 

但是在运行时发现malloc函数确实存在问题,就是释放后的资源怎么能在整合成比较大的块,这是一个需要优化的地方。在寻找解决办法……

 

而对于DSP/BIOS中关于动态内存问题的解决办法,可以参考

http://processors.wiki.ti.com/index.php/Creating_Dynamic_Objects_and_Threads_in_BIOS#Specify_placement_of_DSP.2FBIOS_objects

 

最后

以上就是默默羽毛为你收集整理的关于DSP中的动态内存的全部内容,希望文章能够帮你解决关于DSP中的动态内存所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部