You can reuse the generated code for identical subsystems that occur in multiple instances within a model and across referenced models. For more information about code generation of subsystems for code reuse, see Control Generation of Functions for Subsystems. If you want your S-function to support code reuse for a subsystem, the S-function must meet these requirements:
The S-function must be inlined.
Code generated from the S-function must not use static variables.
The S-function must initialize its pointer work vector in
mdlStart
and not before.
The S-function must not be a sink that logs data to the workspace.
The S-function must register its parameters as run-time parameters in
mdlSetWorkWidths
. (It must not use
ssWriteRTWParameters
in its mdlRTW
function for this purpose.)
The S-function must not be a device driver.
In addition to meeting the preceding requirements, your S-function must set the
SS_OPTION_WORKS_WITH_CODE_REUSE
flag in the ssSetOptions
function. This flag indicates that your
S-function meets the requirements for subsystem code reuse.