Main Content

mapFunction

Map Simulink entry-point function to AUTOSAR runnable and software address methods

Description

example

mapFunction(slMap,slEntryPointFunction,arRunnableName) maps Simulink® entry-point function slEntryPointFunction to AUTOSAR runnable arRunnableName.

example

mapFunction(slMap,slEntryPointFunction,arRunnableName,Name,Value) specifies additional properties for the AUTOSAR runnable by using one or more Name,Value pair arguments. You can specify software address methods (SwAddrMethods) for runnable function code and internal data.

Examples

collapse all

Set AUTOSAR mapping information for a Simulink entry-point function in the example model autosar_swc. The model has an initialize entry-point function named Runnable_Init and periodic entry-point functions named Runnable_1s and Runnable_2s.

hModel = 'autosar_swc';
addpath(fullfile(matlabroot,'/examples/autosarblockset/main'));
open_system(hModel);
slMap=autosar.api.getSimulinkMapping(hModel);
mapFunction(slMap,'Initialize','Runnable_Init');
arRunnableName=getFunction(slMap,'Initialize')
arRunnableName =
    'Runnable_Init'

Set AUTOSAR SwAddrMethods for a Simulink entry-point function in the example model autosar_swc_counter. The model has a single-tasking periodic entry-point step function.

hModel = 'autosar_swc_counter';
addpath(fullfile(matlabroot,'/examples/autosarblockset/main'));
open_system(hModel);

% Add SwAddrMethods myCODE and myVAR to the AUTOSAR component
arProps = autosar.api.getAUTOSARProperties(hModel);
addPackageableElement(arProps,'SwAddrMethod',...
    '/Company/Powertrain/DataTypes/SwAddrMethods','myCODE',...
    'SectionType','Code')
swAddrPaths = find(arProps,[],'SwAddrMethod','PathType','FullyQualified',...
    'SectionType','Code')
addPackageableElement(arProps,'SwAddrMethod',...
    '/Company/Powertrain/DataTypes/SwAddrMethods','myVAR',...
    'SectionType','Var')
swAddrPaths = find(arProps,[],'SwAddrMethod','PathType','FullyQualified',...
    'SectionType','Var')

% Set code generation parameter for runnable internal data SwAddrMethods
set_param(hModel,'GroupInternalDataByFunction','on')

% Map periodic function and internal data to myCODE and myVAR SwAddrMethods
slMap = autosar.api.getSimulinkMapping(hModel);
mapFunction(slMap,'Periodic','Runnable_Step',...
    'SwAddrMethod','myCODE','SwAddrMethodForInternalData','myVAR')

% Return AUTOSAR mapping information for periodic function
[arRunnableName,arRunnableSwAddrMethod,arInternalDataSwAddrMethod] = ...
    getFunction(slMap,'Periodic')
swAddrPaths =
  1×2 cell array
    {'/Company/Powertrain/DataTypes/SwAddrMethods/CODE'}
    {'/Company/Powertrain/DataTypes/SwAddrMethods/myCODE'}

swAddrPaths =
  1×2 cell array
    {'/Company/Powertrain/DataTypes/SwAddrMethods/VAR'}
    {'/Company/Powertrain/DataTypes/SwAddrMethods/myVAR'}

arRunnableName =
    'Runnable_Step'

arRunnableSwAddrMethod =
    'myCODE'

arInternalDataSwAddrMethod =
    'myVAR'

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

Simulink entry-point function for which to set AUTOSAR mapping information. The value format is based on the function type.

Function TypeValue
Initialize'Initialize'.
Reset'Reset:slIdentifier', where slIdentifier is the name of a reset function in the model.
Terminate'Terminate'.
Single-tasking periodic'Periodic'.
Periodic (implicit task)'Periodic:slIdentifier', where slIdentifier is the corresponding period annotation, as displayed in the Timing Legend. For example, 'Periodic:D1'.
Partition (explicit task)'Partition:slIdentifier', where slIdentifier is the partition name, as displayed in the Schedule Editor. For example, 'Partition:P1'.
Exported

'ExportedFunction:slIdentifier', where slIdentifier is the name of the Inport block that drives the control port of the function-call subsystem. For example:

  • 'ExportedFunction:Trigger_1s' in example model autosar_swc_slfcns

  • 'ExportedFunction:FunctionTrigger' in example model autosar_swc_fcncalls

Simulink function in client-server configuration'SimulinkFunction:slIdentifier', where slIdentifier is the name of a global Simulink function in the model. For example, 'SimulinkFunction:readData' in the example model in Configure AUTOSAR Server.

Example: 'Periodic:D1'

Name of AUTOSAR runnable to which to map the specified Simulink entry-point function object.

Example: 'Runnable_2s'

Name-Value Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Example: 'SwAddrMethod','CODE' specifies SwAddrMethod CODE for an AUTOSAR runnable function.

Specify a SwAddrMethod name that is valid for the AUTOSAR function. Code generation uses the SwAddrMethod name to group AUTOSAR runnable functions in a memory section. For a list of valid SwAddrMethod values for the function, see the Code Mappings editor, Entry-Point Functions tab. For more information, see Configure SwAddrMethod.

Example: 'SwAddrMethod','CODE'

Specify a SwAddrMethod name that is valid for the AUTOSAR internal data. Code generation uses the SwAddrMethod name to group AUTOSAR runnable internal data in a memory section. For a list of valid SwAddrMethod values for the internal data, see the Code Mappings editor, Entry-Point Functions tab. For more information, see Configure SwAddrMethod.

Code generation for runnable internal data SwAddrMethods requires setting the model configuration option Code Generation > Interface > Generate separate internal data per entry-point function (GroupInternalDataByFunction) to on.

Example: 'SwAddrMethodForInternalData','VAR'

Introduced in R2013b