Main Content

Generated Functions in a Model Reference Hierarchy

When you generate code for a model, the code generator creates a subfolder <model>_grt_rtw (Simulink® Coder™) or a subfolder <model>_ert_rtw (Embedded Coder®) in your current working folder and places source code files in this folder. The generated code is in these two primary files:

  • <model>.c — This file contains the algorithm code. The generated code is mainly comprised of model data and model entry-point functions that are accessible to a caller by including the <model>.h file. You can call the generated model entry-point functions from external code or from a version of the generated main function that you modify.

  • <model>.h — This file contains the extern declarations for block outputs, continuous states, model output, entry points, and timing data. For more information about data structures, see Data Structures in the Generated Code.

When you generate code for a referenced model hierarchy, the code generator places the code for the top model in the subfolder <model>_grt_rtw (Simulink Coder) or the subfolder <model>_ert_rtw (Embedded Coder) in your current working folder and places the code for referenced models in an slprj folder.

Generated Functions in a Top Model

In a model reference hierarchy, the code generator commonly produces these functions for a top model.

Function NameDescription
<model>_stepExecution function that contains the output and update code for the blocks in a Simulink model. This function calls the referenced model function. The code generator produces this function by default. To generate separate functions for output and update code, clear the model configuration parameter Single output/update function. For more information, see model_step.
<model>_initializeInitialization function that executes the initialization code for a Simulink model. The code generator calls this function once at the start of the application code. This function might call the <ref_model>_Init function of a referenced model to initialize states and <ref_model>_initialize for zero initialization. For more information, see model_initialize.
<model>_terminateTermination function that contains the code to turn off a system. For ERT-based models, you can suppress generation of this function by clearing the model configuration parameter Terminate function required (Embedded Coder). For more information, see model_terminate.

Generated Functions in a Referenced Model

The functions generated for a referenced model are internal functions used by the code generator. These functions are not intended to interface with external code. In a model reference hierarchy, the code generator commonly produces these functions for a referenced model.

Function NameDescription
<ref_model>_InitInitialization function in a referenced model that is called from a top model entry-point function <model>_initialize. The <model>_initialize of the top model initializes the code for the model reference hierarchy and calls the <ref_model>_Init of the child model to initialize the states to their initial condition.
<ref_model>Execution function that serves a similar purpose as <model>_step of a top model but is not an entry-point function for the external code. The two functions differ in terms of the scope. The <ref_model> function computes the outputs from internal state and updates that state. The <model>_step does the same but calls the individual <ref_model> function of the referenced models.
<ref_model>_initializeInitialization function that executes the initialization code for a referenced model. The code generator calls this function from a top model entry-point function <model>_initialize. The <model>_initialize of the top model initializes the code for the model reference hierarchy and calls the <ref_model>_initialize of the child model to zero-initialize the referenced model code.

Related Topics