【发布时间】:2013-09-27 19:59:47
【问题描述】:
我正在尝试将现有的已编译 C 库(Windows x64 上的 .dll)与 Simulink 一起使用。我已经编写了一个基本库以及必要的 2 级 S-Function(.m 文件)和代码生成翻译文件(.tlc)。我的代码在模拟中运行良好,并且代码生成执行没有错误,尽管我在 .tlc 文件中指定的自定义代码都没有最终出现在输出中。但是,如果我的任何 .tlc 文件中存在语法错误,代码生成就会失败,因此它至少会解析文件。参考代码生成的示例代码并没有发现我似乎遗漏的任何内容。
考虑到这里的文件数量和代码量,我将所有内容都放在a Github repository 中。如果您在运行 x64 MATLAB 2011b 或更高版本的 Windows 上,您应该能够立即运行所有内容。 TestLibTest_grt_rtw/TestLibTest.c:TestLibTest_output() 中的最终输出应包含对 TestLibGet() 的两次调用,由 TestLibGet.tlc 指定。
【问题讨论】:
-
TestLibGet.tlc 中有对 Get() 函数的调用。 TestLibGet() 的调用在哪里?
-
TestLib.h中公开的 3 个函数是Get()、Set()和Incr(),这就是为什么Get()在TestLibGet.tlc中使用的原因。TestLibGet由Level-2 MATLAB S-Function块在TestLibTest.mdl中调用。 -
您可以在生成的代码中获得 tlc 文件中的内容。为什么您期望在生成的代码中出现 TestLibGet()?
标签: c matlab embedded matlab-coder