AUTOSAR CP SWS MemoryMapping
AUTOSAR CP SWS MemoryMapping
AUTOSAR CP SWS MemoryMapping
AUTOSAR CP R23-11
4
• Support splitting of modules in
allocatable memory parts
AUTOSAR • Clarify handling of configuration data
2018-10-31 4.4.0 Release
Management • Additional minor corrections /
clarifications / editorial changes; For
details please refer to the Change
Documentation
AUTOSAR • Amend explanatory text
2017-12-08 4.3.1 Release
Management • Editorial changes
• Support dedicated allocation of pointer
variables
AUTOSAR
Release • Remove obsolete specification content
2016-11-30 4.3.0
Management • Amend examples
• Editorial changes
• Support core scope specific memory
AUTOSAR allocation
2015-07-31 4.2.2 Release
• Clean up requirement tracing
Management
• editorial changes
• Support partitioning of BSW for safety
systems
• editorial changes
AUTOSAR • Clarify usage of <X> in recovery and
Release saved data zone
2014-03-31 4.1.3
Management • editorial changes
AUTOSAR
2013-10-31 4.1.2 Release • Clarify usage of default section
Management
5
4
• Consistent naming pattern for memory
allocation keywords
4
• Typo errors are corrected throughout the
document
• In MEMMAP004 and
AUTOSAR
2006-11-28 2.1 SWS_MemMap_00021,tables are
Administration
defining the mapping segments
associated to #pragmas instructions,
adding some new segments to take into
account some implementation cases
Disclaimer
This work (specification and/or software implementation) and the material contained in
it, as released by AUTOSAR, is for the purpose of information only. AUTOSAR and the
companies that have contributed to it shall not be liable for any use of the work.
The material contained in this work is protected by copyright and other types of intel-
lectual property rights. The commercial exploitation of the material contained in this
work requires a license to such intellectual property rights.
This work may be utilized or reproduced without any modification, in any form or by
any means, for informational purposes only. For any other purpose, no part of the work
may be utilized or reproduced, in any form or by any means, without permission in
writing from the publisher.
The work has been developed for automotive applications only. It has neither been
developed, nor tested for non-automotive applications.
The word AUTOSAR and the AUTOSAR logo are registered trademarks.
Contents
1 Introduction and functional overview 8
3 Related documentation 10
3.1 Input documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 Related standards and norms . . . . . . . . . . . . . . . . . . . . . . . 11
3.3 Related specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 Constraints and assumptions 12
4.1 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2 Applicability to car domains . . . . . . . . . . . . . . . . . . . . . . . . 12
5 Dependencies to other modules 13
5.1 File structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.1.1 Code file structure . . . . . . . . . . . . . . . . . . . . . . . . 13
5.1.2 Header file structure . . . . . . . . . . . . . . . . . . . . . . . 13
6 Requirements traceability 15
7 Functional specification 17
7.1 General issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
7.2 Mapping of variables and code . . . . . . . . . . . . . . . . . . . . . . 18
7.2.1 Requirements on implementations using memory mapping
header files for BSW Modules and Software Components . . 18
7.2.1.1 Splitting of modules in allocatable memory parts . . 24
7.2.1.2 config constants versus non-config constants . . . . 25
7.2.1.3 Variable Sections . . . . . . . . . . . . . . . . . . . . 26
7.2.1.4 Constant and Calibration Sections . . . . . . . . . . 28
7.2.1.5 Code Sections . . . . . . . . . . . . . . . . . . . . . 30
7.2.2 Requirements on memory mapping header files . . . . . . . 36
7.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
7.3.1 Code Section . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
7.3.2 Fast Variable Section . . . . . . . . . . . . . . . . . . . . . . 43
7.3.3 Code Section in ICC2 cluster . . . . . . . . . . . . . . . . . . 49
7.3.4 Callout sections . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.3.5 Allocatable Memory Parts . . . . . . . . . . . . . . . . . . . . 53
8 API specification 56
9 Sequence diagrams 57
10 Configuration specification 58
10.1 How to read this chapter . . . . . . . . . . . . . . . . . . . . . . . . . . 58
10.2 Containers and configuration parameters . . . . . . . . . . . . . . . . . 58
10.2.1 MemMap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
10.2.2 MemMapAddressingModeSet . . . . . . . . . . . . . . . . . 59
10.2.3 MemMapAddressingMode . . . . . . . . . . . . . . . . . . . 63
10.2.4 MemMapAllocation . . . . . . . . . . . . . . . . . . . . . . . 64
10.2.5 MemMapGenericMapping . . . . . . . . . . . . . . . . . . . . 66
10.2.6 MemMapSectionSpecificMapping . . . . . . . . . . . . . . . 68
10.2.7 MemMapMappingSelector . . . . . . . . . . . . . . . . . . . 69
10.3 Published Information . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
11 Analysis 70
11.1 Memory allocation of variables . . . . . . . . . . . . . . . . . . . . . . 70
11.2 Memory allocation of constant variables . . . . . . . . . . . . . . . . . 71
11.3 Memory allocation of code . . . . . . . . . . . . . . . . . . . . . . . . . 73
A Appendix 74
A.1 Referenced Meta Classes . . . . . . . . . . . . . . . . . . . . . . . . . 74
A.2 Specification Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
A.2.1 Added Specification Items in R23-11 . . . . . . . . . . . . . . 103
A.2.2 Changed Specification Items in R23-11 . . . . . . . . . . . . 103
A.2.3 Deleted Specification Items in R23-11 . . . . . . . . . . . . . 103
A.3 Not applicable requirements . . . . . . . . . . . . . . . . . . . . . . . . 104
3 Related documentation
[1] Glossary
AUTOSAR_FO_TR_Glossary
[2] General Specification of Basic Software Modules
AUTOSAR_CP_SWS_BSWGeneral
[3] General Requirements on Basic Software Modules
AUTOSAR_CP_SRS_BSWGeneral
[4] Software Component Template
AUTOSAR_CP_TPS_SoftwareComponentTemplate
[5] Basic Software Module Description Template
AUTOSAR_CP_TPS_BSWModuleDescriptionTemplate
[6] Methodology for Classic Platform
AUTOSAR_CP_TR_Methodology
[7] Guide to BSW Distribution
AUTOSAR_CP_EXP_BSWDistributionGuide
[8] Specification of RTE Software
AUTOSAR_CP_SWS_RTE
[9] Cosmic C Cross Compiler User’s Guide for Motorola MC68HC12, V4.5
[10] ARM ADS compiler manual
[11] GreenHills MULTI for V850 V4.0.5
Building Applications for Embedded V800, V4.0, 30.1.2004
[12] TASKING for ST10 V8.5
C166/ST10 v8.5 C Cross-Compiler User’s Manual, V5.16
[13] TASKING for ST10 V8.5
C166/ST10 v8.5 C Cross-Assembler, Linker/Locator, Utilities User’s Manual,
V5.16
4.1 Limitations
The user interface of the memory allocation mechanisms is assumed to be supported
by any ANSI-C compiler. Instead the implementation of the abstraction inside the
memory mapping header files is hardware, compiler and compiler version specific and
results in specific #pragmas. So the mode sets made available to the mechanism
need to reflect this limitation to be able to map to it accordingly.
Not applicable.
Results in the generation of the requested Memory Allocation Key Words in the file
MemMap.h
Figure 5.1: Basic Software Module specific memory mapping header file
Please note:
The approach of basic software module specific memory mapping header files imple-
ments the pattern of a user specific file split as specified in [SRS_BSW_00415]. The
concrete name pattern defined in [SWS_MemMap_00032] is deviating from the naming
scheme of [SRS_BSW_00415] since the module and user relationship is interpreted
from the opposite way around.
[SWS_MemMap_00029] dFor each software component type which is part of the input
configuration a software component type specific memory mapping header file {com-
ponentTypeName}_MemMap.h shall be provided by the Memory Mapping.c(SRS_-
BSW_00465, SRS_BSW_00415, SRS_BSW_00351, SRS_BSW_00464)
«header» SWC
{componentTypeName}_MemMap.h
«includes»
Figure 5.2: Software Component type specific memory mapping header file
6 Requirements traceability
The following tables references the requirements specified in [3] and links to the fulfill-
ment of these. Please note that if column ’Satisfied by’ is empty for a specific require-
ment this means that this requirement is not fulfilled by this document.
Requirement Description Satisfied by
[RS_Arti_00028] The locating process shall allow [SWS_MemMap_00038] [SWS_MemMap_00060]
grouping of "traceables" into separate [SWS_MemMap_00061] [SWS_MemMap_00062]
memory regions. [SWS_MemMap_00063] [SWS_MemMap_00064]
[SWS_MemMap_00070] [SWS_MemMap_00071]
[SWS_MemMap_00072] [SWS_MemMap_00073]
[SWS_MemMap_00080] [SWS_MemMap_00081]
[SWS_MemMap_00082] [SWS_MemMap_00083]
[SRS_BSW_00006] The source code of software modules [SWS_MemMap_00003] [SWS_MemMap_00005]
above the µC Abstraction Layer [SWS_MemMap_00006] [SWS_MemMap_00010]
(MCAL) shall not be processor and [SWS_MemMap_00036]
compiler dependent.
[SRS_BSW_00306] AUTOSAR Basic Software Modules [SWS_MemMap_00003] [SWS_MemMap_00005]
shall be compiler and platform [SWS_MemMap_00006] [SWS_MemMap_00010]
independent [SWS_MemMap_00015] [SWS_MemMap_00016]
[SWS_MemMap_00018] [SWS_MemMap_00023]
[SWS_MemMap_00036]
[SRS_BSW_00328] All AUTOSAR Basic Software [SWS_MemMap_00001] [SWS_MemMap_00005]
Modules shall avoid the duplication of
code
[SRS_BSW_00345] BSW Modules shall support [SWS_MemMap_00003]
pre-compile configuration
[SRS_BSW_00351] Encapsulation of compiler specific [SWS_MemMap_00002] [SWS_MemMap_00003]
methods to map objects [SWS_MemMap_00005] [SWS_MemMap_00006]
[SWS_MemMap_00007] [SWS_MemMap_00010]
[SWS_MemMap_00011] [SWS_MemMap_00013]
[SWS_MemMap_00015] [SWS_MemMap_00016]
[SWS_MemMap_00018] [SWS_MemMap_00020]
[SWS_MemMap_00022] [SWS_MemMap_00023]
[SWS_MemMap_00026] [SWS_MemMap_00027]
[SWS_MemMap_00028] [SWS_MemMap_00029]
[SWS_MemMap_00032] [SWS_MemMap_00033]
[SWS_MemMap_00034] [SWS_MemMap_00035]
[SWS_MemMap_00036] [SWS_MemMap_00037]
[SWS_MemMap_00038] [SWS_MemMap_00039]
[SWS_MemMap_00040] [SWS_MemMap_00041]
[SWS_MemMap_00042] [SWS_MemMap_00060]
[SWS_MemMap_00061] [SWS_MemMap_00062]
[SWS_MemMap_00063] [SWS_MemMap_00064]
[SWS_MemMap_00070] [SWS_MemMap_00071]
[SWS_MemMap_00072] [SWS_MemMap_00073]
[SWS_MemMap_00080] [SWS_MemMap_00081]
[SWS_MemMap_00082] [SWS_MemMap_00083]
[SRS_BSW_00384] The Basic Software Module [SWS_MemMap_00020]
specifications shall specify at least in
the description which other modules
they require
[SRS_BSW_00415] Interfaces which are provided [SWS_MemMap_00028] [SWS_MemMap_00029]
exclusively for one module shall be [SWS_MemMap_00032]
separated into a dedicated header file
5
4
Requirement Description Satisfied by
[SRS_BSW_00437] Memory mapping shall provide the [SWS_MemMap_00006] [SWS_MemMap_00038]
possibility to define RAM segments [SWS_MemMap_00060] [SWS_MemMap_00061]
which are not to be initialized during [SWS_MemMap_00062] [SWS_MemMap_00063]
startup [SWS_MemMap_00064] [SWS_MemMap_00070]
[SWS_MemMap_00071] [SWS_MemMap_00072]
[SWS_MemMap_00073] [SWS_MemMap_00080]
[SWS_MemMap_00081] [SWS_MemMap_00082]
[SWS_MemMap_00083]
[SRS_BSW_00441] Naming convention for type, macro [SWS_MemMap_00022]
and function
[SRS_BSW_00464] File names shall be considered case [SWS_MemMap_00028] [SWS_MemMap_00029]
sensitive regardless of the filesystem [SWS_MemMap_00032]
in which they are used
[SRS_BSW_00465] It shall not be allowed to name any [SWS_MemMap_00028] [SWS_MemMap_00029]
two files so that they only differ by the [SWS_MemMap_00032]
cases of their letters
[SRS_BSW_00477] The functional interfaces of [SWS_MemMap_00003] [SWS_MemMap_00018]
AUTOSAR BSW modules shall be [SWS_MemMap_00023]
specified in C99
7 Functional specification
Example 7.1
1 #ifdef EEP_START_SEC_VAR_CLEARED_16
2 #undef EEP_START_SEC_VAR_CLEARED_16
3 #endif
Further on the total number of used MemorySections depends as well on the num-
ber of used BSW modules. These can be determined by the M1 instance of the
EcucValueCollection which refers to the MemMap’s EcucModuleConfigura-
tionValues. This EcucValueCollection refers as well to EcucModuleCon-
figurationValues of other Bsw Modules which refer again to BswImplementa-
tions via moduleDescription references. Knowing the BswImplementations
provides as well the number of MemorySections which have to be identified for
[SWS_MemMap_00026]. For more details about the content of a BswImplementa-
tion see document [5].
In [6] further information is provided how Memory Mapping is used in the AUTOSAR
Methodology.
• Any ’normal’ system RAM without external supply, which needs to be initialized
when the microcontroller voltage drops below a threshold as the ECC codes be-
come invalid. This usually happens in case of a cold power on reset.
• Any ’standby’ supplied RAM, which needs to be initialized when the standby volt-
age drops below a threshold and the ECC codes become invalid.
As a consequence POWER_ON_CLEARED symbols cannot be stored inside of those
memory areas.
Note 2: Please consider that microcontrollers / processors with embedded LBIST (Log-
ical Build In Self Test), MBIST (Memory Build In Self Test) will initialize a specified
amount of memory when those tests are executed. So these memory devices shall not
be used for POWER_ON_CLEARED.c(SRS_BSW_00437, SRS_BSW_00351, RS_-
Arti_00028)
Init Policy Allowed for Type Example Initializa- Behavior Note
tion
Time
CLEARED Not explicitly BSS uint8 my_bss; /* =0 */ any reset All objects are initialized to This is typically used for
initialized 0 or null pointer as per C not explicitly initialized
variables standard (6.7.8 objects with a static
Initialization clause 10). storage duration.
INIT Initialized DATA uint8 my_data=5; any reset, All objects are initialized This is typically used for
variables copytable according to their either initialized or not
execution initializer. explicitly initialized objects
with a static storage
BSS uint8 my_bss; /* =0 */ All objects are initialized to
duration.
0 or null pointer as per C
standard (6.7.8
Initialization clause 10). Note: Depending on the
used compiler it might not
be possible to combine
DATA and BSS
initialization due to limited
#pragmas.
POWER_ON_ Power-on BSS uint8 my_bss; Cold All objects are initialized to This deviates from the C
CLEARED cleared PowerOn 0 or null pointer, but only standard as all objects
variables reset on Cold PowerOn reset or with a static storage
brownout reset. They are duration shall be initialized
not overwritten on a before program startup
regular warm reset (e.g. (5.1.2 Execution
software reset, watchdog environments).
reset, external reset).
Consequently, the {coreScope} value GLOBAL shall not be written in the MAKW as
A detailed summary can be found in the following table. Further examples and
usage hints are mentioned below.
When using LOCAL, one shall be aware that the call tree accessing the symbol
needs to be executed within at least the right core or at most the right partition on the
right core. This is because otherwise memory protection errors or access violations
might occur which usually lead to exceptional behaviour of the hardware.
{PREFIX}_START_SEC_CODE[_{refinement}][_{safety}][_{coreScope}]
{PREFIX}_STOP_SEC_CODE[_{refinement}][_{safety}][_{coreScope}]
{PREFIX}_START_SEC_CONFIG_DATA_{configClass}[_{refinement}][_{safety}]_{ALIGNMENT}
{PREFIX}_STOP_SEC_CONFIG_DATA_{configClass}[_{refinement}][_{safety}]_{ALIGNMENT}
{PREFIX}_START_SEC_CONST[_{refinement}][_{safety}][_{coreScope}]_{ALIGNMENT}
{PREFIX}_STOP_SEC_CONST[_{refinement}][_{safety}][_{coreScope}]_{ALIGNMENT}
{PREFIX}_START_SEC_VAR_{INIT_POLICY}[_{refinement}][_{safety}][_{coreScope}]_{ALIGNMENT}
{PREFIX}_STOP_SEC_VAR_{INIT_POLICY}[_{refinement}][_{safety}][_{coreScope}]_{ALIGNMENT}
Those are applied in the recommendations provided in subsection 7.2.1.3, 7.2.1.4 and
subsection 7.2.1.5.
To increase the performance some multi core architectures work with core local mem-
ory areas. As a consequence the access speed to specific memory areas depends
on the core where the code is executed. For instance a BSW module which is multi
core capable by implementation of the Master/Satellite-approach is usually beneficial
to split the interface of the BSW module from the "Master" functionality implemen-
tation. Another use case is to split a BSW module with several distinct features in
different memory parts. Those memory parts are typically composed out of a set of
sections (CODE, CONST, VAR) used or the implementation of the feature. This sup-
port that those memory parts can be assigned to set of physical controller memories
being close to the main user of the feature.
4
4
In the related SwAddrMethod one option attribute shall describe the safety integrity level with the
possible values {safetyQM, safetyAsilA, safetyAsilB, safetyAsilC, safetyAsilD}. In case of safety
QM the attribute may be omitted.
In the related SwAddrMethod one option attribute shall describe the core scope qualification with
at most one of the possible values {coreGlobal, coreLocal}. In case of coreGlobal the attribute
may be omitted.
Memory Section Type VAR
Section Initialization Policy {INIT_POLICY}
Status –
4
Description To be used for global or static variables those are accessible from a calibration tool.
The name part _{refinement} shall be used to refine the allocation or initialization behavior.
The name part _{safety} shall contain the safety integrity level with at most one of the strings
QM, ASIL_A, ASIL_B, ASIL_C, ASIL_D. In case of QM the name part may be omitted.
The name part _{coreScope} shall contain the core scope qualification with at most one of the
strings GLOBAL, LOCAL. In case of GLOBAL the name part may be omitted.
In the related SwAddrMethod one option attribute shall describe the safety integrity level with the
possible values {safetyQM, safetyAsilA, safetyAsilB, safetyAsilC, safetyAsilD}. In case of safety
QM the attribute may be omitted.
In the related SwAddrMethod one option attribute shall describe the core scope qualification with
at most one of the possible values {coreGlobal, coreLocal}. In case of coreGlobal the attribute
may be omitted.
Memory Section Type VAR
Section Initialization Policy {INIT_POLICY}
Status –
The following tables define keywords for constant and calibration sections.
[SWS_MemMap_00070] d
Syntax of Memory Allocation {PREFIX}_START_SEC_CONST[_{refinement}][_{safety}]_{ALIGNMENT}
Keyword
{PREFIX}_STOP_SEC_CONST[_{refinement}][_{safety}]_{ALIGNMENT}
Description To be used for global or static constants.
The name part _{refinement} is the typical period time value and unit of the ExecutableEntitys in
this MemorySection. The name part _{refinement} is optional. Units are:
• US microseconds
• MS milli second
• S second
For example: 100US, 400US, 1MS, 5MS, 10MS, 20MS, 100MS, 1S
Please note that deviations from this typical period time are possible due to integration decisions
(e.g. RTEEvent To Task Mapping). Further on in special modes of the ECU the code may be
scheduled with a higher or lower period.
The name part _{safety} shall contain the safety integrity level with at most one of the strings
QM, ASIL_A, ASIL_B, ASIL_C, ASIL_D. In case of QM the name part may be omitted.
In the related SwAddrMethod one option attribute shall describe the safety integrity level with the
possible values {safetyQM, safetyAsilA, safetyAsilB, safetyAsilC, safetyAsilD}. In case of safety
QM the attribute may be omitted.
Memory Section Type CONST
Section Initialization Policy -
Status –
[SWS_MemMap_00072] d
Syntax of Memory Allocation {PREFIX}_START_SEC_CONFIG_DATA_{configClass}[_{refinement}]
Keyword [_{safety}]_{ALIGNMENT}
{PREFIX}_STOP_SEC_CONFIG_DATA_{configClass}[_{refinement}]
[_{safety}]_{ALIGNMENT}
Description Constants with attributes that show that they reside in one segment for module configuration.
The name part _{configClass} shall contain the configClass with one of the strings PREBUILD or
POSTBUILD.
The name part _{refinement} shall be used to refine the memory allocation keyword to allow
individual allocation.
The name part _{safety} shall contain the safety integrity level with at most one of the strings
QM, ASIL_A, ASIL_B, ASIL_C, ASIL_D. In case of QM the name part may be omitted.
In the related SwAddrMethod one option attribute shall describe the safety integrity level with the
possible values {safetyQM, safetyAsilA, safetyAsilB, safetyAsilC, safetyAsilD}. In case of safety
QM the attribute may be omitted.
In the related SwAddrMethod one option attribute shall describe the configClass with the
possible values {configClassPreBuild, configClassPostBuild}.
Memory Section Type CONFIG-DATA
Section Initialization Policy -
Status –
There are different kinds of execution code sections. This code sections shall be iden-
tified with dedicated keywords. If a section is not supported by the integrator and micro
controller then be aware that the keyword is ignored. The table below defines recom-
mended keywords for code sections:
[SWS_MemMap_00080] d
Syntax of Memory Allocation {PREFIX}_START_SEC_CODE[_{refinement}][_{safety}][_{coreScope}]
Keyword
{PREFIX}_STOP_SEC_CODE[_{refinement}][_{safety}][_{coreScope}]
Description To be used for mapping code to application block, boot block, external flash etc.
The name part _{refinement} is the typical period time value and unit of the ExecutableEntitys in
this MemorySection. The name part _{refinement} is optional. Units are:
• US microseconds
• MS milli second
• S second
For example: 100US, 400US, 1MS, 5MS, 10MS, 20MS, 100MS, 1S
Please note that deviations from this typical period time are possible due to integration decisions
(e.g. RTEEvent To Task Mapping). Further on in special modes of the ECU the code may be
scheduled with a higher or lower period.
The name part _{safety} shall contain the safety integrity level with at most one of the strings
QM, ASIL_A, ASIL_B, ASIL_C, ASIL_D. In case of QM the name part may be omitted.
The name part _{coreScope} shall contain the core scope qualification with at most one of the
strings GLOBAL, LOCAL. In case of GLOBAL the name part may be omitted.
In the related SwAddrMethod one option attribute shall describe the safety integrity level with the
possible values {safetyQM, safetyAsilA, safetyAsilB, safetyAsilC, safetyAsilD}. In case of safety
QM the attribute may be omitted.
In the related SwAddrMethod one option attribute shall describe the core scope qualification with
at most one of the possible values {coreGlobal, coreLocal}. In case of coreGlobal the attribute
may be omitted.
Memory Section Type CODE
Section Initialization Policy -
Status –
4
Section Initialization Policy -
Status –
4
Memory Section Type CODE
Section Initialization Policy -
Status –
Note: For code which is invariably implemented as inline function the wrapping
with Memory Allocation Keywords is not required.c(SRS_BSW_00006, SRS_BSW_-
00306, SRS_BSW_00345, SRS_BSW_00351, SRS_BSW_00477)
Application hint:
The implementations of AUTOSAR basic software modules or AUTOSAR software
components are not allowed to rely on an implicit assignment of objects to default sec-
tions because properties of default sections are platform and tool dependent. There-
fore this style of code implementation is not platform independent.
Application hint:
For code which is implemented with the LOCAL_INLINE macro of the "Compiler.h"
the wrapping with Memory Allocation Keywords is required. In the case that the LO-
CAL_INLINE is set to the inline keyword of the compiler the related Memory Allocation
Keywords shall not define any linker section assignments or change the addressing
behavior because this is already set by the environment of the calling function where
the code is inlined. In the case that the LOCAL_INLINE is set to empty the related Mem-
ory Allocation Keywords shall be configured like for regular code. For code which his
implemented with the INLINE macro of the "Compiler.h" the wrapping with Memory
Allocation Keywords is required at least for the code which is remaining if INLINE is set
to empty.
Please note as well that in the Basic Software Module Description the MemorySec-
tion related to the used Memory Allocation Keywords has to document the usage of
INLINE and LOCAL_INLINE in the option attribute. For further information see [5].
The start and stop symbols for section control are configured with section identifiers
defined in the inclusion of memory mapping header file. For details on configuring
sections see " Configuration specification".
Example 7.2
Example 7.3
For instance:
<MEMORY-SECTION>
<SHORT-NAME>COM_SOMECALLOUT_CODE</SHORT-NAME>
<SW-ADDRMETHOD-REF DEST="SW-ADDR-METHOD">/
AUTOSAR_MemMap/SwAddrMethods/CALLOUT_CODE</SW-
ADDRMETHOD-REF>
</MEMORY-SECTION>
This enables the integrater either to configer all of the memory sections identical with
the means of the MemMapGenericMapping and additionally to handle the special
cases individually with the means of the MemMapSectionSpecificMapping. See
as well the example 7.3.4 Callout sections
Example 7.4
1 #ifdef EEP_START_SEC_VAR_INIT_16
2 #undef EEP_START_SEC_VAR_INIT_16
3 #define START_SECTION_DATA_INIT_16
4 #elif
5 /*
6 additional mappings of modules sections into project
7 sections
8 */
9 ...
10 #endif
11
12
13 #ifdef START_SECTION_DATA_INIT_16
14 #pragma section data "sect_data16"
15 #undef START_SECTION_DATA_INIT_16
16 #undef MEMMAP_ERROR
17 #elif
18 /*
19 additional statements for switching the project sections
20 */
21 ...
22 #endif
Application hint:
Those code or variables sections can be used for the allocation of objects from more
Example 7.5
1 #ifdef EEP_STOP_SEC_CODE
2 #undef EEP_STOP_SEC_CODE
3 #define STOP_SECTION_COMMON_CODE
4 #elif
5 /*
6 additional mappings of modules sections into project
7 sections
8 */
9 ...
10 #endif
11
12
13 /* additional module specific mappings */
14 ...
15
16 #ifdef STOP_SECTION_COMMON_CODE
17 #pragma section code restore
18 #undef STOP_SECTION_COMMON_CODE
19 #undef MEMMAP_ERROR
20 #elif
21 /*
22 additional statements for switching the project sections
23 */
24 #endif
[SWS_MemMap_00007] dThe memory mapping header files shall check if they have
been included with a valid memory mapping symbol and in a valid sequence (no START
preceded by a START, no STOP without the corresponding START). This shall be done
by a preprocessor check.c(SRS_BSW_00351)
Example 7.6
1
Since its error prone to determined expected properties for memory which is not explicitly handled
by Memory Allocation Key Words usually those objects are treated in away to cause linker errors. The
default sections might be used to catch those non-handled objects.
1 #define MEMMAP_ERROR
2
3 /*
4 mappings of modules sections into project sections and
5 statements for switching the project sections
6 */
7
8 ...
9 #elif STOP_SECTION_COMMON_CODE
10 #pragma section code restore
11 #undef STOP_SECTION_COMMON_CODE
12 #undef MEMMAP_ERROR
13 #endif
14
15 #ifdef MEMMAP_ERROR
16 #error "Eep_MemMap.h, wrong pragma command"
17 #endif
[SWS_MemMap_00011] dThe memory mapping header files shall undefine the mod-
ule or software component specific Memory Allocation Key Words for starting or stop-
ping a section.c(SRS_BSW_00351)
Example 7.7
1 #ifdef EEP_STOP_SEC_CODE
2 #undef EEP_STOP_SEC_CODE
[SWS_MemMap_00013] dThe memory mapping header files shall use if-else struc-
tures to reduce the compilation effort.c(SRS_BSW_00351)
Example 7.8
For instance:
1 #define MEMMAP_ERROR
2 ...
3 /* module and ECU specific section mappings */
4 #if defined START_SECTION_COMMON_CODE
5 #pragma section ftext
6 #undef START_SECTION_COMMON_CODE
7 #undef MEMMAP_ERROR
8 #elif defined START_SECTION_UNBANKED_CODE
9 #pragma section code text
10 #undef START_SECTION_UNBANKED_CODE
11 #undef MEMMAP_ERROR
12 #elif defined ...
13 ...
14
15 #endif
7.3 Examples
The examples in this section shall illustrate the relationship between the Basic Software
Module Descriptions, Software Component Descriptions, the ECU configuration of the
Memory Mapping and the Memory Mapping header files.
+swAddrmethod +swAddrmethod
+internalBehavior
symbol = Run1
+behavior
MemMap relevant
According the SWS RTE [8] the Runnable Entity prototype in the Application Header
File of the software component is emitted as:
Example 7.9
2 #include "MySwc_MemMap.h"
3
4 void MySwc_Run1(void);
5
6 #define MySwc_STOP_SEC_CODE
7 #include "MySwc_MemMap.h"
Please note that the same Memory Allocation Keywords have to be used for the func-
tion definition of "MySwc_Run1" and all other functions of the Software Component
which shall be located to same MemorySection.
The SwcImplementation "Impl_MySwc" associated with the ApplicationSwCom-
ponentType "MySwc" defines that it uses a MemorySection named CODE. The
MemorySection "CODE" refers to SwAddrMethod "CODE". This indicates that the
module specific (abstract) memory section CODE share a common addressing strat-
egy defined by SwAddrMethod "CODE".
MemMap: EcucModuleDef
lowerMultiplicity = 0
upperMultiplicity = 1
(from MemMap)
+definition
MemMap: EcucModuleConfigurationValues
implementationConfigVariant = VariantPreCompile
+container
CODE_INTERNAL: EcucContainerValue
definition = MemMapAddressingModeSet
+value
+subContainer
CODE_INTERNAL: EcucContainerValue
definition = MemMapAddressingMode
+parameterValue
:EcucTextualParamValue
+subContainer
+referenceValue :EcucReferenceValue
definition = EcucMemoryMappingSwAddrMethodRef
A
+value
CODE: SwAddrMethod
sectionType = code
Example 7.10
SWC Description
IB_MySwc: FooBar:
SwcInternalBehavior +swDataDefProps «atpVariation»
VariableDataPrototype :SwDataDefProps
+explicitInterRunnableVariable
+swDataDefProps
«atpVariation»
:SwDataDefProps
+baseType
uint8: BaseType
baseTypeSize = 8
+implicitInterRunnableVariable
+behavior
+swDataDefProps
«atpVariation»
:SwDataDefProps
+baseType
SWC Description
VAR_FAST_INIT: SwAddrMethod
sectionType = var
sectionInitializationPolicy = init
memoryAllocationKeywordPolicy = AddrMethodShortNameAndAlignment
+swAddrmethod
alignment = 8
+internalBehavior VAR_FAST_INIT_16:
+memorySection
MemorySection
RTE_xyz:
BswInternalBehavior alignment = 16
+behavior VAR_FAST_INIT_TASK_BUF_8:
+memorySection
MemorySection
alignment = 8
RTE_xyz: +resourceConsumption
BswImplementation
+memorySection VAR_FAST_INIT_TASK_BUF_16:
MemorySection
alignment = 16
MemMap: EcucModuleDef
lowerMultiplicity = 0
upperMultiplicity = 1
MemMap: EcucModuleConfigurationValues
implementationConfigVariant = VariantPreCompile
+container
VAR_NEAR_INIT: EcucContainerValue
definition = MemMapAddressingModeSet
:EcucTextualParamValue
+parameterValue
value = var
definition = MemMapSectionType
:EcucTextualParamValue
+parameterValue
value = init
definition = MemMapSupportedSectionInitializationPolicy
:EcucTextualParamValue
+parameterValue
value = AddrMethodShortNameAndAlignment
definition = MemMapSupportedMemoryAllocationKeywordPolicy
+subContainer
VAR_INIT_NEAR_8: EcucContainerValue
definition = MemMapAddressingMode
:EcucTextualParamValue
+parameterValue
value = #pragma section nearbss "data_near_fast_8" CR LF #pragma section neardata "data_near_fast_8" ....
definition = MemMapAddressingModeStart
:EcucTextualParamValue
+parameterValue
value = #pragma section nearbss "illegal" CR LF #pragma section neardata "illegal" ....
definition = MemMapAddressingModeStop
:EcucTextualParamValue
+parameterValue
value = 8
definition = MemMapAlignmentSelector
+subContainer
VAR_INIT_NEAR_16: EcucContainerValue
definition = MemMapAddressingMode
:EcucTextualParamValue
+parameterValue
value = #pragma section nearbss "data_near_fast_16" CR LF #pragma section neardata "data_near_fast_16" ....
definition = MemMapAddressingModeStart
:EcucTextualParamValue
+parameterValue
value = #pragma section nearbss "illegal" CR LF #pragma section neardata "illegal" ....
definition = MemMapAddressingModeStop
:EcucTextualParamValue
+parameterValue
value = 16
definition = MemMapAlignmentSelector
MemMap: EcucModuleDef
lowerMultiplicity = 0
upperMultiplicity = 1
(from MemMap)
+definition
MemMap: EcucModuleConfigurationValues
implementationConfigVariant = VariantPreCompile
+container
VAR_FAR_INIT: EcucContainerValue
definition = MemMapAddressingModeSet
+container +container
+value
+container
+referenceValue :EcucReferenceValue
A definition = EcucMemoryMappingSwAddrMethodRef
VAR_FAST_INIT: SwAddrMethod
sectionType = var
sectionInitializationPolicy = init
memoryAllocationKeywordPolicy = AddrMethodShortNameAndAlignment
With this information of the Memory Allocation Header for the BSW can be generated
like:
Example 7.11
12 #ifdef RTE_START_SEC_VAR_FAST_INIT_16
13 #pragma section nearbss "data_near_fast_16"
14 #pragma section neardata "data_near_fast_16"
15 ....
16 #pragma ...
17 #undef RTE_START_SEC_VAR_FAST_INIT_16
18
19 #ifdef RTE_STOP_SEC_VAR_FAST_INIT_16
20 #pragma section_code "illegal"
21 #undef RTE_STOP_SEC_VAR_FAST_INIT_16
22
23 #ifdef RTE_START_SEC_VAR_FAST_INIT_TASK_BUF_8
24 #pragma section nearbss "data_near_fast_8"
25 #pragma section neardata "data_near_fast_8"
26 ....
27 #pragma ...
28 #undef RTE_START_SEC_VAR_FAST_INIT_TASK_BUF_8
29
30 #ifdef RTE_STOP_SEC_VAR_FAST_INIT_TASK_BUF_8
31 #pragma section_code "illegal"
32 #undef RTE_STOP_SEC_VAR_FAST_INIT_TASK_BUF_8
33
34 #ifdef RTE_START_SEC_VAR_FAST_INIT_TASK_BUF_16
35 #pragma section nearbss "data_near_fast_16"
36 #pragma section neardata "data_near_fast_16"
37 ....
38 #pragma ...
39 #undef RTE_START_SEC_VAR_FAST_INIT_TASK_BUF_16
40
41 #ifdef RTE_STOP_SEC_VAR_FAST_INIT_TASK_BUF_16
42 #pragma section_code "illegal"
43 #undef RTE_STOP_SEC_VAR_FAST_INIT_TASK_BUF_16
The following Basic Software Module Description would result in the support of the
Memory Allocation Keywords in the MemMap header file:
+internalBehavior
MEM: +entity
BswInternalBehavior NvM_MainFunction:
BswSchedulableEntity
+executableEntity
+entity
NvM_WriteBlock:
+schedulerNamePrefix
BswCalledEntity
+executableEntity
+schedulerNamePrefix
NvM:
+schedulerNamePrefix BswSchedulerNamePrefix
symbol = NvM
+entity MemIf_SetMode:
BswCalledEntity
+executableEntity
+schedulerNamePrefix
MemIf:
+schedulerNamePrefix BswSchedulerNamePrefix
+swAddrMethod
symbol = MemIf +swAddrMethod
+swAddrMethod
+behavior
CODE: SwAddrMethod
sectionType = code
+resourceConsumption
MEM: CODE_MEMIF:
+memorySection
ResourceConsumption MemorySection
symbol = CODE
MEMIF_PART: +prefix
+sectionNamePrefix SectionNamePrefix
symbol = MEMIF
CODE_NVM:
+memorySection MemorySection
symbol = CODE
NVM_PART:
+sectionNamePrefix +prefix
SectionNamePrefix
symbol = NVM
Example 7.12
The following Basic Software Module Description would result in the support of the
Memory Allocation Keywords in the MemMap header file:
+outgoingCallback Com_RxIpduCallout:
BswModuleEntry
+internalBehavior
COM: BswInternalBehavior
+behavior
COM:
BswImplementation
+resourceConsumption
COM: COM_TXIPDUCALLOUT_CODE:
ResourceConsumption MemorySection
+memorySection +swAddrMethod CALLOUT_CODE:
SwAddrMethod
sectionType = code
+swAddrMethod
COM_RXIPDUCALLOUT_CODE:
+memorySection
MemorySection
+value
MemMap: EcucModuleConfigurationValues
implementationConfigVariant = VariantPreCompile
+container
CNF_DEFAULT: EcucContainerValue
definition = MemMapAllocation A
+subContainer
+referenceValue :EcucReferenceValue
A
definition = EcucMemoryMappingSwAddrMethodRef
+container +value
Example 7.13
1 1 #ifdef COM_START_SEC_CALLOUT_CODE_COM_TXIPDUCALLOUT
2 2 ...
3 3 #ifdef COM_STOP_SEC_CALLOUT_CODE_COM_TXIPDUCALLOUT
4 4 ...
5 5 #ifdef COM_START_SEC_CALLOUT_CODE_COM_RXIPDUCALLOUT
6 6 ...
7 7 #ifdef COM_STOP_SEC_CALLOUT_CODE_COM_RXIPDUCALLOUT
Nevertheless both memory sections are implemented identical since both are refer-
encing the identical SwAddrMethod and the MemMapGenericMapping is used to
configure the MemMap module.
The following example shows an Adc driver which is internally split into an interface part
and a kernel part. Usually the kernel part is allocated to memory with high performance
for the micro controller core handling the interrupts. In opposite the interface part is
usually allocated to memory with a good average performance for all micro controller
cores using the Adc module. The shown configuration would result in the support of
following Memory Allocation Keywords in the Adc_MemMap.h header file:
Adc: BswModuleDescription
category = BSW_MODULE
+internalBehavior
+entity Adc_ReadGroup:
IbAdc: BswCalledEntity +executableEntity
BswInternalBehavior
+entity Adc_IsrGroupScanCompleted:
BswInterruptEntity +executableEntity
+behavior
Adc:
BswImplementation
+resourceConsumption +swAddrmethod
rcAdc: CODE_QM_GLOBAL:
+memorySection CODE_QM_GLOBAL: MemorySection
ResourceConsumption SwAddrMethod
symbol = CODE_QM_LOCAL +swAddrmethod sectionType = code
option = safetyQM,coreGlobal
+prefix
ADC_USERIF: SectionNamePrefix
+sectionNamePrefix
symbol = ADC_USERIF
+prefix
VAR_INIT_QM_GLOBAL_8:
+memorySection
MemorySection
symbol = VAR_INIT_QM_GLOBAL_8
+swAddrmethod
VAR_INIT_QM_GLOBAL: SwAddrMethod
sectionType = var
option = safetyQM,coreGlobal
memoryAllocationKeywordPolicy = AddrMethodShortNameAndAlignment
+swAddrMethod
CODE_QM_LOCAL:
CODE_QM_LOCAL: MemorySection
+memorySection SwAddrMethod
symbol = CODE_QM_LOCAL
+swAddrmethod sectionType = code
option = safetyQM,coreLocal
+prefix
ADC_AUTOSCANKERNEL: SectionNamePrefix
+sectionNamePrefix
symbol = ADC_AUTOSCANKERNEL
+prefix +prefix
symbol = VAR_INIT_QM_LOCAL_16
+memorySection
+swAddrmethod +swAddrmethod
VAR_INIT_QM_LOCAL: SwAddrMethod
sectionType = var
option = safetyQM,coreLocal
memoryAllocationKeywordPolicy = AddrMethodShortNameAndAlignment
Figure 7.9: Example of description and configuration for allocatable memory parts
Example 7.14
1 #ifdef ADC_USERIF_START_SEC_CODE_QM_GLOBAL
2 ...
3 #ifdef ADC_USERIF_STOP_SEC_CODE_QM_GLOBAL
4 ...
5 #ifdef ADC_USERIF_START_SEC_VAR_INIT_QM_GLOBAL_8
6 ...
7 #ifdef ADC_USERIF_STOP_SEC_VAR_INIT_QM_GLOBAL_8
8 ...
9 #ifdef ADC_AUTOSCANKERNEL_START_SEC_CODE_QM_LOCAL
10 ...
11 #ifdef ADC_AUTOSCANKERNEL_STOP_SEC_CODE_QM_LOCAL
12 ...
13 #ifdef ADC_AUTOSCANKERNEL_START_SEC_VAR_INIT_QM_LOCAL_8
14 ...
15 #ifdef ADC_AUTOSCANKERNEL_STOP_SEC_VAR_INIT_QM_LOCAL_8
16 ...
17 #ifdef ADC_AUTOSCANKERNEL_START_SEC_VAR_INIT_QM_LOCAL_16
18 ...
19 #ifdef ADC_AUTOSCANKERNEL_STOP_SEC_VAR_INIT_QM_LOCAL_16
Nevertheless both memory sections are implemented identical since both are refer-
encing the identical SwAddrMethod and the MemMapGenericMapping is used to
configure the MemMap module.
8 API specification
Not applicable.
9 Sequence diagrams
Not applicable.
10 Configuration specification
In general, this chapter defines configuration parameters and their clustering into con-
tainers. In order to support the specification section 10.1 describes fundamentals. It
also specifies a template (table) you shall use for the parameter specification. We
intend to leave section 10.1 in the specification to guarantee comprehension.
Chapter 10.2 specifies the structure (containers) and the parameters of the module
MemMap.
Chapter 10.3 specifies published information of the module MemMap.
10.2.1 MemMap
Included Containers
Container Name Multiplicity Scope / Dependency
MemMapAddressingModeSet 0..* Defines a set of addressing modes which might apply to a Sw
AddrMethod.
MemMapAllocation 0..* Defines which MemorySection of a BSW Module or a Software
Component is implemented with which MemMapAddressing
ModeSet.
This can either be specified for a set of MemorySections which
refer to an identical SwAddrMethod (MemMapGenericMapping)
or for individual MemorySections (MemMapSectionSpecific
Mapping). If both are defined for the same MemorySection the
MemMapSectionSpecificMapping overrules the MemMap
GenericMapping.
MemMapAllocation:
+container EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = *
10.2.2 MemMapAddressingModeSet
4
Default value –
Regular Expression –
Post-Build Variant Multiplicity false
Post-Build Variant Value false
Multiplicity Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
Included Containers
Container Name Multiplicity Scope / Dependency
MemMapAddressingMode 1..* Defines a addressing mode with a set of #pragma statements
implementing the start and the stop of a section.
lowerMultiplicity = 0 «enumeration»
upperMultiplicity = * MemorySectionType
var
code
MemMapSupportedSectionType: const
EcucEnumerationParamDef calprm
+parameter
upperMultiplicity = * configData
lowerMultiplicity = 0 excludeFromFlash
calibrationVariables
varFast
varNoInit
varPowerOnInit
calibrationOffline
calibrationOnline
userDefined
MemMapSupportedSectionInitializationPolicy:
+parameter EcucStringParamDef «primitive»
SectionInitializationPolicyType
upperMultiplicity = *
lowerMultiplicity = 0
MemMapSupportedAddressingMethodOption:
EcucStringParamDef «primitive»
+parameter Identifier
upperMultiplicity = *
lowerMultiplicity = 0 + blueprintValue: String [0..1]
regularExpression = [a-zA-Z]([a-zA-Z0-9]|_[a-zA-Z0-9])*_? + namePattern: String [0..1]
«enumeration»
MemMapSupportedMemoryAllocationKeywordPolicy:
MemoryAllocationKeywordPolicyType
+parameter EcucEnumerationParamDef
addrMethodShortName
upperMultiplicity = *
addrMethodShortNameAndAlignment
lowerMultiplicity = 0
+subContainer
MemMapAddressingModeStop: EcucMultilineStringParamDef
+parameter
upperMultiplicity = 1
lowerMultiplicity = 1
MemMapAlignmentSelector: EcucStringParamDef
+parameter
upperMultiplicity = *
lowerMultiplicity = 1
regularExpression = [1-9][0-9]*|0x[0-9a-f]*|0[0-7]*|0b[0-1]*|UNSPECIFIED|UNKNOWN|BOOLEAN|PTR
«primitive»
AlignmentType
tags
xml.xsd.customType = ALIGNMENT-TYPE
xml.xsd.pattern = [1-9][0-9]*|0[xX][0-9a-fA-F]*|0[bB][0-1]+|0[0-7]*|UNSPECIFIED|UNKNOWN|BOOLEAN|PTR
xml.xsd.type = string
10.2.3 MemMapAddressingMode
4
Type EcucStringParamDef
Default value –
Regular Expression [1-9][0-9]*|0x[0-9a-f]*|0[0-7]*|0b[0-1]*|UNSPECIFIED|UNKNOWN|BOOLEAN|PTR
Post-Build Variant Multiplicity false
Post-Build Variant Value false
Multiplicity Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: local
No Included Containers
10.2.4 MemMapAllocation
Included Containers
Container Name Multiplicity Scope / Dependency
MemMapGenericMapping 0..* Defines which SwAddrMethod is implemented with which Mem
MapAddressingModeSet.
The pragmas for the implementation of the MemorySelector
Keywords are taken from the MemMapAddressingModeStart
and MemMapAddressingModeStop parameters of the MemMap
AddressingModeSet for the individual alignments.
That this mapping becomes valid requires matching MemMap
SupportedSectionType’s, MemMapSupportedSection
InitializationPolicy’s and MemMapSupportedAddressingMethod
Option’s.
The MemMapGenericMapping applies only if it is not overruled
by an MemMapSectionSpecificMapping
MemMapMappingSelector 0..* The container holds a section criteria reusable for MemMap
GenericMappings.
5
4
Included Containers
Container Name Multiplicity Scope / Dependency
MemMapSectionSpecificMapping 0..* Defines which MemorySection of a BSW Module or a Software
Component is implemented with which MemMapAddressing
ModeSet.
The pragmas for the implementation of the MemorySelector
Keywords are taken from the MemMapAddressingModeStart
and MemMapAddressingModeStop parameters of the MemMap
AddressingModeSet for the specific alignment of the Memory
Section.
The MemMapSectionSpecificMapping precedes a mapping
defined by MemMapGenericMapping.
MemMapMappingSelectorRef:
+reference EcucReferenceDef
+subContainer
lowerMultiplicity = 0
upperMultiplicity = 1
MemMapSwAddressMethodRef:
EcucForeignReferenceDef
+reference
upperMultiplicity = 1
lowerMultiplicity = 1
destinationType = SW-ADDR-METHOD
ARElement
AtpBlueprint
AtpBlueprintable
SwAddrMethod
+swAddrmethod 0..1
MemMapSectionSpecificMapping: MemMapAddressingModeSetRef:
EcucParamConfContainerDef +reference EcucReferenceDef
lowerMultiplicity = 0 upperMultiplicity = 1
upperMultiplicity = * lowerMultiplicity = 1
+subContainer
MemMapMemorySectionRef:
+reference EcucForeignReferenceDef
upperMultiplicity = 1
lowerMultiplicity = 1
destinationType = MEMORY-SECTION
Identifiable
MemorySection
MemMapPrefixSelector:
MemMapMappingSelector:
+parameter EcucStringParamDef
EcucParamConfContainerDef
+subContainer
lowerMultiplicity = 0
lowerMultiplicity = 0
upperMultiplicity = 1
upperMultiplicity = *
+destination
10.2.5 MemMapGenericMapping
4
Description Defines which SwAddrMethod is implemented with which MemMapAddressingMode
Set.
The pragmas for the implementation of the MemorySelectorKeywords are taken from
the MemMapAddressingModeStart and MemMapAddressingModeStop parameters of
the MemMapAddressingModeSet for the individual alignments.
That this mapping becomes valid requires matching MemMapSupportedSectionType’s,
MemMapSupportedSectionInitializationPolicy’s and MemMapSupportedAddressing
MethodOption’s.
The MemMapGenericMapping applies only if it is not overruled by an MemMapSection
SpecificMapping
Configuration Parameters
4
Scope / Dependency scope: ECU
No Included Containers
10.2.6 MemMapSectionSpecificMapping
No Included Containers
10.2.7 MemMapMappingSelector
No Included Containers
11 Analysis
This chapter does not contain requirements. It just gives an overview to used keywords
and their syntax within different compilers. This analysis is required for a correct and
complete specification of methods and keywords and is based on the documents [9],
[10], [11], [12] and [13].
sort_type="code
DIABDATA, MPC5554 #pragma section class_name [init_name]
[uninit_name] [address_mode] [access]
#pragma section class_name
Pragma shall be used before declaration.
A Appendix
Class ApplicationSwComponentType
Package M2::AUTOSARTemplates::SWComponentTemplate::Components
Note The ApplicationSwComponentType is used to represent the application software.
Tags: atp.recommendedPackage=SwComponentTypes
Base ARElement, ARObject, AtomicSwComponentType, AtpBlueprint, AtpBlueprintable, AtpClassifier , Atp
Type, CollectableElement, Identifiable, MultilanguageReferrable, PackageableElement, Referrable, Sw
ComponentType
Aggregated by ARPackage.element
Attribute Type Mult. Kind Note
– – – – –
Table A.1: ApplicationSwComponentType
Class BaseTypeDirectDefinition
Package M2::MSR::AsamHdo::BaseTypes
Note This BaseType is defined directly (as opposite to a derived BaseType)
Base ARObject, BaseTypeDefinition
Aggregated by BaseType.baseTypeDefinition
Attribute Type Mult. Kind Note
5
4
Class BaseTypeDirectDefinition
baseType BaseTypeEncoding 0..1 attr This specifies, how an object of the current BaseType is
Encoding String encoded, e.g. in an ECU within a message sequence.
Tags: xml.sequenceOffset=90
baseTypeSize PositiveInteger 0..1 attr Describes the length of the data type specified in the
container in bits.
Tags: xml.sequenceOffset=70
byteOrder ByteOrderEnum 0..1 attr This attribute specifies the byte order of the base type.
Tags: xml.sequenceOffset=110
memAlignment PositiveInteger 0..1 attr This attribute describes the alignment of the memory
object in bits. E.g. "8" specifies, that the object in
question is aligned to a byte while "32" specifies that it is
aligned four byte. If the value is set to "0" the meaning
shall be interpreted as "unspecified".
Tags: xml.sequenceOffset=100
native NativeDeclarationString 0..1 attr This attribute describes the declaration of such a base
Declaration type in the native programming language, primarily in the
Programming language C. This can then be used by a
code generator to include the necessary declarations into
a header file. For example
BaseType with shortName: "MyUnsignedInt" native
Declaration: "unsigned short"
Results in
typedef unsigned short MyUnsignedInt;
If the attribute is not defined the referring Implementation
DataTypes will not be generated as a typedef by RTE.
If a nativeDeclaration type is given it shall fulfill the
characteristic given by basetypeEncoding and baseType
Size.
This is required to ensure the consistent handling and
interpretation by software components, RTE, COM and
MCM systems.
Tags: xml.sequenceOffset=120
Class BswImplementation
Package M2::AUTOSARTemplates::BswModuleTemplate::BswImplementation
Note Contains the implementation specific information in addition to the generic specification (BswModule
Description and BswBehavior). It is possible to have several different BswImplementations referring to
the same BswBehavior.
Tags: atp.recommendedPackage=BswImplementations
Base ARElement, ARObject, CollectableElement, Identifiable, Implementation, MultilanguageReferrable,
PackageableElement, Referrable
Aggregated by ARPackage.element
Attribute Type Mult. Kind Note
arRelease RevisionLabelString 0..1 attr Version of the AUTOSAR Release on which this
Version implementation is based. The numbering contains three
levels (major, minor, revision) which are defined by
AUTOSAR.
5
4
Class BswImplementation
behavior BswInternalBehavior 0..1 ref The behavior of this implementation.
This relation is made as an association because
• it follows the pattern of the SWCT
• since ARElement cannot be splitted, but we want
supply the implementation later, the Bsw
Implementation is not aggregated in BswBehavior
preconfigured EcucModule * ref Reference to the set of preconfigured (i.e. fixed)
Configuration ConfigurationValues configuration values for this BswImplementation.
If the BswImplementation represents a cluster of several
modules, more than one EcucModuleConfigurationValues
element can be referred (at most one per module),
otherwise at most one such element can be referred.
Tags: xml.roleWrapperElement=true
recommended EcucModule * ref Reference to one or more sets of recommended
Configuration ConfigurationValues configuration values for this module or module cluster.
vendorApiInfix Identifier 0..1 attr In driver modules which can be instantiated several times
on a single ECU, SRS_BSW_00347 requires that the
names of files, APIs, published parameters and memory
allocation keywords are extended by the vendorId and a
vendor specific name. This parameter is used to specify
the vendor specific name. In total, the implementation
specific API name is generated as follows: <Module
Name>_<vendorId>_ <vendorApiInfix>_<API name from
SWS>.
E.g. assuming that the vendorId of the implementer is
123 and the implementer chose a vendorApiInfix of
"v11r456" an API name Can_Write defined in the SWS
will translate to Can_123_v11r456_Write.
This attribute is mandatory for all modules with upper
multiplicity > 1. It shall not be used for modules with
upper multiplicity =1.
See also SWS_BSW_00102.
vendorSpecific EcucModuleDef * ref Reference to
ModuleDef
• the vendor specific EcucModuleDef used in this Bsw
Implementation if it represents a single module
• several EcucModuleDefs used in this Bsw
Implementation if it represents a cluster of modules
• one or no EcucModuleDefs used in this Bsw
Implementation if it represents a library
Tags: xml.roleWrapperElement=true
Class BswModuleDescription
Package M2::AUTOSARTemplates::BswModuleTemplate::BswOverview
Note Root element for the description of a single BSW module or BSW cluster. In case it describes a BSW
module, the short name of this element equals the name of the BSW module.
Tags: atp.recommendedPackage=BswModuleDescriptions
Base ARElement, ARObject, AtpBlueprint, AtpBlueprintable, AtpClassifier , AtpFeature, AtpStructureElement,
CollectableElement, Identifiable, MultilanguageReferrable, PackageableElement, Referrable
Aggregated by ARPackage.element, AtpClassifier .atpFeature
5
4
Class BswModuleDescription
Attribute Type Mult. Kind Note
bswModule BswModuleDependency * aggr Describes the dependency to another BSW module.
Dependency
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=bswModuleDependency.shortName, bsw
ModuleDependency.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=20
bswModule SwComponent 0..1 aggr This adds a documentation to the BSW module.
Documentation Documentation
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=bswModuleDocumentation, bswModule
Documentation.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=6
expectedEntry BswModuleEntry * ref Indicates an entry which is required by this module.
Replacement of outgoingCallback / requiredEntry.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=expectedEntry.bswModuleEntry, expected
Entry.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
implemented BswModuleEntry * ref Specifies an entry provided by this module which can be
Entry called by other modules. This includes "main" functions,
interrupt routines, and callbacks. Replacement of
providedEntry / expectedCallback.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=implementedEntry.bswModuleEntry,
implementedEntry.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
internalBehavior BswInternalBehavior * aggr The various BswInternalBehaviors associated with a Bsw
ModuleDescription can be distributed over several
physical files. Therefore the aggregation is <<atp
Splitable>>.
Stereotypes: atpSplitable
Tags:
atp.Splitkey=internalBehavior.shortName
xml.sequenceOffset=65
moduleId PositiveInteger 0..1 attr Refers to the BSW Module Identifier defined by the
AUTOSAR standard. For non-standardized modules, a
proprietary identifier can be optionally chosen.
Tags: xml.sequenceOffset=5
providedClient BswModuleClientServer * aggr Specifies that this module provides a client server entry
ServerEntry Entry which can be called from another partition or core.This
entry is declared locally to this context and will be
connected to the requiredClientServerEntry of another or
the same module via the configuration of the BSW
Scheduler.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=providedClientServerEntry.shortName,
providedClientServerEntry.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=45
5
4
Class BswModuleDescription
providedData VariableDataPrototype * aggr Specifies a data prototype provided by this module in
order to be read from another partition or core.The
providedData is declared locally to this context and will be
connected to the requiredData of another or the same
module via the configuration of the BSW Scheduler.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=providedData.shortName, provided
Data.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=55
providedMode ModeDeclarationGroup * aggr A set of modes which is owned and provided by this
Group Prototype module or cluster. It can be connected to the required
ModeGroups of other modules or clusters via the
configuration of the BswScheduler. It can also be
synchronized with modes provided via ports by an
associated ServiceSwComponentType, EcuAbstraction
SwComponentType or ComplexDeviceDriverSw
ComponentType.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=providedModeGroup.shortName, provided
ModeGroup.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=25
releasedTrigger Trigger * aggr A Trigger released by this module or cluster. It can be
connected to the requiredTriggers of other modules or
clusters via the configuration of the BswScheduler. It can
also be synchronized with Triggers provided via ports by
an associated ServiceSwComponentType, Ecu
AbstractionSwComponentType or ComplexDeviceDriver
SwComponentType.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=releasedTrigger.shortName, released
Trigger.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=35
requiredClient BswModuleClientServer * aggr Specifies that this module requires a client server entry
ServerEntry Entry which can be implemented on another partition or
core.This entry is declared locally to this context and will
be connected to the providedClientServerEntry of another
or the same module via the configuration of the BSW
Scheduler.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=requiredClientServerEntry.shortName,
requiredClientServerEntry.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=50
5
4
Class BswModuleDescription
requiredData VariableDataPrototype * aggr Specifies a data prototype required by this module in oder
to be provided from another partition or core.The required
Data is declared locally to this context and will be
connected to the providedData of another or the same
module via the configuration of the BswScheduler.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=requiredData.shortName, required
Data.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=60
requiredMode ModeDeclarationGroup * aggr Specifies that this module or cluster depends on a certain
Group Prototype mode group. The requiredModeGroup is local to this
context and will be connected to the providedModeGroup
of another module or cluster via the configuration of the
BswScheduler.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=requiredModeGroup.shortName, required
ModeGroup.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=30
requiredTrigger Trigger * aggr Specifies that this module or cluster reacts upon an
external trigger.This requiredTrigger is declared locally to
this context and will be connected to the providedTrigger
of another module or cluster via the configuration of the
BswScheduler.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=requiredTrigger.shortName, required
Trigger.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
xml.sequenceOffset=40
Class DependencyOnArtifact
Package M2::AUTOSARTemplates::CommonStructure::Implementation
Note Dependency on the existence of another artifact, e.g. a library.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable
Aggregated by Implementation.generatedArtifact, Implementation.requiredArtifact, Implementation.requiredGenerator
Tool
Attribute Type Mult. Kind Note
artifact AutosarEngineering 0..1 aggr The specified artifact needs to exist.
Descriptor Object
usage DependencyUsage * attr Specification for which process step(s) this dependency is
Enum required.
Class EcucModuleConfigurationValues
Package M2::AUTOSARTemplates::ECUCDescriptionTemplate
Note Head of the configuration of one Module. A Module can be a BSW module as well as the RTE and ECU
Infrastructure.
As part of the BSW module description, the EcucModuleConfigurationValues element has two different
roles:
The recommendedConfiguration contains parameter values recommended by the BSW module vendor.
The preconfiguredConfiguration contains values for those parameters which are fixed by the
implementation and cannot be changed.
These two EcucModuleConfigurationValues are used when the base EcucModuleConfigurationValues
(as part of the base ECU configuration) is created to fill parameters with initial values.
Tags: atp.recommendedPackage=EcucModuleConfigurationValuess
Base ARElement, ARObject, CollectableElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Aggregated by ARPackage.element
Attribute Type Mult. Kind Note
container EcucContainerValue * aggr Aggregates all containers that belong to this module
configuration.
atpVariation: [RS_ECUC_00078]
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=container.shortName, container.variation
Point.shortLabel
vh.latestBindingTime=postBuild
xml.sequenceOffset=10
definition EcucModuleDef 0..1 ref Reference to the definition of this EcucModule
ConfigurationValues element. Typically, this is a vendor
specific module configuration.
Tags: xml.sequenceOffset=-10
ecucDefEdition RevisionLabelString 0..1 attr This is the version info of the ModuleDef ECUC
Parameter definition to which this values conform to / are
based on.
For the Definition of ModuleDef ECUC Parameters the
AdminData shall be used to express the semantic
changes. The compatibility rules between the definition
and value revision labels is up to the module’s vendor.
implementation EcucConfiguration 0..1 attr Specifies the kind of deliverable this EcucModule
ConfigVariant VariantEnum ConfigurationValues element provides. If this element is
not used in a particular role (e.g. preconfigured
Configuration or recommendedConfiguration) then the
value shall be one of VariantPreCompile, VariantLink
Time, VariantPostBuild.
module BswImplementation 0..1 ref Referencing the BSW module description, which this
Description EcucModuleConfigurationValues element is configuring.
This is optional because the EcucModuleConfiguration
Values element is also used to configure the ECU
infrastructure (memory map) or Application SW-Cs.
However in case the EcucModuleConfigurationValues are
used to configure the module, the reference is mandatory
in order to fetch module specific "common" published
information.
postBuildVariant Boolean 0..1 attr Indicates whether a module implementation has or plans
Used to have (i.e., introduced at link or post-build time) new
post-build variation points. TRUE means yes, FALSE
means no. If the attribute is not defined, FALSE
semantics shall be assumed.
Table A.7: EcucModuleConfigurationValues
Class EcucValueCollection
Package M2::AUTOSARTemplates::ECUCDescriptionTemplate
Note This represents the anchor point of the ECU configuration description.
Tags: atp.recommendedPackage=EcucValueCollections
Base ARElement, ARObject, CollectableElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Aggregated by ARPackage.element
Attribute Type Mult. Kind Note
ecucValue EcucModule * ref References to the configuration of individual software
ConfigurationValues modules that are present on this ECU.
atpVariation: [RS_ECUC_00079]
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=ecucValue.ecucModuleConfigurationValues,
ecucValue.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
ecuExtract System 0..1 ref Represents the extract of the System Configuration that is
relevant for the ECU configured with that ECU
Configuration Description.
4
Class Identifiable (abstract)
adminData AdminData 0..1 aggr This represents the administrative data for the identifiable
object.
Stereotypes: atpSplitable
Tags:
atp.Splitkey=adminData
xml.sequenceOffset=-40
annotation Annotation * aggr Possibility to provide additional notes while defining a
model element (e.g. the ECU Configuration Parameter
Values). These are not intended as documentation but
are mere design notes.
Tags: xml.sequenceOffset=-25
category CategoryString 0..1 attr The category is a keyword that specializes the semantics
of the Identifiable. It affects the expected existence of
attributes and the applicability of constraints.
Tags: xml.sequenceOffset=-50
desc MultiLanguageOverview 0..1 aggr This represents a general but brief (one paragraph)
Paragraph description what the object in question is about. It is only
one paragraph! Desc is intended to be collected into
overview tables. This property helps a human reader to
identify the object in question.
More elaborate documentation, (in particular how the
object is built or used) should go to "introduction".
Tags: xml.sequenceOffset=-60
introduction DocumentationBlock 0..1 aggr This represents more information about how the object in
question is built or is used. Therefore it is a
DocumentationBlock.
Tags: xml.sequenceOffset=-30
uuid String 0..1 attr The purpose of this attribute is to provide a globally
unique identifier for an instance of a meta-class. The
values of this attribute should be globally unique strings
prefixed by the type of identifier. For example, to include a
DCE UUID as defined by The Open Group, the UUID
would be preceded by "DCE:". The values of this attribute
may be used to support merging of different AUTOSAR
models. The form of the UUID (Universally Unique
Identifier) is taken from a standard defined by the Open
Group (was Open Software Foundation). This standard is
widely used, including by Microsoft for COM (GUIDs) and
by many companies for DCE, which is based on CORBA.
The method for generating these 128-bit IDs is published
in the standard and the effectiveness and uniqueness of
the IDs is not in practice disputed. If the id namespace is
omitted, DCE is assumed. An example is
"DCE:2fac1234-31f8-11b4-a222-08002b34c003". The
uuid attribute has no semantic meaning for an AUTOSAR
model and there is no requirement for AUTOSAR tools to
manage the timestamp.
Tags: xml.attribute=true
4
Class Implementation (abstract)
required DependencyOnArtifact * aggr Relates this Implementation to a generator tool in order to
GeneratorTool generate additional artifacts during integration.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=requiredGeneratorTool.shortName, required
GeneratorTool.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
resource ResourceConsumption 0..1 aggr All static and dynamic resources for each implementation
Consumption are described within the ResourceConsumption class.
Stereotypes: atpSplitable
Tags: atp.Splitkey=resourceConsumption.shortName
swcBsw SwcBswMapping 0..1 ref This allows a mapping between an SWC and a BSW
Mapping behavior to be attached to an implementation description
(for AUTOSAR Service, ECU Abstraction and Complex
Driver Components). It is up to the methodology to define
whether this reference has to be set for the Swc- or Bsw
Implementtion or for both.
swVersion RevisionLabelString 0..1 attr Software version of this implementation. The numbering
contains three levels (like major, minor, patch), its values
are vendor specific.
usedCode String 0..1 attr Optional: code generator used.
Generator
vendorId PositiveInteger 0..1 attr Vendor ID of this Implementation according to the
AUTOSAR vendor list
Class ImplementationDataType
Package M2::AUTOSARTemplates::CommonStructure::ImplementationDataTypes
Note Describes a reusable data type on the implementation level. This will typically correspond to a typedef in
C-code.
Tags: atp.recommendedPackage=ImplementationDataTypes
Base ARElement, ARObject, AbstractImplementationDataType, AtpBlueprint, AtpBlueprintable, AtpClassifier ,
AtpType, AutosarDataType, CollectableElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Aggregated by ARPackage.element
Attribute Type Mult. Kind Note
dynamicArray String 0..1 attr Specifies the profile which the array will follow in case this
SizeProfile data type is a variable size array.
isStructWith Boolean 0..1 attr This attribute is only valid if the attribute category is set to
Optional STRUCTURE.
Element
If set to true, this attribute indicates that the
ImplementationDataType has been created with the
intention to define at least one element of the structure as
optional.
5
4
Class ImplementationDataType
subElement ImplementationData * aggr Specifies an element of an array, struct, or union data
(ordered) TypeElement type.
The aggregation of ImplementionDataTypeElement is
subject to variability with the purpose to support the
conditional existence of elements inside a Implementation
DataType representing a structure.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=subElement.shortName, sub
Element.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
symbolProps SymbolProps 0..1 aggr This represents the SymbolProps for the Implementation
DataType.
Stereotypes: atpSplitable
Tags: atp.Splitkey=symbolProps.shortName
typeEmitter NameToken 0..1 attr This attribute is used to control which part of the
AUTOSAR toolchain is supposed to trigger data type
definitions.
Table A.12: ImplementationDataType
Enumeration MemoryAllocationKeywordPolicyType
Package M2::MSR::DataDictionary::AuxillaryObjects
Note Enumeration to specify the name pattern of the Memory Allocation Keyword.
Aggregated by SwAddrMethod.memoryAllocationKeywordPolicy
Literal Description
addrMethodShort The MemorySection shortNames of referring MemorySections and therefore the belonging Memory
Name Allocation Keywords in the code are build with the shortName of the SwAddrMethod. This is the
default value if the attribute does not exist.
Tags: atp.EnumerationLiteralIndex=0
addrMethodShort The MemorySection shortNames of referring MemorySections and therefore the belonging Memory
NameAndAlignment Allocation Keywords in the code are build with the shortName of the SwAddrMethod and a variable
alignment postfix.
Thereby the alignment postfix needs to be consistent with the alignment attribute of the related
MemorySection.
Tags: atp.EnumerationLiteralIndex=1
Class MemorySection
Package M2::AUTOSARTemplates::CommonStructure::ResourceConsumption::MemorySectionUsage
Note Provides a description of an abstract memory section used in the Implementation for code or data. It shall
be declared by the Implementation Description of the module or component, which actually allocates the
memory in its code. This means in case of data prototypes which are allocated by the RTE, that the
generated Implementation Description of the RTE shall contain the corresponding MemorySections.
The attribute "symbol" (if symbol is missing: "shortName") defines the module or component specific
section name used in the code. For details see the document "Specification of Memory Mapping".
Typically the section name is build according the pattern:
<SwAddrMethod shortName>[_<further specialization nominator>][_<alignment>]
where
• [<SwAddrMethod shortName>] is the shortName of the referenced SwAddrMethod
• [_<further specialization nominator>] is an optional infix to indicate the specialization in the case
that several MemorySections for different purpose of the same Implementation Description referring to
the same or equally named SwAddrMethods.
• [_<alignment>] is the alignment attributes value and is only applicable in the case that the memory
AllocationKeywordPolicy value of the referenced SwAddrMethod is set to addrMethodShortNameAnd
Alignment
MemorySection used to Implement the code of RunnableEntitys and BswSchedulableEntitys shall have a
symbol (if missing: shortName) identical to the referred SwAddrMethod to conform to the generated RTE
header files.
In addition to the section name described above, a prefix is used in the corresponding macro code in
order to define a name space. This prefix is by default given by the shortName of the BswModule
Description resp. the SwComponentType. It can be superseded by the prefix attribute.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable
Aggregated by ResourceConsumption.memorySection
Attribute Type Mult. Kind Note
alignment AlignmentType 0..1 attr The attribute describes the typical alignment of objects
within this memory section.
executableEntity ExecutableEntity * ref Reference to the ExecutableEntitites located in this
section. This allows to locate different Executable
Entitities in different sections even if the associated Sw
Addrmethod is the same.
This is applicable to code sections only.
option Identifier * attr The service (in AUTOSAR: BswModuleEntry) is
implemented in a way that it either resolves to aninline
function or to a standard function depending on
conditions set at a later point in time.
The following two values are standardized (to be used for
code sections only and exclusively to each other):
• INLINE - The code section is declared with the keyword
"inline".
• LOCAL_INLINE - The code section is declared with the
keyword "static inline".
In both cases (INLINE and LOCAL_INLINE) the inline
expansion depends on the compiler. Depending on this,
the code section either corresponds to an actual section
in memory or is put into the section of the caller.
prefix SectionNamePrefix 0..1 ref The prefix used to set the memory section’s namespace
in the code. The existence of a prefix element
supersedes rules for a default prefix (such as the Bsw
ModuleDescription’s shortName). This allows the user to
define several name spaces for memory sections within
the scope of one module, cluster or SWC.
size PositiveInteger 0..1 attr The size in bytes of the section.
5
4
Class MemorySection
swAddrmethod SwAddrMethod 0..1 ref This association indicates that this module specific
(abstract) memory section is part of an overall SwAddr
Method, referred by the upstream declarations (e.g.
calibration parameters, data element prototypes, code
entities) which share a common addressing strategy. This
can be evaluated for the ECU configuration of the build
support.
This association shall always be declared by the
Implementation description of the module or component,
which allocates the memory in its code. This means in
case of data prototypes which are allocated by the RTE,
that the software components only declare the grouping
of its data prototypes to SwAddrMethods, and the
generated Implementation Description of the RTE actually
sets up this association.
symbol Identifier 0..1 attr Defines the section name as explained in the main
description. By using this attribute for code generation
(instead of the shortName) it is possible to define several
different MemorySections having the same name - e.g.
symbol = CODE - but using different sectionName
Prefixes.
Table A.14: MemorySection
Enumeration MemorySectionType
Package M2::MSR::DataDictionary::AuxillaryObjects
Note Enumeration to specify the essential nature of the data which can be allocated in a common memory
class by the means of the AUTOSAR Memory Mapping.
Aggregated by SwAddrMethod.sectionType
Literal Description
calibrationVariables This memory section is reserved for "virtual variables" that are computed by an MCD system during a
measurement session but do not exist in the ECU memory.
Tags: atp.EnumerationLiteralIndex=2
calprm To be used for calibratable constants of ECU-functions.
Tags: atp.EnumerationLiteralIndex=3
code To be used for mapping code to application block, boot block, external flash etc.
Tags: atp.EnumerationLiteralIndex=4
configData Constants with attributes that show that they reside in one segment for module configuration.
Tags: atp.EnumerationLiteralIndex=5
const To be used for global or static constants.
Tags: atp.EnumerationLiteralIndex=6
excludeFromFlash This memory section is reserved for "virtual parameters" that are taken for computing the values of
so-called dependent parameter of an MCD system. Dependent Parameters that are not at the same
time "virtual parameters" are allocated in the ECU memory.
Virtual parameters, on the other hand, are not allocated in the ECU memory. Virtual parameters exist
in the ECU Hex file for the purpose of being considered (for computing the values of dependent
parameters) during an offline-calibration session.
Tags: atp.EnumerationLiteralIndex=7
var To be used for global or static variables. The expected initialization is specified with the attribute
sectionInitializationPolicy.
Tags: atp.EnumerationLiteralIndex=9
Class RunnableEntity
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior
Note A RunnableEntity represents the smallest code-fragment that is provided by an AtomicSwComponent
Type and are executed under control of the RTE. RunnableEntities are for instance set up to respond to
data reception or operation invocation on a server.
Base ARObject, AtpClassifier , AtpFeature, AtpStructureElement, ExecutableEntity , Identifiable, Multilanguage
Referrable, Referrable
Aggregated by AtpClassifier .atpFeature, SwcInternalBehavior.runnable
Attribute Type Mult. Kind Note
argument RunnableEntity * aggr This represents the formal definition of a an argument to
(ordered) Argument a RunnableEntity.
asynchronous AsynchronousServer * aggr The server call result point admits a runnable to fetch the
ServerCall CallResultPoint result of an asynchronous server call.
ResultPoint
The aggregation of AsynchronousServerCallResultPoint
is subject to variability with the purpose to support the
conditional existence of client server PortPrototypes and
the variant existence of server call result points in the
implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=asynchronousServerCallResultPoint.short
Name, asynchronousServerCallResultPoint.variation
Point.shortLabel
vh.latestBindingTime=preCompileTime
canBeInvoked Boolean 0..1 attr If the value of this attribute is set to "true" the enclosing
Concurrently RunnableEntity can be invoked concurrently (even for one
instance of the corresponding AtomicSwComponent
Type). This implies that it is the responsibility of the
implementation of the RunnableEntity to take care of this
form of concurrency.
5
4
Class RunnableEntity
dataRead VariableAccess * aggr RunnableEntity has implicit read access to dataElement
Access of a sender-receiver PortPrototype or nv data of a nv data
PortPrototype.
The aggregation of dataReadAccess is subject to
variability with the purpose to support the conditional
existence of sender receiver ports or the variant existence
of dataReadAccess in the implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=dataReadAccess.shortName, dataRead
Access.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
dataReceive VariableAccess * aggr RunnableEntity has explicit read access to dataElement
PointBy of a sender-receiver PortPrototype or nv data of a nv data
Argument PortPrototype. The result is passed back to the
application by means of an argument in the function
signature.
The aggregation of dataReceivePointByArgument is
subject to variability with the purpose to support the
conditional existence of sender receiver PortPrototype or
the variant existence of data receive points in the
implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=dataReceivePointByArgument.shortName,
dataReceivePointByArgument.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
dataReceive VariableAccess * aggr RunnableEntity has explicit read access to dataElement
PointByValue of a sender-receiver PortPrototype or nv data of a nv data
PortPrototype.
The result is passed back to the application by means of
the return value. The aggregation of dataReceivePointBy
Value is subject to variability with the purpose to support
the conditional existence of sender receiver ports or the
variant existence of data receive points in the
implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=dataReceivePointByValue.shortName, data
ReceivePointByValue.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
dataSendPoint VariableAccess * aggr RunnableEntity has explicit write access to dataElement
of a sender-receiver PortPrototype or nv data of a nv data
PortPrototype.
The aggregation of dataSendPoint is subject to variability
with the purpose to support the conditional existence of
sender receiver PortPrototype or the variant existence of
data send points in the implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=dataSendPoint.shortName, dataSend
Point.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
5
4
Class RunnableEntity
dataWrite VariableAccess * aggr RunnableEntity has implicit write access to dataElement
Access of a sender-receiver PortPrototype or nv data of a nv data
PortPrototype.
The aggregation of dataWriteAccess is subject to
variability with the purpose to support the conditional
existence of sender receiver ports or the variant existence
of dataWriteAccess in the implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=dataWriteAccess.shortName, dataWrite
Access.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
external ExternalTriggeringPoint * aggr The aggregation of ExternalTriggeringPoint is subject to
TriggeringPoint variability with the purpose to support the conditional
existence of trigger ports or the variant existence of
external triggering points in the implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=externalTriggeringPoint.ident.shortName,
externalTriggeringPoint.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
internal InternalTriggeringPoint * aggr The aggregation of InternalTriggeringPoint is subject to
TriggeringPoint variability with the purpose to support the variant
existence of internal triggering points in the
implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=internalTriggeringPoint.shortName, internal
TriggeringPoint.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
modeAccess ModeAccessPoint * aggr The runnable has a mode access point. The aggregation
Point of ModeAccessPoint is subject to variability with the
purpose to support the conditional existence of mode
ports or the variant existence of mode access points in
the implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=modeAccessPoint.ident.shortName, mode
AccessPoint.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
modeSwitch ModeSwitchPoint * aggr The runnable has a mode switch point. The aggregation
Point of ModeSwitchPoint is subject to variability with the
purpose to support the conditional existence of mode
ports or the variant existence of mode switch points in the
implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=modeSwitchPoint.shortName, modeSwitch
Point.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
5
4
Class RunnableEntity
parameter ParameterAccess * aggr The presence of a ParameterAccess implies that a
Access RunnableEntity needs read only access to a Parameter
DataPrototype which may either be local or within a Port
Prototype.
The aggregation of ParameterAccess is subject to
variability with the purpose to support the conditional
existence of parameter ports and component local
parameters as well as the variant existence of Parameter
Access (points) in the implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=parameterAccess.shortName, parameter
Access.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
readLocal VariableAccess * aggr The presence of a readLocalVariable implies that a
Variable RunnableEntity needs read access to a VariableData
Prototype in the role of implicitInterRunnableVariable or
explicitInterRunnableVariable.
The aggregation of readLocalVariable is subject to
variability with the purpose to support the conditional
existence of implicitInterRunnableVariable and explicit
InterRunnableVariable or the variant existence of read
LocalVariable (points) in the implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=readLocalVariable.shortName, readLocal
Variable.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
serverCallPoint ServerCallPoint * aggr The RunnableEntity has a ServerCallPoint. The
aggregation of ServerCallPoint is subject to variability with
the purpose to support the conditional existence of client
server PortPrototypes or the variant existence of server
call points in the implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=serverCallPoint.shortName, serverCall
Point.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
symbol CIdentifier 0..1 attr The symbol describing this RunnableEntity’s entry point.
This is considered the API of the RunnableEntity and is
required during the RTE contract phase.
waitPoint WaitPoint * aggr The WaitPoint associated with the RunnableEntity.
writtenLocal VariableAccess * aggr The presence of a writtenLocalVariable implies that a
Variable RunnableEntity needs write access to a VariableData
Prototype in the role of implicitInterRunnableVariable or
explicitInterRunnableVariable.
The aggregation of writtenLocalVariable is subject to
variability with the purpose to support the conditional
existence of implicitInterRunnableVariable and explicit
InterRunnableVariable or the variant existence of written
LocalVariable (points) in the implementation.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=writtenLocalVariable.shortName, written
LocalVariable.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
Class SectionNamePrefix
Package M2::AUTOSARTemplates::CommonStructure::ResourceConsumption::MemorySectionUsage
Note A prefix to be used for generated code artifacts defining a memory section name in the source code of
the using module or SWC.
Base ARObject, ImplementationProps, Referrable
Aggregated by ResourceConsumption.sectionNamePrefix
Attribute Type Mult. Kind Note
implementedIn DependencyOnArtifact 0..1 ref Optional reference that allows to Indicate the code artifact
(header file) containing the preprocessor implementation
of memory sections with this prefix.
The usage of this link supersedes the usage of a memory
mapping header with the default name (derived from the
BswModuleDescription’s shortName).
Class SwAddrMethod
Package M2::MSR::DataDictionary::AuxillaryObjects
Note Used to assign a common addressing method, e.g. common memory section, to data or code objects.
These objects could actually live in different modules or components.
Tags: atp.recommendedPackage=SwAddrMethods
Base ARElement, ARObject, AtpBlueprint, AtpBlueprintable, CollectableElement, Identifiable, Multilanguage
Referrable, PackageableElement, Referrable
Aggregated by ARPackage.element
Attribute Type Mult. Kind Note
memory MemoryAllocation 0..1 attr Enumeration to specify the name pattern of the Memory
Allocation KeywordPolicyType Allocation Keyword.
KeywordPolicy
option Identifier * attr This attribute introduces the ability to specify further
intended properties of the MemorySection in with the
related objects shall be placed.
These properties are handled as to be selected. The
intended options are mentioned in the list.
In the Memory Mapping configuration, this option list is
used to determine an appropriate MemMapAddressing
ModeSet.
section SectionInitialization 0..1 attr Specifies the expected initialization of the variables
Initialization PolicyType (inclusive those which are implementing VariableData
Policy Prototypes). Therefore this is an implementation
constraint for initialization code of BSW modules
(especially RTE) as well as the start-up code which
initializes the memory segment to which the AutosarData
Prototypes referring to the SwAddrMethod’s are later on
mapped.
If the attribute is not defined it has the identical semantic
as the attribute value "INIT"
sectionType MemorySectionType 0..1 attr Defines the type of memory sections which can be
associated with this addressing method.
Class SwBaseType
Package M2::MSR::AsamHdo::BaseTypes
Note This meta-class represents a base type used within ECU software.
Tags: atp.recommendedPackage=BaseTypes
Base ARElement, ARObject, AtpBlueprint, AtpBlueprintable, BaseType, CollectableElement, Identifiable,
MultilanguageReferrable, PackageableElement, Referrable
Aggregated by ARPackage.element
Attribute Type Mult. Kind Note
– – – – –
Table A.20: SwBaseType
Class SwcImplementation
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcImplementation
Note This meta-class represents a specialization of the general Implementation meta-class with respect to the
usage in application software.
Tags: atp.recommendedPackage=SwcImplementations
Base ARElement, ARObject, CollectableElement, Identifiable, Implementation, MultilanguageReferrable,
PackageableElement, Referrable
Aggregated by ARPackage.element
Attribute Type Mult. Kind Note
behavior SwcInternalBehavior 0..1 ref The internal behavior implemented by this
Implementation.
perInstance PerInstanceMemory * aggr Allows a definition of the size of the per-instance memory
MemorySize Size for this implementation. The aggregation of PerInstance
MemorySize is subject to variability with the purpose to
support variability in the software components
implementations. Typically different algorithms in the
implementation are requiring different number of memory
objects, in this case PerInstanceMemory.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=perInstanceMemorySize, perInstance
MemorySize.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
required String 0..1 attr Identify a specific RTE vendor. This information is
RTEVendor potentially important at the time of integrating (in
particular: linking) the application code with the RTE. The
semantics is that (if the association exists) the
corresponding code has been created to fit to the
vendor-mode RTE provided by this specific vendor.
Attempting to integrate the code with another RTE
generated in vendor mode is in general not possible.
Class SwcInternalBehavior
Package M2::AUTOSARTemplates::SWComponentTemplate::SwcInternalBehavior
Note The SwcInternalBehavior of an AtomicSwComponentType describes the relevant aspects of the
software-component with respect to the RTE, i.e. the RunnableEntities and the RTEEvents they respond
to.
Base ARObject, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, InternalBehavior , Multilanguage
Referrable, Referrable
Aggregated by AtomicSwComponentType.internalBehavior, AtpClassifier .atpFeature
Attribute Type Mult. Kind Note
5
4
Class SwcInternalBehavior
arTypedPer VariableDataPrototype * aggr Defines an AUTOSAR typed memory-block that needs to
Instance be available for each instance of the SW-component.
Memory
This is typically only useful if supportsMultipleInstantiation
is set to "true" or if the component defines NVRAM
access via permanent blocks.
The aggregation of arTypedPerInstanceMemory is subject
to variability with the purpose to support variability in the
software component’s implementations. Typically different
algorithms in the implementation are requiring different
number of memory objects.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=arTypedPerInstanceMemory.shortName, ar
TypedPerInstanceMemory.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
event RTEEvent * aggr This is a RTEEvent specified for the particular Swc
InternalBehavior.
The aggregation of RTEEvent is subject to variability with
the purpose to support the conditional existence of RTE
events. Note: the number of RTE events might vary due
to the conditional existence of PortPrototypes using Data
ReceivedEvents or due to different scheduling needs of
algorithms.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=event.shortName, event.variationPoint.short
Label
vh.latestBindingTime=preCompileTime
exclusiveArea SwcExclusiveArea * aggr Options how to generate the ExclusiveArea related APIs.
Policy Policy When no SwcExclusiveAreaPolicy is specified for an
ExclusiveArea the default values apply.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=exclusiveAreaPolicy, exclusiveArea
Policy.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
explicitInter VariableDataPrototype * aggr Implement state message semantics for establishing
Runnable communication among runnables of the same
Variable component. The aggregation of explicitInterRunnable
Variable is subject to variability with the purpose to
support variability in the software components
implementations. Typically different algorithms in the
implementation are requiring different number of memory
objects.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=explicitInterRunnableVariable.shortName,
explicitInterRunnableVariable.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
5
4
Class SwcInternalBehavior
implicitInter VariableDataPrototype * aggr Implement state message semantics for establishing
Runnable communication among runnables of the same
Variable component. The aggregation of implicitInterRunnable
Variable is subject to variability with the purpose to
support variability in the software components
implementations. Typically different algorithms in the
implementation are requiring different number of memory
objects.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=implicitInterRunnableVariable.shortName,
implicitInterRunnableVariable.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
includedData IncludedDataTypeSet * aggr The includedDataTypeSet is used by a software
TypeSet component for its implementation.
Stereotypes: atpSplitable
Tags: atp.Splitkey=includedDataTypeSet
includedMode IncludedMode * aggr This aggregation represents the included Mode
Declaration DeclarationGroupSet DeclarationGroups
GroupSet
Stereotypes: atpSplitable
Tags: atp.Splitkey=includedModeDeclarationGroupSet
instantiation InstantiationDataDef * aggr The purpose of this is that within the context of a given
DataDefProps Props SwComponentType some data def properties of individual
instantiations can be modified. The aggregation of
InstantiationDataDefProps is subject to variability with the
purpose to support the conditional existence of Port
Prototypes and component local memories like "per
InstanceParameter" or "arTypedPerInstanceMemory".
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=instantiationDataDefProps, instantiationData
DefProps.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
perInstance PerInstanceMemory * aggr Defines a per-instance memory object needed by this
Memory software component. The aggregation of PerInstance
Memory is subject to variability with the purpose to
support variability in the software components
implementations. Typically different algorithms in the
implementation are requiring different number of memory
objects.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=perInstanceMemory.shortName, perInstance
Memory.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
5
4
Class SwcInternalBehavior
perInstance ParameterData * aggr Defines parameter(s) or characteristic value(s) that needs
Parameter Prototype to be available for each instance of the
software-component. This is typically only useful if
supportsMultipleInstantiation is set to "true". The
aggregation of perInstanceParameter is subject to
variability with the purpose to support variability in the
software components implementations. Typically different
algorithms in the implementation are requiring different
number of memory objects.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=perInstanceParameter.shortName, per
InstanceParameter.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
portAPIOption PortAPIOption * aggr Options for generating the signature of port-related calls
from a runnable to the RTE and vice versa. The
aggregation of PortPrototypes is subject to variability with
the purpose to support the conditional existence of ports.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=portAPIOption, portAPIOption.variation
Point.shortLabel
vh.latestBindingTime=preCompileTime
runnable RunnableEntity * aggr This is a RunnableEntity specified for the particular Swc
InternalBehavior.
The aggregation of RunnableEntity is subject to variability
with the purpose to support the conditional existence of
RunnableEntities. Note: the number of RunnableEntities
might vary due to the conditional existence of Port
Prototypes using DataReceivedEvents or due to different
scheduling needs of algorithms.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=runnable.shortName, runnable.variation
Point.shortLabel
vh.latestBindingTime=preCompileTime
service SwcService * aggr Defines the requirements on AUTOSAR Services for a
Dependency Dependency particular item.
The aggregation of SwcServiceDependency is subject to
variability with the purpose to support the conditional
existence of ports as well as the conditional existence of
ServiceNeeds.
The SwcServiceDependency owned by an SwcInternal
Behavior can be located in a different physical file in order
to support that SwcServiceDependency might be
provided in later development steps or even by different
expert domain (e.g OBD expert for Obd related Service
Needs) tools. Therefore the aggregation is <<atp
Splitable>>.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=serviceDependency.shortName, service
Dependency.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
5
4
Class SwcInternalBehavior
shared ParameterData * aggr Defines parameter(s) or characteristic value(s) shared
Parameter Prototype between SwComponentPrototypes of the same Sw
ComponentType The aggregation of sharedParameter is
subject to variability with the purpose to support variability
in the software components implementations. Typically
different algorithms in the implementation are requiring
different number of memory objects.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=sharedParameter.shortName, shared
Parameter.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
supports Boolean 0..1 attr Indicate whether the corresponding software-component
Multiple can be multiply instantiated on one ECU. In this case the
Instantiation attribute will result in an appropriate component API on
programming language level (with or without instance
handle).
variationPoint VariationPointProxy * aggr Proxy of a variation points in the C/C++ implementation.
Proxy
Stereotypes: atpSplitable
Tags: atp.Splitkey=variationPointProxy.shortName
Class SwcToImplMapping
Package M2::AUTOSARTemplates::SystemTemplate::SWmapping
Note Map instances of an AtomicSwComponentType to a specific Implementation.
Base ARObject, Identifiable, MultilanguageReferrable, Referrable
Aggregated by SystemMapping.swImplMapping
Attribute Type Mult. Kind Note
component SwComponent * iref Reference to the software component instances that are
Prototype being mapped to the specified Implementation. The
targeted SwComponentPrototype needs be of the Atomic
SwComponentType being implemented by the referenced
Implementation.
InstanceRef implemented by: ComponentInSystem
InstanceRef
component SwcImplementation 0..1 ref Reference to a specific Implementation description.
Implementation
Implementation to be used by the specified SW
component instance. This allows to achieve more precise
estimates for the resource consumption that results from
mapping the instance of an atomic SW component onto
an ECU.
Class SystemMapping
Package M2::AUTOSARTemplates::SystemTemplate
Note The system mapping aggregates all mapping aspects (mapping of SW components to ECUs, mapping of
data elements to signals, and mapping constraints).
Base ARObject, Identifiable, MultilanguageReferrable, Referrable
Aggregated by System.mapping
Attribute Type Mult. Kind Note
5
4
Class SystemMapping
application ApplicationPartitionTo * aggr Mapping of ApplicationPartitions to EcuPartitions
PartitionToEcu EcuPartitionMapping
Stereotypes: atpSplitable; atpVariation
Partition
Tags:
Mapping
atp.Splitkey=applicationPartitionToEcuPartition
Mapping.shortName, applicationPartitionToEcuPartition
Mapping.variationPoint.shortLabel
vh.latestBindingTime=postBuild
appOsTask AppOsTaskProxyToEcu * aggr Mapping of an OsTaskProxy that was created in the
ProxyToEcu TaskProxyMapping context of a SwComponent to an OsTaskProxy that was
TaskProxy created in the context of an Ecu.
Mapping
com ComManagement * aggr Mappings between Mode Management PortGroups and
Management Mapping communication channels.
Mapping
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=comManagementMapping.shortName, com
ManagementMapping.variationPoint.shortLabel
vh.latestBindingTime=systemDesignTime
cryptoService CryptoServiceMapping * aggr This aggregation represents the collection of crypto
Mapping service mappings in the context of the enclosing System
Mapping.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=cryptoServiceMapping.shortName, crypto
ServiceMapping.variationPoint.shortLabel
vh.latestBindingTime=postBuild
dataMapping DataMapping * aggr The data mappings defined.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=dataMapping, dataMapping.variation
Point.shortLabel
vh.latestBindingTime=postBuild
ddsISignalTo DdsCpISignalToDds * aggr Collection of DdsISignalToDdsTopicMappings.
TopicMapping TopicMapping
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=ddsISignalToTopicMapping, ddsISignalTo
TopicMapping.variationPoint.shortLabel
atp.Status=candidate
vh.latestBindingTime=postBuild
ecuResource ECUMapping * aggr Mapping of hardware related topology elements onto their
Mapping counterpart definitions in the ECU Resource Template.
atpVariation: The ECU Resource type might be variable.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=ecuResourceMapping.shortName, ecu
ResourceMapping.variationPoint.shortLabel
vh.latestBindingTime=systemDesignTime
j1939Controller J1939Controller * aggr Mapping of a J1939ControllerApplication to a J1939Nm
ApplicationTo ApplicationToJ1939Nm Node.
J1939NmNode NodeMapping
Mapping
5
4
Class SystemMapping
mapping MappingConstraint * aggr Constraints that limit the mapping freedom for the
Constraint mapping of SW components to ECUs.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=mappingConstraint, mapping
Constraint.variationPoint.shortLabel
vh.latestBindingTime=systemDesignTime
pncMapping PncMapping * aggr Mappings between Virtual Function Clusters and Partial
Network Clusters.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=pncMapping, pncMapping.variation
Point.shortLabel
vh.latestBindingTime=systemDesignTime
portElementTo PortElementTo * aggr maps a communication resource to CP Software Clusters
ComResource Communication
Stereotypes: atpSplitable; atpVariation
Mapping ResourceMapping
Tags:
atp.Splitkey=portElementToComResourceMapping.short
Name, portElementToComResourceMapping.variation
Point.shortLabel
vh.latestBindingTime=postBuild
resource EcuResourceEstimation * aggr Resource estimations for this set of mappings, zero or
Estimation one per ECU instance.
atpVariation: Used ECUs are variable.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=resourceEstimation, resource
Estimation.variationPoint.shortLabel
vh.latestBindingTime=systemDesignTime
resourceTo CpSoftwareCluster * aggr Maps a Software Cluster resource to an Application
Application ResourceToApplication Partition to restrict the usage.
Partition PartitionMapping
Stereotypes: atpSplitable; atpVariation
Mapping
Tags:
atp.Splitkey=resourceToApplicationPartition
Mapping.shortName, resourceToApplicationPartition
Mapping.variationPoint.shortLabel
vh.latestBindingTime=systemDesignTime
rteEvent RteEventInSystem * aggr Separation constraint that limits the mapping freedom for
Separation Separation the mapping of RteEvents to OsTasks in the System
context.
rteEventToOs RteEventInSystemToOs * aggr Constraint that enforces a mapping of RteEvent to a
TaskProxy TaskProxyMapping particular OsTask in the System context.
Mapping
signalPath SignalPathConstraint * aggr Constraints that limit the mapping freedom for the
Constraint mapping of data elements to signals.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=signalPathConstraint, signalPath
Constraint.variationPoint.shortLabel
vh.latestBindingTime=systemDesignTime
5
4
Class SystemMapping
softwareCluster CpSoftwareClusterTo * aggr The mapping of ApplicationPartitions to a CpSoftware
ToApplication ApplicationPartition Cluster.
Partition Mapping
Stereotypes: atpSplitable; atpVariation
Mapping
Tags:
atp.Splitkey=softwareClusterToApplicationPartition
Mapping.shortName, softwareClusterToApplication
PartitionMapping.variationPoint.shortLabel
vh.latestBindingTime=systemDesignTime
softwareCluster CpSoftwareClusterTo * aggr maps a service resource to CP Software Clusters
ToResource ResourceMapping
Stereotypes: atpSplitable; atpVariation
Mapping
Tags:
atp.Splitkey=softwareClusterToResourceMapping.short
Name, softwareClusterToResourceMapping.variation
Point.shortLabel
vh.latestBindingTime=preCompileTime
swCluster CpSoftwareClusterTo * aggr The mappings of SW cluster to ECUs.
Mapping EcuInstanceMapping
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=swClusterMapping.shortName, swCluster
Mapping.variationPoint.shortLabel
vh.latestBindingTime=systemDesignTime
swcTo SwcToApplication * aggr Allows to map a given SwComponentPrototype to a
Application PartitionMapping formally defined partition at a point in time when the
Partition corresponding EcuInstance is not yet known or defined.
Mapping
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=swcToApplicationPartitionMapping.short
Name, swcToApplicationPartitionMapping.variation
Point.shortLabel
vh.latestBindingTime=postBuild
swImplMapping SwcToImplMapping * aggr The mappings of AtomicSoftwareComponent Instances to
Implementations.
atpVariation: Derived, because SwcToEcuMapping is
variable.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=swImplMapping.shortName, swImpl
Mapping.variationPoint.shortLabel
vh.latestBindingTime=preCompileTime
swMapping SwcToEcuMapping * aggr The mappings of SW components to ECUs.
atpVariation: SWC shall be mapped to other ECUs.
Stereotypes: atpSplitable; atpVariation
Tags:
atp.Splitkey=swMapping.shortName, swMapping.variation
Point.shortLabel
vh.latestBindingTime=preCompileTime
systemSignal SystemSignalGroupTo * aggr Mapping of a communication resource to a SystemSignal
GroupToCom Communication Group.
Resource ResourceMapping
Stereotypes: atpSplitable; atpVariation
Mapping
Tags:
atp.Splitkey=systemSignalGroupToComResource
Mapping.shortName, systemSignalGroupToCom
ResourceMapping.variationPoint.shortLabel
vh.latestBindingTime=systemDesignTime
5
4
Class SystemMapping
systemSignalTo SystemSignalTo * aggr Mapping of a communication resource to a SystemSignal.
ComResource Communication
Stereotypes: atpSplitable; atpVariation
Mapping ResourceMapping
Tags:
atp.Splitkey=systemSignalToComResourceMapping.short
Name, systemSignalToComResourceMapping.variation
Point.shortLabel
vh.latestBindingTime=systemDesignTime
Class VariableDataPrototype
Package M2::AUTOSARTemplates::SWComponentTemplate::Datatype::DataPrototypes
Note A VariableDataPrototype represents a formalized generic piece of information that is typically mutable by
the application software layer. VariableDataPrototype is used in various contexts and the specific context
gives the otherwise generic VariableDataPrototype a dedicated semantics.
Base ARObject, AtpFeature, AtpPrototype, AutosarDataPrototype, DataPrototype, Identifiable, Multilanguage
Referrable, Referrable
Aggregated by ApplicationInterface.indication, AtpClassifier .atpFeature, BswInternalBehavior.arTypedPerInstance
Memory, BswModuleDescription.providedData, BswModuleDescription.requiredData, BulkNvData
Descriptor.bulkNvBlock, InternalBehavior .staticMemory, NvBlockDescriptor.ramBlock, NvDataInterface.
nvData, SenderReceiverInterface.dataElement, ServiceInterface.event, SwcInternalBehavior.arTypedPer
InstanceMemory, SwcInternalBehavior.explicitInterRunnableVariable, SwcInternalBehavior.implicitInter
RunnableVariable
Attribute Type Mult. Kind Note
initValue ValueSpecification 0..1 aggr Specifies initial value(s) of the VariableDataPrototype
[SWS_MemMap_00038] [SWS_MemMap_00039]
none