c++ - MATLAB C++ 代码生成

标签 c++ c matlab code-generation

所以我正在为我的 DSP 设计流程,其中过滤算法首先在 MATLAB 中建模,然后使用 MATLAB 编码器转换为实际 DSP 硬件的 C/C++。我认为非常基本。

所以我的计划是编写我自己的 C 主函数,它从 ADC 寄存器等获取输入,然后在我的主函数中调用生成的过滤器函数。然后,我会在 TI 的 CodeComposerStudio 项目的源文件中包含 filter.c 和 filter.h。

我用一个简单的 MATLAB 函数测试了设计流程,该函数只需要两个数字并将它们相乘。现在在那个函数上运行 codegen 的结果是疯狂的。创建了大约 20 个文件。所以当我将源文件添加到我的 CCS 项目时,我实际上必须添加每个库,对吗?在我看来,这段代码不可能高效?

我是否遗漏了一些允许 MATLAB 仅生成一个简单的单 header 单源实现的东西?生成的代码真的有效吗?有没有人真正有过使用 MATLAB Coder 处理实时 DSP 的经验?

谢谢。


编辑:我添加到我的 CCS 项目中的唯一文件是 MATLAB 生成的 .c 和关联的 .h 文件。这不应该是一个非常简单的链接过程吗?无论如何,我可以通过 MATLAB 生成一个 makefile 来帮助完成这个过程吗?

最佳答案

MATLAB 的代码生成利用了其广泛且实现良好的库。就开发时间而言,这可以为您创造很多效率。但是,此处 MATLAB 的预期用例是用于桌面开发。如果您链接到 matlab 提供的库,TI CCS 构建链可能不会充分利用这些库,如果它甚至可以链接的话。

我与 CCS 打过很多交道,您将使用各种提示编译指示和矢量化函数手工重新编码重要部分。 MATLAB 帮不了你,DSP 是一个与 MATLAB 的正常目标截然不同的野兽。它似乎也妨碍了框架的干净启动。我的建议是从头开始使用 CCS,并使用 matlab 实现进行测试验证。

关于c++ - MATLAB C++ 代码生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6390087/

相关文章:

c - 为什么我的 C 程序可以在 "git bash"运行,但不能在 "cmd"运行?

matlab - 在 MATLAB 中查找一行中唯一的零的列号

oop - Matlab相当于调用内部静态类

c++ - libvlc_media_new_path 不工作

c - ESP8266 GPIO 16 不能用作按钮

c++ - 为什么我会收到 IntelliSense 错误以及如何修复或隐藏它们?

将 C 中的迭代算法更改为递归

mysql - Excel 未保存为数字格式(MySQL 到 Excel)

c++ - 动态声明数组背后的静态声明

c++ - std::list 的重载括号运算符