Main Content

Generate Code by Using the Quick Start Tool

The Quick Start tool helps you prepare a model for generating readable, efficient code. To start the tool, open the Embedded Coder® app. On the C Code tab, click Quick Start.

After you start the tool, you must answer these questions about the code that you want to generate:

  • What is the model or subsystem for code generation?

  • What is the type of code output for your generated code?

  • Does your application require reentrant, multi-instance code?

  • What is the target hardware processor type?

  • What is your primary code generation objective?

The tool validates your choices against the model and presents the parameter changes required to generate code. If you choose to generate code, the tool applies the parameter changes to your configuration set and generates the code. After code generation, you can view the code generation report and find information on building, customizing, optimizing, and packaging the code. To further customize your generated code, click Finish, and then use the Embedded Coder app with the Code perspective environment. The Code perspective provides the tools to control the names and representation of the model data and functions in the generated code. For more information, see C Code Generation Configuration for Model Interface Elements.

Quick Start Model Analysis

At each step of the quick start process, the tool validates your model against your selections. The tool checks for model conditions that prevent you from proceeding with code generation. During the analysis step, the tool must also examine your model or subsystem for answers to the following questions. The answers help determine the best configuration for the deployment of your code.

How many sample rates are in your system?

The Quick Start tool evaluates your model to determine the number of periodic sample rates in your system.

Single rateYour model has only one periodic sample rate. The generated code has a single-entry point function that runs at the time interval of the sample rate.
Multirate

Your model has more than one periodic sample rate. It is possible that the generated code does not execute at the same time intervals. After the analysis step, you can choose to generate a single-entry point function for each of the sample rates or generate a different entry point function for each sample rate.

If you choose to generate multitasking code, the code generator produces multiple entry-point functions. These functions run as multiple tasks. Each entry-point function is called at an interval defined by the sample rate that is configured in the model.

If your model contains an asynchronous rate, an additional entry-point function is generated to run at the specific interrupt time.

For more information about sample rates, see Time-Based Scheduling and Code Generation.

Does your system contain continuous states?

The Quick Start tool evaluates your model for continuous blocks to determine the correct solver to use.

NoIf your system does not contain continuous states, the Quick Start tool configures your model to use a fixed-step discrete solver for code generation if you have not selected one.
YesIf your system does contain continuous states, the Quick Start tool configures your model to use a fixed-step continuous solver for code generation if you have not selected one. The tool also selects the SupportContinuous configuration parameter.

For more information on solvers, see Solver Selection Criteria.

Did you configure your system for export function calls?

The Quick Start tool evaluates your model to see if scheduler code must be generated.

NoIf you did not configure your system for export function calls, the generated code includes code for the system algorithm and the scheduler code.
YesIf you configured your system for export function calls, the generated code includes code for the system algorithm. You can manually write the scheduler code or generate it from other models.

For more information, see Export-Function Models Overview.

Does your system contain referenced models?

The Quick Start tool evaluates your model to see if it depends on code from other models.

NoIf your system does not contain referenced models, the generated code does not depend on code from other models.
YesIf your system contains referenced models, the generated code for your model depends on other modules generated from referenced models. The code generator can optimize the generated code because it is aware of the relationship between your model and the referenced models. When the Quick Start tool applies configuration parameter changes to your model, it also applies the changes to the referenced models.

For more information, see Generate Code for Model Reference Hierarchy.

Configuration Parameter Changes for Models That Have a Configuration Reference

To apply configuration parameter changes to a model that has an active configuration reference, the Quick Start tool:

  • Creates a Simulink.ConfigSet object QuickStart_timestamp in the workspace or data dictionary that contains the original configuration set. The new object is a copy of the original configuration set that has the parameter changes applied.

  • Creates a Simulink.ConfigSetRef object that points to the new configuration set object.

  • Attaches the new configuration reference to the model and makes it the active configuration.

  • If your system contains referenced models that share your original configuration set, the tool attaches the new configuration reference to the referenced models and makes the new configuration reference the active configuration.

To restore the original configuration set, activate the original Simulink.ConfigSetRef object.

Note

If the Quick Start tool creates the configuration set object in the MATLAB® workspace, you must save the object to preserve the configuration set after the MATLAB session ends. For more information, see Save a Configuration Set.

Next Steps

After you generate code by using Quick Start tool, possible next steps are:

To control the names and representation of the model data and functions in the generated code, use the Code Mappings editor and the Model Data Editor in the Embedded Coder app. For more information, see C Code Generation Configuration for Model Interface Elements.

Related Topics