【问题标题】:MATLAB C++ Code GenerationMATLAB C++ 代码生成
【发布时间】:2011-09-17 10:04:12
【问题描述】:

所以我正在为我的 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 生成一个有助于此过程的生成文件吗?

【问题讨论】:

    标签: c++ c matlab code-generation


    【解决方案1】:

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

    我与 CCS 合作过很多次,您将使用各种提示编译指示和矢量化函数手动重新编码重要部分。 MATLAB 帮不了你,DSP 与 MATLAB 的普通目标完全不同。它似乎也阻碍了框架的干净启动。我的建议是从头开始使用 CCS,并使用 matlab 实现进行测试验证。

    【讨论】:

    • 嘘。不是我希望听到的所以你告诉我,如果我的 MATLAB 函数中的所有内容都像 y = fir1(x) ,那么 MATLAB Coder 甚至都无法正常工作?另外,请检查我的编辑。
    • 哦,如果您没有链接到任何二进制文件,那么您的状态会好很多。我花了一周的时间将 ccs 集成到我们的构建链中,但我一分钟都记不起来了,所以很遗憾我无法帮助你。当您只在 CCS 项目中包含一批 cpp 文件时会发生什么?
    猜你喜欢
    • 2017-07-06
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 2013-08-01
    • 1970-01-01
    • 2016-03-25
    • 2013-03-29
    • 2021-05-13
    相关资源
    最近更新 更多