Main Content

getInternalDataPackaging

Get default internal data packaging for AUTOSAR component model

Description

example

pkgSetting = getInternalDataPackaging(slMap) returns the default data packaging setting used for internal data stores, signals, and states in the generated code for an AUTOSAR component model.

Default packaging options differ depending on whether the component model instantiates an AUTOSAR software component once or multiple times. Multi-instance software components can generate reusable functions that are reentrant. See Multi-Instance Components for more information.

Valid setting values are:

  • For single-instance models:

    • Default — Accept the default internal data packaging provided by the software. Use Default for submodels referenced from AUTOSAR component models.

    • PrivateGlobal — Package internal variable data without a struct and make it private (visible only to model.c).

    • PrivateStructure — Package internal variable data in a struct and make it private (visible only to model.c).

    • PublicGlobal — Package internal variable data without a struct and make it public (extern declaration in model.h).

    • PublicStructure — Package internal variable data in a struct and make it public (extern declaration in model.h).

  • For multi-instance models:

    • Default — Accept the default internal data packaging provided by the software. Use Default for submodels referenced from AUTOSAR component models and multi-instance function-call based models.

    • CTypedPerInstanceMemory — Package internal variable data for each instance of an AUTOSAR software component to use C-typed per-instance memory in a struct and make it public (declaration in model.h). Setting CTypedPerInstanceMemory is supported for multi-instance rate-based models.

If the data packaging is set to PrivateGlobal or PrivateStructure, building the model generates the header file model_private.h, even when the model configuration parameter File packaging format (Embedded Coder) is set to Compact.

If the model configuration option Generate separate internal data per entry-point function (Embedded Coder) is set for the AUTOSAR model, task-based internal data grouping overrides the AUTOSAR internal data packaging setting. However, the AUTOSAR setting determines the public or private visibility of the generated internal data groups.

Examples

collapse all

Return and modify the default data packaging setting used for internal variables in the generated code for the AUTOSAR component model.

hModel = 'autosar_swc';
addpath(fullfile(matlabroot,'/examples/autosarblockset/main'));
open_system(hModel);
slMap = autosar.api.getSimulinkMapping(hModel);
pkgSetting1 = getInternalDataPackaging(slMap)
setInternalDataPackaging(slMap,'PrivateStructure')
pkgSetting2 = getInternalDataPackaging(slMap)
pkgSetting1 =
    'Default'

pkgSetting2 =
    'PrivateStructure'

Input Arguments

collapse all

Simulink to AUTOSAR mapping information for a model, previously returned by slMap = autosar.api.getSimulinkMapping(model). model is a handle, character vector, or string scalar representing the model name.

Example: slMap

Output Arguments

collapse all

Variable that returns the default data packaging setting used for internal variables in the generated code for the AUTOSAR component model. Valid setting values for single-instance models are Default, PrivateGlobal, PrivateStructure, PublicGlobal, and PublicStructure. Valid setting values for multi-instance models are Default and CTypedPerInstanceMemory.

Example: pkgSetting

Version History

Introduced in R2021a