MATLAB: Code generation from level-2 s-function without tlc-file

code generationlevel-2 s-functionxpc

Hello,
I`m using R2012b. I have a problem generating code for a xpc-target system. I have written a level 2 Matlab S-function in which I have called a c-code (which I have mex-ed before). I can call this C-Code inside the Simulink Matlab S-Function and it runs fine on the normal mode.
But now I have tried to compile this model to be run in a xpc-target system. I have added the corresponding c-file by parameters-> code generation -> custom code -> include list of additional -> source file = the c-file and -> libraries = the dll-file and the mexw64-file. But when building the model, I get the error: The corresponding "xxxx.tlc" file for the Matlab S-function "xxx" in block "xxx" must be located in the current working directory, the Matlab S-function directory, or the directory "xxx\tlc_c".
It is not possible to automatically create a tlc-file, when using a Matlab S-function. Is it really necessary to write the tlc-file manually? If yes, for what did I have to write the S-function? Could I call a C-code (legacy code) in an tlc-file?
Thanks in advance for any answers!
Bettina

Best Answer

In order to use this with code generation, everything you call must be in C (i.e. no M). The only exception would be if you were using a MATLAB function block.
In your case, the myfunc and myconstraint MATLAB files must also have a C equivalent. Without this, it would be hard to proceed.