MATLAB: What do you mean by “Inlining s-function”

rtwsimulinksimulink coder

What do you mean by "Inlining s-function"?

Best Answer

Typically C S-functions are separate MEX-files (DLLs) - if you do not inline them (by providing a TLC-file for it), then the generated code will call into this DLL whenever the block methods need to be executed. The S-function methods require various arguments, one of which is the SimStruct pointer 'S' - this is a fairly large data structure that needs to be passed around. Therefore calling into the S-function DLL from the generate code can produce a large overhead. Instead, providing a TLC-file will result in the methods corresponding to the S-function being inlined (or added) into the model.c file directly. There is no need to make additional calls into external DLLs. Also, there is no need for the SimStruct pointer to be maintained. Therefore, models with all inlined S-functions generate much more efficient code.