Use Configuration Reference to Select Code Generation Target
This example shows how to use a configuration reference to select a code generation target for a model reference hierarchy without modifying individual models.
Open Example Model
Open the example model ConfigSetCodegenTargetTop
.
open_system('ConfigSetCodegenTargetTop');
To open the active configuration set for the model ConfigSetCodegenTargetTop
, on the Modeling tab, click the Model Configuration Parameters button.
Because the model is using a referenced configuration, the Configuration Reference dialog box opens and displays a read-only view of the referenced configuration set. Information at the top of the dialog box indicates that the model is using the configuration set, Reference
, located in the data dictionary, ConfigSetRefData.sldd
. In this example, Reference
is another configuration reference, Configuration_ERT
.
In the model editor, right-click the Model block, Amplifier
, and select Open As Top Model. This opens the referenced model ConfigSetCodegenTargetRef
.
open_system('ConfigSetCodegenTargetTop/Amplifier');
Open the active configuration set for this model. The name and location for the referenced configuration is the same as in ConfigSetCodegenTargetTop
.
Open the Referenced Configuration Set
If you need to change and apply parameter values in the configuration set, open Configuration_ERT
for edit in the Configuration Parameters dialog box by clicking the Model Configuration Parameters icon at the top of either of the Configuration Reference dialog boxes.
Generate Code for ERT Target
The referenced configuration set is customized for ERT code generation. To generate code, press Ctrl+B.
slbuild('ConfigSetCodegenTargetTop');
### Searching for referenced models in model 'ConfigSetCodegenTargetTop'. ### Found 1 model reference targets to update. ### Starting serial model reference code generation build. ### Starting build procedure for: ConfigSetCodegenTargetRef ### Successful completion of code generation for: ConfigSetCodegenTargetRef ### Starting build procedure for: ConfigSetCodegenTargetTop ### Successful completion of code generation for: ConfigSetCodegenTargetTop Build Summary Model reference code generation targets: Model Build Reason Status Build Duration =============================================================================================================== ConfigSetCodegenTargetRef Target (ConfigSetCodegenTargetRef.c) did not exist. Code generated. 0h 0m 11.758s Top model targets: Model Build Reason Status Build Duration =============================================================================================================== ConfigSetCodegenTargetTop Information cache folder or artifacts were missing. Code generated. 0h 0m 12.504s 2 of 2 models built (0 models already up to date) Build duration: 0h 0m 26.497s
The code generation report displays once code generation is complete.
Switch Targets and Generate Code for AUTOSAR Target
For this model there is another configuration set, Configuration_AUTOSAR, that is customized for AUTOSAR code generation. At the top of the Configuration Reference dialog box, in the rightmost drop-down list, select Configuration_AUTOSAR. slexConfigSetREfExample
and its referenced model, slexConfigSetMdlRef
, now both use the configuration set, Configuration_AUTOSAR
.
Because you edited the configuration reference, the data dictionary has unsaved changes. The configurations are stored outside of the models so the models do not have unsaved changes.
If you have downloaded the AUTOSAR package, you can now generate code for an AUTOSAR target. In the model editor window, press Ctrl+B.