我正在尝试使用Simulink使用现有的已编译C库(Windows x64上的.dll)。我编写了一个基本库以及必要的2级S函数(.m文件)和代码生成转换文件(.tlc)。我的代码在模拟中工作正常,代码生成执行没有错误,但.tlc文件中指定的任何自定义代码都不会在输出中结束。但是,如果我的任何.tlc文件中存在语法错误,则代码生成失败,因此它至少会解析文件。引用代码生成的示例代码并未发现我似乎缺少的任何内容。
考虑到这里的文件数量和代码量,我已将所有内容都放在a Github repository中。如果你在Windows上运行x64 MATLAB 2011b或更新版本,你应该可以运行所有内容。 TestLibTest_grt_rtw/TestLibTest.c:TestLibTest_output()
中的最终输出应包含对TestLibGet()
的两次调用,由TestLibGet.tlc指定。
答案 0 :(得分:0)
我认为你的意思是“Get()”不会从生成的代码中调用。您链接的github存储库中的tlc文件没有正确的行结尾。解决之后,生成的代码中会出现对Get()的调用。修复此问题可能是特定于平台的。如果您在平台中的简单代码编辑器中打开tlc文件,您应该能够在正确的位置看到新行。如果您看到像^ M这样的字符,则需要用新行替换它。