2017-02-17 123 views
1

我想通过Matlab simulink将我现有的C代码(或任何其他文本)导入到我生成的代码中。我有一些使用C编写的任务,但是在将来我想用matlab我在simulink工作,我可以编译模型,但我想使用一些我以前在C中编写的特殊函数(因为指针等)。Matlab simulink c代码生成

问题是,我不知道如何将这些文本放入模型中,并且在代码生成后,这些文本保持原始格式并放置在预期的行中。

enter image description here 而且我想什么:

enter image description here

+0

所以你想让Simulink中的输入和输出生成“C函数”块? –

+0

“C函数”块是一个独立的c代码。例如,在这个块中,我想要初始化串行通信,写入日志文件,调用其他已经写好的函数等。当然,我可以手动将这些部分复制粘贴在builded代码,但我想将它们集成到一个子系统或一个块中,并且如果将这个块放在simulink中,那么在构建函数之后,将存在这些块。 – iddqd

+0

但是,如果该块在simulink系统中没有影响,那么为什么您需要它? –

回答

0

您可以在此使用S-Function Builder实现。它允许创建C代码块,并在模型运行时进行编译。如果使用代码生成器,它会插入到生成的代码中。

我一般用它来调用我的外部代码或库中的函数,就像我创建的一些Raspberry Pi Driver blocks一样。

它为每个块生成.c,.h和.mex文件,而且非常笨重,但确实有效!

顺便说一句:如果只是使用外部指针,你可以愉快地使用ImportedPointer/ExportedPointer。我发现这适用于生成的代码和容器之间的变量。