MATLAB C++代码生成

5
我正在为我的DSP设计流程工作,其中过滤算法首先在MATLAB中建模,然后使用MATLAB编码器将其转换为实际的DSP硬件所需的C/C++代码。我认为这很基本。
因此,我的计划是编写自己的C主函数,该函数从ADC寄存器等获取输入,然后在我的主函数中调用生成的过滤函数。然后,我将在TI的CodeComposerStudio项目的源文件中包含filter.c和filter.h。
我已经使用一个简单的MATLAB函数测试了设计流程,该函数只需要两个数字并将它们相乘。现在对该函数运行codegen的结果非常疯狂。大约创建了20个文件。因此,当我向我的CCS项目添加源文件时,我实际上必须添加每个库文件?在我看来,这段代码不可能有效率?
我是否缺少允许MATLAB仅生成一个头文件和一个源实现的东西?生成的代码是否实际有效?有没有人真正使用MATLAB Coder进行实时DSP处理方面的经验?
谢谢。
编辑:我添加到我的CCS项目的唯一文件是MATLAB生成的.c和相关的.h文件。那不应该是一个相当简单的链接过程吗?有没有办法通过MATLAB生成一个makefile来帮助这个过程?
1个回答

3
MATLAB的代码生成利用了他们广泛而且实现良好的库。在开发时间方面,这可以为您创造很多效率。然而,MATLAB在这里的预期使用情况是桌面开发。如果您连接到MATLAB提供的库,则TI CCS构建链可能无法充分利用这些库,甚至可能无法连接。
我已经与CCS合作了很长时间,您将手动重新编码各种提示pragma和矢量化函数的重要部分。MATLAB无法帮助您,DSP与MATLAB的正常目标非常不同。对于一个干净的框架起点来说,它似乎也有些阻碍。我的建议是从头开始使用CCS,并使用MATLAB实现进行测试验证。

嗯,这不是我想听到的。所以你是在告诉我,如果我在我的MATLAB函数中只有像y = fir1(x)这样的内容,MATLAB Coder甚至也不能很好地工作?另外,请检查我的编辑。 - NickHalden
如果您没有链接到任何二进制文件,那么您的情况要好得多。我花了一周时间将CCS集成到我们的构建链中,并且我不记得其中的任何一分钟,因此很遗憾无法帮助您。如果您只是在CCS项目中包含一堆cpp文件,会发生什么情况呢? - totowtwo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接