Autosar CP RS Rte
Autosar CP RS Rte
AUTOSAR CP R24-11
Requirements on Runtime
Document Title Environment
Document Owner AUTOSAR
Document Responsibility AUTOSAR
Document Identification No 83
4
• RTE Implementation Plug-ins: Set
[SRS_Rte_00300] - [SRS_Rte_00317]
to type valid
4
AUTOSAR
• Removed requirement:
2013-10-31 4.1.2 Release
[SRS_Rte_00125]
Management
• Added support for concepts:
– Enhance Port Compatibility:
[SRS_Rte_00236]
– Refined Scheduling of Runnables:
[SRS_Rte_00237]
– Provide Activating RTE Event:
[SRS_Rte_00238]
AUTOSAR – Enhanced BSW Allocation:
2013-03-15 4.1.1 Release [SRS_Rte_00241], [SRS_Rte_00242],
Management [SRS_Rte_00243]
– Rapid Prototyping Support for
AUTOSAR ECUs: [SRS_Rte_00244]
• Changed requirements:
[SRS_Rte_00084]
• Changed requirements:
AUTOSAR [SRS_Rte_00155], [SRS_Rte_00154]
2011-12-22 4.0.3 Release
Management • Added requirements: [SRS_Rte_00234],
[SRS_Rte_00235]
AUTOSAR
• Changed requirements:
2011-04-15 4.0.2 Release
[SRS_Rte_00210], [SRS_Rte_00020]
Management
• Added support for concepts:
– AUTOSAR Scheduler harmonization
– RTE API enhancement
– Triggered Event
– Enhance Measurement and
AUTOSAR Calibration
2009-12-18 4.0.1 Release – Avoidance of duplicated Type
Management Definitions
– Integrity and Scaling at ports
– Implicit Communication Enhancement
– A2L Generation Support
– Support of large data types
5
5
4
4
– Fixed Data Exchange
– Variant Handling
– Time Determinism
– DLT Concept
– Memory related Concepts
– Build System Enhancement
– Multi Core Architectures
– Memory Partitioning
– Error Handling
– VMM AMM Concept
4
• Added requirement: [SRS_Rte_00152]
• Changed requirements:
AUTOSAR [SRS_Rte_00133], [SRS_Rte_00013],
Release [SRS_Rte_00077], [SRS_Rte_00075]
2006-05-16 2.0
Management • Removed requirement:
[SRS_Rte_00136]
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 Scope of this document 9
1.1 Document Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 Functional Overview 10
3 Requirements Tracing 11
4 Requirements on RTE 13
4.1 Functional Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.1.1 Interaction with AUTOSAR OS . . . . . . . . . . . . . . . . . 13
4.1.2 Interaction with AUTOSAR COM . . . . . . . . . . . . . . . . 16
4.1.3 Interaction with Application Software Components . . . . . . 20
4.1.4 Interaction with Basic Software Components . . . . . . . . . 31
4.1.5 Generation of the BSW Scheduler . . . . . . . . . . . . . . . 35
4.1.6 Support for Measurement and Calibration . . . . . . . . . . . 42
4.1.7 General Requirements . . . . . . . . . . . . . . . . . . . . . 45
4.1.8 VFB Tracing . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.1.9 Application Software Component Initialization and Finalization 76
4.1.10 API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.1.11 C/C++ API . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.1.12 Initialization and Finalization Operation . . . . . . . . . . . . 90
4.1.13 Partition Restarting and Termination . . . . . . . . . . . . . . 91
4.1.14 Fault Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.1.15 RTE Implementation Plug-Ins . . . . . . . . . . . . . . . . . . 92
4.2 Non-Functional Requirements . . . . . . . . . . . . . . . . . . . . . . 102
4.2.1 General Requirements . . . . . . . . . . . . . . . . . . . . . 102
5 Change history of AUTOSAR traceable items 103
5.1 Traceable item history of this document according to AUTOSAR Re-
lease R24-11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.1.1 Added Requirements in R24-11 . . . . . . . . . . . . . . . . 103
5.1.2 Changed Requirements in R24-11 . . . . . . . . . . . . . . . 103
5.1.3 Deleted Requirements in R24-11 . . . . . . . . . . . . . . . . 103
5.2 Traceable item history of this document according to AUTOSAR Re-
lease R23-11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.2.1 Added Requirements in R23-11 . . . . . . . . . . . . . . . . 103
5.2.2 Changed Requirements in R23-11 . . . . . . . . . . . . . . . 103
5.2.3 Deleted Requirements in R23-11 . . . . . . . . . . . . . . . . 104
5.3 Traceable item history of this document according to AUTOSAR Re-
lease R22-11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.3.1 Added Requirements in R22-11 . . . . . . . . . . . . . . . . 104
5.3.2 Changed Requirements in R22-11 . . . . . . . . . . . . . . . 104
5.3.3 Deleted Requirements in R22-11 . . . . . . . . . . . . . . . . 104
References
[1] Standardization Template
AUTOSAR_FO_TPS_StandardizationTemplate
[2] Requirements on Standardization Template
AUTOSAR_FO_RS_StandardizationTemplate
[3] Virtual Functional Bus
AUTOSAR_CP_EXP_VFB
[4] Software Component Template
AUTOSAR_CP_TPS_SoftwareComponentTemplate
[5] Basic Software Module Description Template
AUTOSAR_CP_TPS_BSWModuleDescriptionTemplate
[6] Requirements on Mode Management
AUTOSAR_CP_RS_ModeManagement
[7] Specification of Memory Mapping
AUTOSAR_CP_SWS_MemoryMapping
[8] Specification of Platform Types for Classic Platform
AUTOSAR_CP_SWS_PlatformTypes
[9] General Requirements on Basic Software Modules
AUTOSAR_CP_RS_BSWGeneral
[10] Specification of Diagnostic Log and Trace
AUTOSAR_CP_SWS_DiagnosticLogAndTrace
2 Functional Overview
The Run-Time Environment (RTE) is at the heart of the AUTOSAR ECU architecture.
The RTE is the realization (for a particular ECU) of the interfaces of the AUTOSAR
Virtual Function Bus (VFB) and thus provides the infrastructure services for commu-
nication between Application Software Components as well as facilitating access to
basic software components including the OS.
Application Software Components contain system software that is CPU and location in-
dependent. This means that, subject to constraints imposed by the system designer, an
Application Software Component can be mapped to any available ECU during system
configuration. The RTE is responsible for ensuring that components can communicate
and that the system continues to function as expected wherever the components are
mapped.
The RTE encompasses both the variable elements of the system infrastructure that
arise from the different mappings of components to ECUs as well as standardized
RTE services. The RTE is generated and/or configured for each ECU to ensure that
the RTE is optimal for the ECU.
3 Requirements Tracing
The following table references the requirements specified in [2] and links to the fulfill-
ments of these.
Requirement Description Satisfied by
[RS_BRF_00057] AUTOSAR shall define a memory [SRS_Rte_00169] [SRS_Rte_00170]
mapping mechanism
[RS_BRF_01024] AUTOSAR shall provide naming rules [SRS_Rte_00164] [SRS_Rte_00165]
for public symbols [SRS_Rte_00166] [SRS_Rte_00167]
[SRS_Rte_00168] [SRS_Rte_00252]
[RS_BRF_01136] AUTOSAR shall support variants of [SRS_Rte_00191] [SRS_Rte_00201]
configured BSW data resolved after [SRS_Rte_00202] [SRS_Rte_00203]
system start-up [SRS_Rte_00204] [SRS_Rte_00206]
[SRS_Rte_00207] [SRS_Rte_00229]
[RS_BRF_01160] AUTOSAR shall support BSW [SRS_Rte_00241] [SRS_Rte_00242]
distribution on multi-core MCUs [SRS_Rte_00243]
[RS_BRF_01216] AUTOSAR OS shall support to [SRS_Rte_00232]
synchronize ScheduleTables to an
outside time source
[RS_BRF_01240] AUTOSAR OS shall support [SRS_Rte_00210]
communication between
OSApplications
[RS_BRF_01248] AUTOSAR OS shall support to [SRS_Rte_00196]
terminate and restart OSApplications
[RS_BRF_01304] AUTOSAR RTE shall support [SRS_Rte_00179] [SRS_Rte_00183]
broadcast communication
[RS_BRF_01316] AUTOSAR RTE shall support data [SRS_Rte_00247] [SRS_Rte_00248]
transformation transparent to the [SRS_Rte_00249] [SRS_Rte_00250]
Software Components [SRS_Rte_00251] [SRS_Rte_00253]
[RS_BRF_01320] AUTOSAR RTE shall schedule SWC [SRS_Rte_00049] [SRS_Rte_00116]
and BSW modules [SRS_Rte_00211] [SRS_Rte_00212]
[SRS_Rte_00213] [SRS_Rte_00214]
[SRS_Rte_00215] [SRS_Rte_00216]
[SRS_Rte_00217] [SRS_Rte_00218]
[SRS_Rte_00219] [SRS_Rte_00220]
[SRS_Rte_00221] [SRS_Rte_00222]
[SRS_Rte_00229] [SRS_Rte_00230]
[RS_BRF_01328] AUTOSAR RTE shall support [SRS_Rte_00162] [SRS_Rte_00163]
scheduling of executable entities on [SRS_Rte_00216] [SRS_Rte_00230]
defined events [SRS_Rte_00235]
[RS_BRF_01376] AUTOSAR RTE shall support [SRS_Rte_00181] [SRS_Rte_00182]
automatic re-scaling and conversion
of port data elements
[RS_BRF_01384] AUTOSAR RTE shall support [SRS_Rte_00180]
automatic range checks of data
[RS_BRF_01392] AUTOSAR RTE shall support a [SRS_Rte_00244]
bypass implementation
[RS_BRF_01393] AUTOSAR RTE shall support a [SRS_Rte_00254] [SRS_Rte_00255]
bypass selectable after generation of [SRS_Rte_00256] [SRS_Rte_00257]
an ECU image [SRS_Rte_00258] [SRS_Rte_00259]
[SRS_Rte_00260]
[RS_BRF_01394] AUTOSAR shall support a memory [SRS_Rte_00255] [SRS_Rte_00256]
interface for RTE-managed buffer [SRS_Rte_00257] [SRS_Rte_00258]
access [SRS_Rte_00259] [SRS_Rte_00260]
5
4
Requirement Description Satisfied by
[RS_BRF_01560] AUTOSAR communication shall [SRS_Rte_00251]
support mapping of signals into
transferrable protocol data units
[RS_BRF_01568] AUTOSAR communication stack shall [SRS_Rte_00190]
support fixed size and dynamic size
signals
[RS_BRF_01616] AUTOSAR communication shall [SRS_Rte_00184]
support initial values for signals
[RS_BRF_01649] AUTOSAR communication shall [SRS_Rte_00246]
support communication of large and
dynamic data in a dedicated
optimized module
[RS_BRF_01816] AUTOSAR non-volatile memory [SRS_Rte_00176] [SRS_Rte_00177]
functionality shall organize persistent [SRS_Rte_00178] [SRS_Rte_00228]
data based on logical memory blocks [SRS_Rte_00245]
[RS_BRF_02056] AUTOSAR OS shall support timing [SRS_Rte_00193]
protection
[RS_BRF_02272] AUTOSAR shall offer tracing of [SRS_Rte_00003] [SRS_Rte_00004]
application software behavior [SRS_Rte_00005] [SRS_Rte_00008]
[SRS_Rte_00045] [SRS_Rte_00192]
[RS_Main_00150] AUTOSAR shall support the [SRS_Rte_00318] [SRS_Rte_00319]
deployment and reallocation of [SRS_Rte_00321]
AUTOSAR Application Software
[RS_Main_00200] Resource Efficiency [SRS_Rte_00300] [SRS_Rte_00301]
[SRS_Rte_00302] [SRS_Rte_00303]
[SRS_Rte_00304] [SRS_Rte_00305]
[SRS_Rte_00306] [SRS_Rte_00307]
[SRS_Rte_00309] [SRS_Rte_00310]
[SRS_Rte_00311] [SRS_Rte_00312]
[SRS_Rte_00313] [SRS_Rte_00314]
[SRS_Rte_00315] [SRS_Rte_00316]
[SRS_Rte_00317] [SRS_Rte_00318]
[SRS_Rte_00319] [SRS_Rte_00320]
[SRS_Rte_00321]
[RS_Main_00280] Standardized Automotive [SRS_Rte_00261] [SRS_Rte_00322]
Communication Protocols
4 Requirements on RTE
The requirements in this section all concern how the RTE interacts with the AUTOSAR
OS. The AUTOSAR ECU architecture defines all interactions to occur over a standard-
ized interface.
[SRS_Rte_00020] Access to OS d
4
Specification of the Virtual Functional Bus [3]
In this requirement, blocking meant to indicate that the RTE shall not suspend
Supporting (Running->Waiting) the thread of control executing the callback. It is not meant
Material: to indicate that the thread cannot be pre-empted.
i.e. blocking is "suspended" but not "pre-empted"
When partitioning is in use, the RTE generator shall reject configurations where
Description: the Runnable Entities of one Software Component instance are not assigned to
tasks within the same OS-Application.
All objects (e.g. resources, alarms) which belong to one OS-Application have
Rationale: access to each other - the OS will kill tasks that attempt direct access without
being mapped to the same OS application.
Dependencies: [SRS_Rte_00018]
Efficient access is required - if mapped to different OS applications then the
Use Case: RTE would be required to implement the protection mode switches which would
have a significant impact on efficiency.
Where memory protection is used the tasks mapped for a component instance
Supporting
form a single OS Application - this permits intra-component interactions to
Material:
occur with minimum overhead.
4
Runnable Entities and Basic Software Schedulable Entities in a sequence
mapped to the same task.
It is possible to provide
• tasks/ISR2s with only Runnable Entities
Use Case:
• tasks/ISR2s with support for interlaced execution of Runnable Entites and
Basic Software Schedulable Entities
• tasks/ISR2s with only Basic Software Schedulable Entities.
Supporting –
Material:
The RTE Generator shall allow Runnable Entity monitoring by mapping of the
Description: monitored Runnable Entities to one or several OS Tasks and - in case of the
usage of several OS Tasks - chain the execution of these OS Tasks.
In order to monitor the execution time of Runnable Entities per individual (or
several) Runnable Entity, the mechanism of task chaining shall be used so the
Rationale: monitoring can be implemented using OS Task monitoring.
The RTE shall be able to activate (chain) the execution of the chained tasks in
order to get the desired Runnable Entity execution order.
Dependencies: –
Runnable Entities which are configured to be executed sequentially in one OS
Task shall be able to be spilt to several OS Tasks in order to apply OS
Use Case: execution time monitoring on a fine grained level (individual Runnable Entity or
several Runnable Entities).
To get the same behavior the chain task mechanism shall be applied.
Supporting –
Material:
4
As Software Component instances from different OS applications may be
located on different cores and different memory partitions, the communication
Rationale:
between them may require the use of dedicated communication and signaling
methods like the use of a Cross OS Application Communication Module.
Dependencies: [SRS_Rte_00011]
Use Case: Multi core support, memory partitioning support
Supporting –
Material:
The requirements in this section all concern how the RTE interacts with the AUTOSAR
COM. The AUTOSAR ECU architecture defines all interaction to occur over a stan-
dardized interface.
The RTE generator shall ensure that signals for which an INIT_VALUE is
Description:
specified are initialized.
Data can be read before COM or Efficient COM for large data has provided a
Rationale: first value and applications should be prevented from reading uninitialized data.
[SRS_Rte_00108]
The INVALIDATE attribute can be used in conjunction with an INIT_VALUE to
Dependencies: indicate to an Application Software Component that no data has been received
since COM or Efficient COM for large data or the RTE started.
The INVALIDATE attribute shall be initialized too.
Use Case: –
Supporting Specification of the Virtual Functional Bus [3]
Material:
The RTE generator shall include run-time checks for monitoring timeouts
specified in the ECU Configuration for blocking communication.
When synchronous intra-task client server communication is optimized to a
Description: direct function call, no timeout can occur though clients can still be written to
expect a timeout were the configuration to change. Therefore this requirement
does not apply when the synchronous client server call is optimized to a direct
function call.
5
4
Rationale: Prevent infinite blocking of receivers.
Dependencies: [SRS_Rte_00147]
A Runnable Entity performs a blocking "read" of a data item. A blocking read
Use Case:
will wait forever if no data arrives unless a timeout is applied.
Specification of the Virtual Functional Bus [3] - timeouts are required within
Supporting components to prevent infinite blocking and thus apply both to inter-ECU
Material: communication (that uses COM or Efficient COM for large data) and intra-ECU
communication (that may or may not use COM or Efficient COM for large data).
The RTE shall ensure that the transmission and reception of data elements
(regardless whether they are simple or composite), and all arguments of a
single RTE operation are treated as atomic units.
Description:
Where a parameter is passed by reference rather than by value the RTE is
forced to rely on the component not modifying the target of the reference while
the parameter is in use by the RTE.
Rationale: –
[SRS_Rte_00032] - data consistency.
This should not be read as requiring COM to treat the transmission as atomic -
Dependencies:
it (or a lower layer in the COM stack) shall remain free to split across multiple
(network) frames as long as the split is not visible to the RTE.
Elements of a record cannot be handled separately by the Application Software
Use Case: Component but, instead, the whole record should be treated as a single atomic
unit.
Supporting Specification of the Virtual Functional Bus [3]
Material: Software Component Template [4]
The RTE shall define and implement the protocol (e.g. message sequences)
for inter-ECU client-server communication.
Description: For communication mechanisms that are not directly provided by the
AUTOSAR COM layer (e.g. client-server communication) a standardized
protocol that is implemented by every AUTOSAR RTE has to be defined.
Rationale: This ensures that RTEs of different vendors are interoperable.
Dependencies: [SRS_Rte_00062]
If C/S is mapped to paired COM or Efficient COM for large data message
Use Case: channels then both RTEs shall implement the same mapping to be compatible.
Supporting [SRS_Rte_00091] - common protocol for COM or Efficient COM for large data
Material: transmissions.
The RTE shall use a common format for transmitting/receiving data elements or
parameters of operations between ECUs. On transmission the (target specific)
signal data shall be converted to the common format and the reverse operation
Description:
performed on reception.
It shall be possible to exchange record types between components written in
different programming languages.
The RTE is responsible for ensuring that data elements or parameters of
operations (e.g. records, parameter lists, .) can be sent between ECUs. Since
each ECU may define signals differently in memory a straight transmission
cannot be performed and, instead, the sender shall convert the data elements
Rationale:
or parameters to a common format before transmission and the reverse
transformation shall be performed by the receiving RTE.
A common communication protocol enables RTEs from different vendors to
interoperate.
Dependencies: [SRS_Rte_00082] - defines common message sequence for client-server.
Use Case: –
Supporting Software Component Template [4]
Material: The term "Marshalling" is used synonymously to "Serialization".
The RTE shall generate conversion routines - when configured - for different
data types for data elements used in sender-receiver communication within one
Description:
ECU (high resolution) and data elements used between ECUs (low resolution)
to save serial data link bandwidth and non-productive development work.
Rationale: Save bandwidth in inter-ECU communication.
Dependencies: –
Within one ECU the SWCs want to use data types with high resolutions in
computations to get a small epsilon (computational deviation). When the same
Use Case: data is transported to another ECU it is converted into the network
representation on the sender side (with loss of precision). On the receiver side
the data is converted back to the original type.
Supporting –
Material:
RTE shall support more than one Interaction layer module. Currently COM and
Description:
Efficient COM for large data are supported.
Besides the "traditional" COM a lean module shall be supported giving the
Rationale:
option to omit either of them in case they are not needed.
Dependencies: –
An ECU has many Signals of large and dynamic size. The usage of Efficient
COM for large data will save resources in the communication stack (e.g.
Use Case: buffers).
Another ECU has only large and dynamic signals being transmitted on request.
This ECU may omit COM if no use case out of COM is needed.
Supporting –
Material:
The Rte shall use the uint8-array API to pass the serialized representation of a
Description:
composite data to COM when this configured.
The AUTOSAR transformer chain provides means to serialize composite data
Rationale: into a uint8-array representation. This serialized uint8-array shall be passed as
one entity to COM.
Dependencies: –
Usage of transformer with Com-based serialization and Com Interaction to
Use Case:
enable the communication with a fixed communication matrix.
Supporting –
Material:
The Rte shall support (transparently) forwarding meta data from/to (Ld-)COM
Description:
and SWCs if configured.
MetaData is used for the interaction with COM or LdCom to provide additional
information about the actual payload of a PDU instance. This can be e.g.
Rationale: addresses of client ECUs forwarded transparently, allowing to keep RTE bus
agnostic.
Dependencies: –
Use Case: Distinguishing C/S requests/responses originating from different client(ECUs).
Supporting –
Material:
The RTE generator shall ensure that the compiler can detect (and reject)
access to undefined RTE API calls.
Description:
The RTE generator is required to reject "invalid" configurations, part of this is
rejecting invalid APIs (i.e. calls to an unknown port at compile time).
Rationale: –
Dependencies: –
The component description defines the names of the ports that a component
"requires" and "provides" and the associated interfaces. The RTE generator
can then define only the valid API calls.
For example, consider a component that has a Port ‘p1’ with a data items ‘a’
Use Case: and ‘b’. In this case, the RTE generator will only create an API for the send of
data items ‘a’ and ‘b’. Thus an attempt by the component to send any invalid
data item, e.g. ‘c’ on the interface shall be detected by the compiler and a
warning issued.
Supporting Software Component Template [4]
Material:
The RTE shall support the Runnable Entity categories 1a, 1b and 2
Runnable Entity category:
• 1a) The Runnable Entity is only allowed to use implicit reading
(DataReadAccess) and writing (DataWriteAcess). A category 1a Runnable
Entity cannot block and cannot use explicit read/write.
Description:
• 1b) The Runnable Entity can use explicit reading and writing
(DataReadAccess). A category 1b Runnable Entity cannot block. Implicit
read/write is also allowed.
• 2) The Runnable Entity may use explicit reading/writing including blocking
behavior.
Rationale: Support several kinds of runnable entity implementation kinds.
[SRS_Rte_00128], [SRS_Rte_00129] - Implicit reception and transmission.
Dependencies:
[SRS_Rte_00098] - Explicit transmission.
It is easier to reason about time behavior for category 1a Runnable Entities that
Use Case:
do not invoke RTE API calls that (may) not execute in constant time.
Supporting Software Component Template [4]
Material:
Description: The RTE shall start/resume a Runnable Entity according to the RTEEvents to
which it is linked.
Activations of Runnable Entities due to arrival of data from other components,
Rationale: invocation of operations of one port or time based execution of Runnable
Entities is based on the RTEEvent model [4].
Dependencies: [SRS_Rte_00160], [SRS_Rte_00161]
Cyclic, time based activation of Runnable Entities; activation of a Runnable
Use Case: Entity due to the arrival of data using the sender-receiver communication
pattern.
Supporting Software Component Template [4]
Material:
The RTE shall allow the configuration of a debounce start time of Runnable
Description: Entities to avoid the same Runnable Entity being executed shortly after each
other.
5
4
In case several RTE Events occur within a short time interval there shall only
be a limited amount of executions of the Runnable Entity. It shall be possible to
Rationale: define a minimum time which in which all activations are noticed, but the
Runnable Entity will start only after that period has passed.
Dependencies: [SRS_Rte_00072]
Runnable Entities being activated with along timing period and additionally
activated on several DataReceivedEvents. If the Runnable Entity has just been
Use Case: executed the RTE shall wait for the defined period until the Runnable Entity is
executed again.
Supporting –
Material:
Description: The RTE shall allow the definition of an activation offset of Runnable Entites.
In order to allows optimizations in the scheduling (smooth cpu load, mapping of
Runnable Entities with different periods in the same task to avoid data sharing,
Rationale: etc.), the RTE has to handle the activation offset information from a task shared
reference point for time trigger Runnable Entites.
Dependencies: [SRS_Rte_00072]
Use Case: –
Supporting –
Material:
The RTE shall support multiple Runnable Entities in one Software Component
Description:
type.
Runnable Entities are used for servers, receivers, feedback, . etc and therefore
Rationale:
each component can have many Runnable Entities.
Dependencies: –
Use Case: –
Supporting VFB Metamodel
Material:
The RTE shall support one or more mechanism for ensuring data consistency
within an Application Software Component instance.
No direct access to data ‘outside’ the component instance is possible within
AUTOSAR.
The scope of the mechanism (e.g. exclusive area) shall be all Runnable
Entities (that statically specify the same exclusive area - RTE_IN004) in the
software component instance. If consistency between component instances is
Description: required then an additional software component can be created to provide
appropriate access semantics to the encapsulated data.
A side effect of a data consistency mechanism may be to prevent other
Runnable Entities in different component instances from executing, for
example, the RTE may lock out all interrupts for a short period of time. However
this is not deemed to be an illegal (non-AUTOSAR) communication channel
since the set of affected Runnable Entities is not defined and therefore cannot
be relied upon by a component author.
Multiple Runnable Entities can be active within an Application Software
Component and therefore a mechanism shall exist to prevent concurrency
Rationale:
conflicts. An Application Software Component cannot access the OS directly
and therefore the RTE shall provide the mechanism.
Dependencies: –
Exclusive areas are an example of a mechanism suitable, e.g.:
void RTERunnable_a(RTEInstance self)
}.
RTEEnter_<region>(self);
/* read-modify-write data */
Use Case: RTEExit_<region>(self);
The RTE shall support exclusive areas where a Runnable Entity or a Basic
Software Schedulable Entity is declared as "running inside" the Exclusive Area.
All Runnable Entities in a SW-Component or Basic Software Schedulable
Description:
Entities that specify the same "runs inside" Exclusive Area shall be scheduled
non preemptively with respect to other Runnable Entities respectively Basic
Software Schedulable Entities in the set.
"Runs inside" Exclusive Areas satisfies the requirement from the
SW-Component template and Basic Software Module Description template that
Rationale:
certain Exclusive Areas can be defined that are automatically entered whenever
a Executable Entity is invoked by the RTE / Basic Software Scheduler.
Dependencies: [SRS_Rte_00032]
Use Case: –
Supporting SW-Component Template [4]
Material: BSWMD Template [5]
RTE has to allow and support the concurrent invocation of a Runnable Entity
(means several activations of same Runnable Entity at same time) for those
Runnable Entities whose attribute "canBeInvokedConcurrently" is set to TRUE.
Description: The RTE generator shall reject input configurations requiring several concurrent
activations of a Runnable Entity when the attribute "canBeInvokedConcurrently"
of the Runnable Entity is set to FALSE.
Note that this is independent of the Runnable Entities ability to be multiple
instantiated or not.
Rationale: Requirement from SwCT Runnable Entities description
Dependencies: [SRS_Rte_00012]
Direct client-server calls implementation with Runnable Entity implemented as
Use Case: a server. E.g. needed for Basic-SW services.
Supporting Software Component Template [4]
Material:
Provide functionality in the RTE to enable checking the ranges of data element
values for both S/R and C/S communication.
Description: If specified at SW-Component level a violation shall be reported to the
SW-Component and a correction strategy shall be implemented.
If configured during ECU Configuration a violation shall be reported to the DET.
5
4
For integration of SW-Components from different providers the check of the
actual contract is needed in order to detect violations.
Rationale: For debugging it is useful to check whether SWCs sending data do provide the
data within the specified ranges. In case there is a violation a Development
Error may be raised.
Dependencies: –
Even when a SW-Component specifies in the PortInterface that a certain
DataElementPrototype value shall be within 0-100 it is technically possible to
send a value of 110. The RTE shall be able to check for such range violations.
Range check on sender/client side: No propagation of illegal values through the
RTE (local and remote). Reaction in case of error: "Out Of Bounds" error code
Use Case:
in the status value.
Range check on receiver/server side: Protection against reception of out of
bounds values on the receiver side (assuming the sender has not already
checked). Reaction in case of error: "Out Of Bounds" error code in the status
value.
Supporting –
Material:
When explicitly specified, the RTE shall support the connection of ports whose
interfaces have incompatible data types or incompatible data semantics
according to the compatibility rules of the SWC-T.
The RTE shall allow specifying the scaling of signals for ports on the
sender/server side and the receiver/client side to allow automatic re-scaling in
Description:
the RTE. A deterministic generation of the re-scaling shall be supported by the
RTE generator independent of its implementation.
Dedicated connector needs to be modeled on VFB level, and based on that the
RTE generator has to create the adapter. The RTE generator is not allowed to
do it completely on its own.
Avoid writing SWC glue code to interface two different SWCs conversion code
provided by the integrator / sub-system designer (e.g. using a
COMPU-METHOD). Hence, no recalculation of signal resolution in the affected
Rationale: SWCs is necessary.
In order to allow deterministic generation of the re-scaling code additional input
information might be need to specify the details of the desired re-scaling.
Dependencies: –
5
4
In diagnostics the resolution of signals has to be provided as specified in the
ISO document for OBDII (e.g. engine speed). If the RTE could provide these
signals in the correct resolution the SWC is not required to do this
Use Case: re-calculation.
For the re-scaling of LINEAR to LINEAR data an optional/alternative call-out
function from the RTE might be utilized in order to support deterministic
conversion formula specification.
Supporting –
Material:
The RTE shall support that ports are connected which are typed by different
ModeSwitchInterfaces and where the ModeDeclarationGroupPrototype of the
provide port are typed by ModeDeclarationGroup which ModeDeclarations are
Description:
mapped to ModeDeclarations of the require port. Hereby the number of
ModeDeclarations of the require port might be different than the number of
ModeDeclarations of the provide port.
Rationale: Mode Manager and mode User are designed independently from each other.
Dependencies: –
Receiving Software Component has to be connected to a Mode Manager
providing a ModeDeclarationGroup with different ModeDeclaration than the
user.
In the case that Software Component is reused scenarios happens that the
ModeDeclarationGroup used by the ModeManager is incompatible to the
ModeDeclarationGroup used by the ModeUser.
Use Case: For instance
A) the ModeManager is basically able to differentiate sub-states more fin
grained as it is required by the generic ModeUser. But due to the definition of
the mode communication it is not possible to use two Mode Switch Ports at the
Mode Manager because this would lead to two independent and
unsynchronized ModeMachineInstances in the RTE.
B) the generic Mode User is basically able to support additionally modes which
are not used by all Mode Manager.
Supporting –
Material:
The RTE shall support the time recurrent activation of Runnable Entities. The
Description: applicable time period shall be definable by the software component type and
be overwriteable per component instance.
5
4
Rationale: Support closed loop controllers with different time base
Dependencies: –
Use Case: Reuse of components in different rasters
Supporting –
Material:
Description: The RTE shall not suspend execution while executing a call-back.
Blocking COM (e.g. in a call-back) could prevent reception of data and
Rationale:
therefore lead to data loss.
Dependencies: [SRS_Rte_00099] - decoupling of interrupts.
Use Case: –
If the RTE cannot process (e.g. pass the information to a Runnable Entity) the
Supporting call-back immediately then the information must be queued and processed at a
Material: later point.
A call-back is not the same as activation of a Runnable Entity.
The RTE shall permit application and basic software components to directly
(via RTE) access the AUTOSAR interfaces of basic software components
located on the same ECU.
The RTE generator shall prevent direct access to the AUTOSAR interfaces of
remote basic software components. One exception is the BswM module which
Description:
is allowed to be accessed on other ECUs as well.
Indirect access to the AUTOSAR interfaces of basic software components
located on a remote ECU shall be possible via the inclusion of an Application
Software Component on the remote ECU to ‘export’ an appropriate AUTOSAR
interface to the basic software component.
This requirement is imposed for two reasons:
• Efficiency - remote access to a basic software component permits only the
lowest level of optimization. For example, the RTE generated would be
unable to take advantage of intra-task access to optimize communication to
Rationale: either a direct function call (client-server) or queue write (sender-receiver).
• Control - an ECU integrator can know, a priori, that scheduling will not be
affected by components on remote ECUs accessing the basic software and
blocking access by local components.
Dependencies: [SRS_Rte_00018] - rejection invalid configurations.
• On a given ECU, sensor/actuators components are not allowed to
communicate with remote ECU abstraction. This means that sensor/actuator
SWCs SHALL be mapped to the same ECU to which the sensor/actuator
Use Case: devices are mapped.
• Exception: A mode request to the local BswM is also distributed by the RTE
to other ECUs which are configured to need the mode request as well.
Supporting See VFB chapter 4.4.2.2. The location of a service can be implemented by a
Material: proxy implemented as an AUTOSAR software component.
[SRS_Rte_00169] Map code and memory allocated by the RTE to memory sec-
tions
Upstream requirements: RS_BRF_00057
The RTE shall map its generated code and allocated memory to RTE memory
Description:
sections.
Rationale: Enable memory mapping control of the whole ECU, not only BSWM and SWC.
Dependencies: –
Efficiency of the interactions between SWC Runnable Entities and generated
Use Case: code. Memory Mapping of calibration parameters. Memory partitioning and
memory mapping of PIM and other variables in the same partition as the users.
Supporting –
Material:
The RTE generator shall produce an XML file with a description of memory
Description:
sections used by the means of the BSW Module template.
Rationale: Enable memory mapping control of the whole ECU, not only BSWM and SWC.
Dependencies: [SRS_Rte_00169] - Map code and memory allocated by the RTE to memory
sections.
Efficiency of the interactions between SWC Runnable Entities and generated
Use Case: code. Memory Mapping of calibration parameters. Memory partitioning and
memory mapping of PIM and other variables in the same partition as the users.
Supporting Basic Software Module Description template [5]
Material:
The RTE shall support the fan-out (take one incoming callback function and
distribute it into several callback function calls) of the NvBlock callback function
Description:
from the NVRAM Manager to multiple Software Component instances which
use the corresponding NvBlock.
It is possible to define several users for one NvBlock,but the NVRAM Manager
Rationale: is not able to handle several callback functions. Therefore the callback function
has to be fan-out by the RTE.
5
4
Dependencies: [SRS_Rte_00177]
Use Case: Two Software Component Instances accessing the same NvBlock.
Supporting –
Material:
The RTE Generator shall provide a Basic Software Module Description of the
Description:
actual generated RTE.
The Basic Software Module Description provides information how the
Rationale: described module interacts with other modules and needs to be integrated.
Dependencies: [SRS_Rte_00169], [SRS_Rte_00170]
Use Case: Support the integration of AUTOSAR software.
Supporting Specification of Basic Software Module Description [5]
Material:
For systems where the BSW modules can be executed in multiple partitions,
the RTE generator shall redirect the BSW service call from a SWC either to the
Description:
local or to a remote partition based on the partition mapping(s) assigned to the
BSW Module.
If a module is available on a local partition, execution within that partition is
Rationale: preferable for performance reasons. If it is not available, the RTE is responsible
for routing service calls to the partition as configured.
Dependencies: –
Use Case: BSW running on multi core systems.
Supporting –
Material:
The RTE shall provide a mechanism in order to write updated NV data of RAM
Description: Blocks to NV memory with a certain timing schema (writing strategy).
The availability of this mechanism shall be configurable.
Rationale: Support different write strategies for NV data.
Dependencies: –
Use Case: SW-Cs that have to fulfill different functional requirements on NV data handling.
Supporting –
Material:
Description: The RTE shall support to the cyclic time based scheduling of BSW Schedulable
Entities.
Many BSW Modules rely on the cyclic time based call of their Schedulable
Rationale:
Entities in order to fulfill their functionality.
Dependencies: [SRS_Rte_00072]
Call of the function "Com_MainFunctionTx" to achieve periodic sending of
Use Case:
IPdus.
Supporting –
Material:
Description: The RTE shall allow the definition of an Activation Offset of BSW Schedulable
Entities.
In order to allow optimizations in the scheduling the RTE has to handle the
Rationale: activation offset information from a task shared reference point for time trigger
BSW Schedulable Entities.
Dependencies: [SRS_Rte_00211], [SRS_Rte_00161]
Use Case: Mapping of BSW Schedulable Entities with different periods in the same task
Supporting –
Material:
The RTE shall support Mode Switches for BSW modules. BSW Schedulable
Description: Entities are scheduled dependent on modes or are activated by entering and
exiting a mode.
Conditional scheduling of BSW Schedulable Entities dependent on different
Rationale: operating modes of the ECU.
Dependencies: [SRS_Rte_00144]
• Initialization and finalization phases
Use Case:
• Different communication modes
Supporting –
Material:
The RTE shall support the coordinated switching of a Mode affecting BSW
Description:
Modules and Application Software Components.
Synchronized behavior during a mode transition controlling AUTOSAR BSW
Rationale:
Modules and Application Software Components.
Dependencies: [SRS_Rte_00144], [SRS_Rte_00143], [SRS_Rte_00213]
Use Case: ECU initialization and finalization phase.
5
4
Supporting –
Material:
The SchM shall provide APIs for communication of active modes from the BSW
Description:
mode manager to the SchM.
The SchM needs to disable the execution of certain BSW Schedulable Entities
Rationale: depending on modes, therefore it needs to know the current modes.
[SRS_Rte_00213], [SRS_Rte_00214]
Dependencies:
This might be implemented via a Port-Based API or a direct C-API.
Use Case: See [SRS_Rte_00213]
Supporting –
Material:
The RTE shall support the triggering of BSW Schedulable Entities by the
occurrence of External Triggers.
Particular BSW Schedulable Entities in BSW dependent from External Triggers
shall be executed after occurrence of the event in a defined and deterministic
Description:
order specified by the integrator.
The occurrence of the External Trigger is either reported via API to the RTE or
by means of the OS (e.g. expiration of an OS Alarm).
Restriction: This is only applicable for intra-ECU usage.
Sporadic and non timing based periodic activation of BSW Schedulable Entities
Rationale:
in different BSW Modules.
Dependencies: [SRS_Rte_00218]
Use Case: Angle periodic triggering of the ignition for a combustion engine.
Supporting –
Material:
The Basic Software Scheduler shall support the triggering of BSW Schedulable
Entities by the occurrence of Internal Trigger.
Particular BSW Schedulable Entities in BSW dependent from Internal Events
shall be executed after occurrence of the event in a defined and deterministic
Description:
order specified by the integrator.
The occurrence of the Internal Trigger is either reported via API to the RTE or
by means of the OS (e.g. expiration of an OS Alarm).
Restriction: This is only applicable for intra-ECU usage.
Rationale: Decoupling from Interrupt Context inside a Basic Software Module.
Dependencies: –
An interrupt which shall not exceed a certain WCET activates a BSW
Use Case: Schedulable Entity to process more time consuming algorithms.
Supporting –
Material:
The RTE shall support the triggering of both, Runnable Entities and BSW
Description:
Schedulable Entities by the same Triggered Events.
Synchronous activation of routines in AUTOSAR BSW modules and Application
Rationale:
Software Components.
Dependencies: –
Angle periodic triggering of the routines in Application Software Components
Use Case: and Complex Drivers for a combustion engine.
Supporting –
Material:
The RTE shall provide an API usable for BSW modules to notify the RTE about
Description:
the occurrence of Triggered Events.
The sources for Triggered Events may be captured in the BSW and need to be
Rationale:
forwarded to the application SWCs.
Dependencies: [SRS_Rte_00216], [SRS_Rte_00217]
Use Case: See [SRS_Rte_00216]
Supporting –
Material:
The RTE shall support the interlaced execution sequences of Runnable Entities
and BSW Schedulable Entities within the same Os Task.
Description:
The whole execution sequence for all Runnable Entities and BSW Schedulable
Entities which are mapped to the same OS Task can be arbitrarily defined.
Usage of OS Tasks for scheduling of Application Software Components and
Rationale:
BSW Modules.
Dependencies: –
Reduce response time of a closed loop control by configuration of a signal flow
Use Case: orientated calculation sequence (plant determination, controller, actuator).
Reduce number of tasks.
Supporting –
Material:
The RTE shall support the exclusive Scheduling of BSW modules dependent
Description: from the ECU life cycle. Before the RTE is fully initialized (call of Rte_Start) or
after the RTE is finalized (call of Rte_Stop) only BSW Schedulable Entities shall
be scheduled.
Support different life-cycles of BSW Modules and Application Software
Rationale:
Components.
5
4
Dependencies: –
Exclusive Scheduling of BSW Modules during start-up and shut-down phase of
Use Case:
the ECU.
Supporting –
Material:
The RTE generator shall provide means to generate the API for only for BSW
Modules (with the related BSW Scheduling code), excluding the API for
Application Software Components.
Description:
When the input information contains Application Software Component parts
these shall be ignored in this mode.
The complete input information must be valid, including the ignored parts.
Rationale: Support integration of BSW Modules without Application Software Components.
Dependencies: –
Use Case: Pre-integration and test of BSW Module packages.
Supporting –
Material:
The RTE shall provide APIs to enter or exit exclusive areas for both, BSW
Description:
Service Modules and the corresponding Service Component.
Coordinated access to shared memory between BSW Schedulable Entities and
Rationale: BSW Runnable Entities of the SAME module (i.e. the AUTOSAR Service which
has both, a BSW aspect and a SW-C aspect).
Dependencies: [SRS_Rte_00046]
Coordinate the access to the NvM job buffer from the NvM module Schedulable
Use Case: Entities and the NvM server Runnable Entities called by the Application
SW-Components.
Supporting –
Material:
The RTE Generator shall support the generation of the BSW scheduling where
Description: "PreCompileTime" and "PostBuild" variability is left open and shall be resolved
after the generation.
Some variability may stay in the input information after the RTE Generation
Rationale:
phase.
Dependencies: [SRS_Rte_00201]
A simple NvM only needs one Schedulable Entity while the full-featured NvM
requires several Schedulable Entities. Both variants can be described in one
Use Case: input information and the generated RTE shall contain means to switch
between both variants after the generation.
Supporting –
Material:
On multi-core systems that use the SchM for parallel execution of BSW
modules, the SchM shall provide APIs for the inter-partition communication of
Description:
modules, including APIs for the initialization of satellites and functions for
service invocation on a specific partition.
The SchM needs to provide mechanisms for inter-partition communication,
Rationale: because invocations of a module function are not assigned to specific
partitions.
Dependencies: –
Use Case: BSW running on multi core systems.
Supporting –
Material:
The RTE generator shall create code allowing read out of ECU internal
communication data and variable contents. Responsibility of RTE is to supply
RAM locations where the measurement data can be read by other SW (e.g.
Description: Basic SW, external measurement tools). This read out might be asynchronous
to all RTE actions.
The RTE is not responsible to deliver the measurement values to ECU external
instances.
Measurement is needed to get knowledge about ECU internal behavior when
Rationale: ECU is running.
Dependencies: –
Monitor SWC internal signals (e.g.InterRunnableVariables), VFB
Use Case:
communication or mode states.
Supporting Software Component Template [4] chapter "Measurement & Calibration"
Material:
The RTE generator shall support these data emulation methods for calibration
purposes:
directAccess
Calibration data is stored in ROM and accessed directly. This method can be
used with appropriate calibration hardware.
Single pointered method
Calibration data accesses are done via one indirection over a pointer table in
Description: RAM
Double pointered method
Calibration data accesses are done via a base pointer in RAM and over a
pointer table in ROM/FLASH
InitRAM parameter method
RTE accesses calibration parameters located in RAM directly (without any
indirection) and copies the values from ROM/FLASH during startup
Methods 2-4 need SW support from RTE.
Projects in different domains have different requirements and different RAM
Rationale:
availabilities.
Dependencies: [SRS_Rte_00154] - Support of Calibration.
DirectAccess method:
No overhead. Appropriate HW support present or after rebuild for production
Single pointered method:
more available RAM present than with InitRAM method, only 1 indirection, no
time for initial copy
Use Case: Double pointered method:
less RAM needs than single pointered method when calibration is off, activate
several modified parameters simultaneously
InitRAM parameter method:
Only few parameters to calibrate
Supporting Software Component Template [4] chapter "Measurement & Calibration"
Material:
The RTE generator shall support the generation of output information in order
Description:
to support the later generation of a complete A2L file.
The RTE generator is allocating the variables which shall be measurable.
Rationale: Therefore the information about the allocated variables shall be exported for
further usage by subsequent tools.
Dependencies: –
In order to measure some RTE allocated variables the symbols used in the
Use Case:
allocation have to be available for the measurement tools.
Supporting –
Material:
The RTE shall be customizable (generated and/or configured) for each ECU.
The RTE generator should avoid, where possible, the use of generic functions
Description:
and should, instead, favor functions that are configured/generated to
specifically implement the required communication patterns.
Generic functions are considered to be too computationally expensive since the
function needs to dynamically determine what actions to perform (e.g. switch
on parameters).
Rationale:
In contrast, statically configured/generated functions know implicitly what needs
to be done and therefore avoid these costs and are therefore considered
necessary for the production of optimal systems.
Dependencies: –
Use Case: –
An ECU with two or more micro-controllers can be configured using either
shared memory (and hence a single OS, single basic software set, etc) or with
Supporting separate memory (multiple OSs, multiple basic software sets, etc.). In the first
Material: case there is only a single ECU according to the AUTOSAR ECU architecture
and therefore only one RTE. In the second case there are multiple,
independent, ECUs and therefore multiple RTEs.
A given version of a RTE generator from a vendor - for an identical set of input
files - shall reproduce, every time it is invoked, the same RTE code with the
Description:
exception of time-related information in code comments, like ‘generated at..’,
which may differ.
The generated RTE code shall be equal in case the same generator (version)
Rationale:
and input information is used.
Dependencies: –
There shall be no difference (other than information in comments) between
Use Case: RTEs generated by the same generator for the same input files.
Supporting –
Material:
4
Rationale: VFB Specification requires support for single-sender-multiple-receiver ("1:n")
Dependencies: [SRS_Rte_00131] - "n:1" communication.
Use Case: –
Supporting VFB Specification
Material:
The RTE shall support at most one asynchronous call at a time from a single
operation in a required port categorized by a client-server interface (i.e. there
can only be one outstanding request per "AsynchronousServerCallPoint").
Note that a single client can simultaneously have multiple outstanding requests
Description: provided each is to different server operations.
When a SW-component instance restarts it may receive a stale reply - replies
to a request made before the component was restarted. The RTE shall forward
stale replies and it is the job of the SW-component instance to detect and reject
the reply, for example, through sequence numbers.
Requirement from VFB spec (4.1.4.2 Client-Server Communication). There is
Rationale: no queuing (of parameters and return locations) on the client-side and
therefore only one single outstanding request can be supported.
Dependencies: –
Use Case: –
Supporting Software Component Template [4]
Material: VFB Specification [3]
The RTE shall support the queuing of concurrent calls to a server (by different
clients). A server specified using the "BUFFERING queue(n)" attribute may
have queued requests from multiple clients. Requests shall be read from the
Description:
server’s queue using first-in-first-out semantics.
Depending on the RTE implementation the queue may be present in the either
in the RTE or in COM.
Rationale: Requirement from VFB spec (4.1.4.2 Client-Server Communication)
Dependencies: [SRS_Rte_00033]
Use Case: –
Supporting Queues are applied at the operation level, i.e. each operation in a client-server
Material: interface has a dedicated queue.
The RTE shall support the communication of External Trigger events from one
trigger source to multiple trigger sinks ("1:n").
The Runnable Entity(s) in the trigger sink(s) linked to the event shall be
Description:
executed after occurrence of the event in a defined and deterministic order
defined by the integrator.
Restriction: This is only applicable for intra-ECU usage.
5
4
Sporadic and non timing based periodic activation of Runnable Entities in
Rationale:
different Software Components.
Dependencies: –
Angle periodic triggering of the Mass Air Flow calculation for a combustion
Use Case: engine.
Supporting –
Material:
External and internal trigger event communication shall support queuing the
number of triggers issued by a trigger source. When the trigger source is
Description: informed of the end of execution of all triggered executable entities, the RTE
shall (if any trigger is in the queue) dequeue a trigger by activating again the
triggered executable entities.
Rationale: –
Dependencies: –
There are use cases existing where it is important to queue the number of
Use Case: activations done by a trigger source when triggers are faster issued in the
trigger source as the runnables in the trigger target can be activated.
Supporting –
Material:
The RTE shall support only those communication connections known when the
RTE is generated - the source(s) and destination(s) of all communication shall
be known statically.
Description: Static communication is considered to include Application Software Component
access to the publisher-subscriber service - components are statistically
configured to access the service and then subscribers are dynamically chosen
from a statically configured set.
Dynamic communication is deemed too expensive (both at run-time and in
Rationale: code overhead) and would therefore limit the range of devices for which the
RTE is suitable.
Dependencies: –
Use Case: –
VFB Specification
Supporting In AUTOSAR (and in COM) only static communication connections are
Material: permitted. If dynamic communication will be allowed in future, all specifications
have to be reworked.
RTE shall use the well defined mechanisms of AUTOSAR interfaces for the
Description: communication of active modes from the mode manager to the mode
dependent software component.
Use the flexibility and configuration mechanisms defined for AUTOSAR
Rationale:
interfaces.
Dependencies: [SRS_Rte_00143]
Use Case: See [SRS_Rte_00143]
Supporting AUTOSAR. Software Component Template. Version 1.04 - Final, 04 2005 (p.
Material: 61, L 7-8)
The RTE generator shall detect, and reject where appropriate, the invalid
Description: deployment and communication configuration of application and basic software
components.
The RTE is required to reject "invalid" configurations, e.g. wait point in category
Rationale:
1a or 1b Runnable Entity, interface incompatibility, .
Dependencies: [SRS_Rte_00062] - local access to basic software.
5
4
Multiple instantiation of a component where the "supportsMultipleInstantiation"
flag is not set.
Use Case: The RTE generator shall reject the mapping of event-triggered and
"communication triggered" Runnable Entities to the same basic task. (An
implementation is possible, if inefficient, for extended tasks).
A valid RTE cannot be generated for an invalid configuration.
For example, AUTOSAR is required to be interoperable with "legacy ECUs"
Supporting (Requirement RS_Main_00190, AUTOSAR_MainRequirements_v2.2_r.doc, p.
Material: 32). The capabilities of such ECUs may not be precisely compatible with
AUTOSAR and therefore some configurations, e.g. client-server communication
with the legacy ECU, should be rejected - that’s an invalid configuration.
The RTE specification shall define standard naming conventions for all the
symbols created by the RTE generator that are visible within the global
namespace.
Description: Creating symbol definitions within the global namespace using this naming
convention is the exclusive right of the RTE generator. Application and/or basic
software components shall not create symbols defined by this naming
convention within the global namespace.
Prevents conflicts with symbols created by application and/or basic software
Rationale:
components.
Dependencies: –
Use Case: –
Supporting All symbols use the prefix "RTE".
Material:
The RTE shall define standard naming conventions for all the type symbols
created by the RTE generator that are visible within the global namespace. The
Description:
naming convention shall be defined in a way, that each type requiring an own
implementation within the global namespace is named uniquely.
Prevent type conflicts within the global namespace caused by integration of
Rationale:
SWC provided from different suppliers.
Dependencies: [SRS_Rte_00055]
Use Case: –
5
4
Supporting –
Material:
The RTE shall suppress the re-declaration of AUTOSAR data types mapped to
Description: the AUTOSAR Standard Types and shall use directly the AUTOSAR Standard
Types instead.
Improving code quality by avoidance of type casts in case of communication
Rationale:
with Basic Software and in case of library calls.
Dependencies: –
Use Case: –
Supporting –
Material:
The RTE generator shall encapsulate a Software Component local name space
Description: for declarations and definitions for APIs and types related to one Software
Component.
From a SW-C providers point of view this is the only name space which can be
ensured by the SW-C provider. Therefore the RTE Generator has to provide the
Rationale: mapping from the SW-C locally used names within the application header file to
the names used within the global namespace.
Dependencies: [SRS_Rte_00055], [SRS_Rte_00087]
Support embedding of SW-Components in different ECUs by avoiding type
Use Case:
conflicts.
Supporting –
Material:
The RTE generator shall encapsulate a BSW Module local name space for
Description:
declarations and definitions for APIs and types related to one BSW Module.
From a BSW Module providers point of view this is the only name space which
Rationale:
can be ensured by the BSW Module provider.
Dependencies: [SRS_Rte_00055], [SRS_Rte_00087]
Support embedding of BSW Modules in different ECUs by avoiding type
Use Case:
conflicts.
Supporting –
Material:
The RTE generator shall support SW-Components and BSW Modules created
Description:
using ‘ANSI C’.
Rationale: Support common used programming language.
Dependencies: –
Use Case: –
Supporting Specification of the Virtual Functional Bus [3]
Material: ANSI/ISO 9899-1989, "Programming Languages - C"
The RTE generator shall support SW-Components and BSW Modules created
Description:
using ISO C++.
Rationale: Support common used programming language.
Dependencies: –
Use Case: –
Supporting Specification of the Virtual Functional Bus [3]
Material: ISO/IEC 14882-1998, "Programming Languages - C++"
The RTE specification shall define a standard naming convention for all RTE
API artifacts visible by a component author that are created by the RTE
Description: generator.
The names of RTE API artifacts shall not include the component instance
names.
The requirement for an API mapping enables the signature of generated RTE
functions to be hidden from users and permits targeted optimization depending
on configuration.
The hiding of signatures is desirable for two reasons:
Rationale:
The names of generated RTE functions may be long (to ensure name
uniqueness) and therefore unwieldy for users to reference directly.
The generated function name may include information not known when the
component is compiled, such as the instance name.
Dependencies: –
Use Case: –
At the point the component is written the component instance name is not
defined (deployment has not be performed) and therefore the component
instance name cannot be included in the API. However, the instance name is
Supporting
required by the RTE generator when actually generating the RTE to ensure
Material:
name uniqueness and therefore the RTE generator shall implement a
well-defined API mapping from the RTE API to the generated RTE API
functions.
4
• Provide each Software Component type description in a separate input file.
Use Case: • Provide the System description in a separate input file.
• Be prepared to not find any input file and provide proper error reporting.
Supporting AUTOSAR design flow does not restrict input to one source and therefore RTE
Material: generator must be flexible.
The RTE generator shall provide a configuration option specifying the overall
Description: design goal of the generated RTE - minimizing memory and/or run-time
overhead.
Unfortunately, the different feasible directions of optimizations can contradict
each other and only a trade-off close to the overall design goal can be found.
But this may sufficient in order to meet the constraints of the ECU or the
Rationale: mapping of that special functionality to the ECU is not possible, anyway. Thus,
this requirement requests that the RTE generator should be able to generate
RTEs that fit on a wide a range of devices as possible (obviously depending on
configuration and component deployment).
Dependencies: –
The RTE generator shall generate RTEs for the ECUs needs with respect to
Use Case: the given resources (processor speed, memory, etc.).
VFB_C20 - Rephrased since requirement is inherently untestable - one can
never know when requirements have been minimized (e.g. local minima).
Supporting However, rejection does not absolve an implementation from a general
Material: requirement to be "efficient" with ECU resources.
The test is - does the generated RTE fit for the ECUs resources, but not more!
The RTE shall support AUTOSAR software components where the source is
Description:
available ("source-code software components").
AUTOSAR software components as source-code increase the optimization
Rationale: potential for the generated RTE.
Dependencies: –
Use Case: –
Supporting Software Component Template [4]
Material:
The RTE shall support AUTOSAR software components where only the object
Description:
code ("binary-code software components") is available.
Rationale: Binary-code AUTOSAR software components are required for IP hiding.
Dependencies: –
Use Case: –
Software Component Template [4]
Supporting
Support for binary-code AUTOSAR software components requires the same
Material:
compiler type and compiler version.
The RTE generator shall configure the RTE to implement the specified
Description:
communication paths while retaining their semantics.
The mapping from VFB model expressed in the XML input to generated RTE is
required to be semantic preserving.
Rationale: This requirement applies regardless of whether communication is done by
COM, by the RTE directly or if the RTE generator optimizes the generated RTE
to bypasses the RTE completely for certain communication paths.
Dependencies: –
The RTE generator is not permitted to modify the semantics of communication,
Use Case: for example, converting synchronous to asynchronous.
5
4
Supporting VFB_C10
Material:
The RTE shall support the transfer of data with variable size (could be bigger
than 8 bytes but has a fixed maximum size).
Description: The variable length support shall be applicable to
• strings
• primitive byte arrays
The support of variable length data allows a more efficient utilization of
resources in the ECU and on the communication busses. It also supports the
implementation of dynamic communication protocols (like SAE J1939).
Handling of strings with always a fixed length is not preferable, since a lot of
Rationale: ECU resources will be allocated by this approach.
The usage of an always fixed size would result in wasting runtime and
bandwidth in case of not used but reserved space.
The alternative usage of a couple of interfaces and signals to serve different
sizes will complicate the APIs and waste configuration freedom.
Dependencies: –
• Transferring message and information strings of variable length between
ECU’s, e.g. Central ECU and Instrument Cluster.
The RTE shall support that ports are connected which are typed by different
interfaces and where the elements of the provide port are typed by composite
Description: data types which composite elements are mapped to elements of the require
port. Hereby the require port might contain only a sub set of the elements
contained in the provide port.
5
4
Since the handling of data in a consistent manner requires using a record type,
it shall be allowed at the receiver of a RecordType to only receive a sub-set of
Rationale:
the sent record data elements. Since different receivers do require a different
sub-set of the provided data.
Dependencies: –
4 wheel speed signals and the movement direction signal are provided in one
record. If a receiver is only interested in the movement direction information all
Use Case: of the other information from this record does not have to be considered at this
specific receiver.
Supporting –
Material:
The RTE shall provide a mechanism for making requests for explicit sending of
AUTOSAR signals (i.e. an implementation of DataSendPoint).
The DataSendPoint of a Runnable Entity references an instance of a
Description: data-element in a provided port. Using the DataSendPoint, a Runnable Entity
can use an explicit RTE API call to write new values of the specified
data-element (which may cause an immediate send depending on component
and communication configuration).
Rationale: Implementation of internal component model from VFB Specification.
[SRS_Rte_00134], [SRS_Rte_00128] and [SRS_Rte_00129] - The current
SwCT and VFB specifications require that the Runnable Entity is of cat 2 for
Dependencies:
explicit sending. This situation is being revised so that cat 1b and 2 will be able
to access DataSendPoints (e.g. extended to cat 1b).
Use Case: –
Supporting VFB Specification [3]
Material: Software Component Template [4]
The RTE shall provide a mechanism for the implicit sending of data elements.
The mechanism shall grant write-access to a data element of a provided port
that may be freely changed until the Runnable Entity returns.
The presence of DataWriteAccess means that the Runnable Entity will
potentially modify the DataElement in the pPort. The Runnable Entity has free
Description: access to the data-element while it is running but the Runnable Entity should
ensure that the data-element is in a consistent state when it returns.
When using DataWriteAccess the new values of the data-element are made
available, by the RTE, when the Runnable Entity returns. Depending on the
configuration the RTE may either have nothing to do or it may need to actually
initiate sending of the data element.
5
4
Rationale: Implementation of internal component model from VFB Specification.
[SRS_Rte_00134] and [SRS_Rte_00128] - Previous SwCT and VFB
Dependencies: specifications required that the Runnable Entity is (at most?) of cat 1b. This
situation is being revised so that cat 1a are allowed to access DataReadAccess
and DataWriteAccess.
Use Case: –
Supporting VFB Specification [3]
Material: Software Component Template [4]
The RTE shall provide a mechanism for the implicit reception of data elements.
The mechanism shall grant read-access to a data element of a required port
that will not be modified by the RTE and may be freely read until the Runnable
Description: Entity returns.
The presence of DataReadAccess means that the Runnable Entity will require
access to the DataElement in the rPort. The Runnable Entity expects that the
contents of this data does not change during execution of the Runnable Entity.
Rationale: –
[SRS_Rte_00134] and [SRS_Rte_00129] - Previous SwCT and VFB
Dependencies: specifications required that the Runnable Entity is (at most?) of cat 1b. This
situation is being revised so that cat 1a are allowed to access DataReadAccess
and DataWriteAccess.
Use Case: –
Supporting VFB Specification [3]
Material: Software Component Template [4]
The RTE shall provide a mechanism for making requests for explicit reception
of AUTOSAR signals (i.e. an implementation of DataReceivePoint).
The DataReceivePoint of a Runnable Entity references an instance of a
Description:
data-element in a required port. Using the DataReceivePoint, a Runnable
Entity can use an explicit RTE API call to receive new values of the specified
data-element (e.g. the ‘next’ value is read out of the local queue).
Rationale: Implementation of internal component model from VFB Specification.
[SRS_Rte_00134], [SRS_Rte_00128], [SRS_Rte_00098], and
Dependencies:
[SRS_Rte_00129]
Use Case: –
Supporting VFB Specification [3]
Material:
The RTE API shall support wait points at which Runnable Entities will block
until an "RTEEvent" occurs.
A category 2 Runnable Entity shall, through the RTE API, be able to suspend
Description: its execution (i.e. block) until a well-defined event occurs.
This requirement does not mean that "wait points" shall be explicitly specified in
the API and could be satisfied by blocking calls that suspend the caller until an
event (defined in the VFB meta-model) occurs.
Runnable Entities need to be able to suspend execution (block) until a defined
Rationale:
event occurs.
Dependencies: [SRS_Rte_00027]
• Waiting for the arrival of data
Use Case:
• Waiting for the return of a call
Supporting This requirement is a special case of [SRS_Rte_00027].
Material: Software Component Template [4]
The RTE shall support the access to fixed and constant data shareable
Description:
between SWCs.
SWCs shall be able to access fixed data which are commonly defined for
Rationale:
several SWCs.
Dependencies: –
Definition of general constant values to be used by many SWCs (like pi,
Use Case: avogadro).
Supporting –
Material:
4
This allows a Runnable Entity - that is, e.g., triggered by the FlexRay cycle - to
take action depending on the availability of new data.
Use Case: It shall be possible to refrain from re-reading the data element, if the data is not
updated.
Supporting –
Material:
The RTE shall support the RTE-Status "never received". This is the new initial
Description: status of each data element for which it is configured. This initial status will be
cleared when the first reception occurs.
This additional status establishes the possibility to check, whether a data
Rationale: element has been changed since system start or partition restart.
Dependencies: –
Get the information whether involved data have been received at any time since
Use Case:
system start or partition restart.
Supporting –
Material:
The RTE shall support the resolution and implementation of the AUTOSAR
Description:
Variant Handling mechanism.
With the support of variant handling it is also possible to leave some variation
Rationale: until the RTE generation. Then the RTE Generator needs to support the
resolution of these variation points.
Dependencies: –
• Using the same ECU (hardware and software) for several vehicle lines. This
leads to different communication matrices, which need to be used depending
in which vehicle line the ECU is build in. Also the functionality may be slightly
different in each vehicle line.
Use Case:
• A project can choose out of different existing implementations of AUTOSAR
SWCs respectively SW-compositions with same or compatible interfaces to
implement the sum of the system functionality. This addresses pre-built
variant handling.
5
4
Supporting –
Material:
The RTE shall support the generation of the Application Software Component
Description: header file where "PreCompileTime" or "PostBuild" variability is left open and
shall be resolved later.
Some variability may be defined as having the binding time "PreCompileTime"
Rationale: or "PostBuild". This variability has to be represented in the generated
application software component header file.
Dependencies: –
The existence of a Port is specified to be variable with a binding time
"PreCompile". Then in the application software component header file the
corresponding APIs could be wrapped in #IFDEFs so the compiler can actually
Use Case:
benefit from the binding during compiling.
When the binding time is "PostBuild" the application software component
header file shall consider the superset of all possible variants.
Supporting –
Material:
The RTE generator shall be able generate arrays whose size is depending on a
Description:
model attribute.
Rationale: Software supporting a variable - but fixed during runtime - number of entities.
Dependencies: This shall be resolved until "PreCompile" time.
"Length of Arrays, size of Calibration Axis": depending on the system, the
Use Case: number of cylinders varies, values required per cylinder are combined in arrays
to implement scalable algorithms.
Supporting –
Material:
4
Some variants will have multiple components publish the same data. The
Rationale: receivers require the data from any publisher. But after variant resolving only
one publisher is actually sending the data.
Dependencies: –
Use Case: –
Supporting –
Material:
[SRS_Rte_00231] Support native interface between Rte and Com for Strings and
uint8 arrays d
Com does support the sending / receiving of an array of uint8 natively. The Rte
Description: shall use this native interface if the communicated data type is supported by
Com.
Rationale: Allow an easy access to data natively supported by Com.
Dependencies: –
Use Case: –
Supporting –
Material:
Description: The RTE shall support selectable data preparation for RP.
A "hookable" flag attached to data permits the RTE generator to enable RP
Rationale: preparation for the data element and thus ensure that resources are only
allocated where they are required.
Dependencies: –
"Interesting" signals generated/consumed by SWCs are prepared for RP and
Use Case: subsequently made available for presentation to RP tool users by the RTE
generator.
Supporting –
Material:
Description: The RTE shall support a write-read access pattern for RP prepared data.
The write-read pattern results in the RTE generator writing each associated RP
prepared data element to a RP buffer and subsequently reading from the RP
buffer rather than the data element.
Rationale:
These modifications ensure that if an RP tool patches the write to the RP buffer
then the value that is written by the RP tool to the RP buffer will be used by
subsequent RTE generated code instead of the actual API parameter.
Dependencies: –
An RP tool intercepts writes to the RP global buffer and uses bypass
functionality to change the written value. Since the RTE no longer uses the
Use Case:
original but performs subsequent reads from the RP global buffer it will use the
value as modified by the RP tool.
Supporting –
Material:
The RP memory interface provided by the RTE shall support the enabling or
Description:
disabling of bypass functionality.
RP enables the bypass of existing functionality however the selection is
Rationale: dynamic and therefore it may be necessary to re-enable the original runnable
entity and thus disable the bypass functionality.
Dependencies: –
Algorithm under test, i.e. the bypass functionality, is erroneous and the original
Use Case: algorithm must be re-enabled.
Supporting –
Material:
Description: The RTE generator shall support disabling the execution of runnable entities.
RP enables the bypass of existing functionality and therefore it may be
necessary to disable the original runnable entity to prevent unwanted
side-effects.
The enable/disable decision is dynamic and may be selected by, for example,
Rationale: calibration tools, either prior to system start or change during run-time.
The conditional execution of the original RunnableEntity is unrelated to the
normal conditionality of the invocation, e.g. due to the presence of pre-scalers
created by the RTE generator when multiple RteEvents are mapped to the task.
Dependencies: –
The introduction of bypass functionality replaces an existing algorithm and to
reduce system load the original algorithm is not executed. The switch between
Use Case:
the two algorithms occurs during run-time so that the behavior of the two can
be compared.
Supporting –
Material:
Description: The RTE generator shall support manually inserted service points within SWCs.
In this scenario the service function signature of the BSW that provides the
service is known by the SWC developer and manually inserted into the SWC’s
code when it is developed. The description of these service points is both an
input to, and output from, the RTE generator however the generator’s role is
restricted to validating the manual service points do not conflict with the
Rationale: generated service points.
Note that there is no requirement for the RTE generator to insert calls within
generated code for manually inserted service points. However the RTE
generator must ensure that the description of the SWC’s service hooks is
exported for subsequent tools.
Dependencies: –
A SWC developer implements the service function calls at the required
positions within the RunnableEntity’s code, typically one right before and a
Use Case: second one right after every area to be prepared for bypassing. This
mechanism might be used in migration scenarios where a RunnableEntity
contains multiple functionality.
5
4
Supporting –
Material:
[SRS_Rte_00247] The Rte shall execute transformer chains for SWC communi-
cation
Upstream requirements: RS_BRF_01316
The Rte shall execute transformer chains for SWC communication for Senders,
Description: Receivers, Servers and Clients of Sender/Receiver and Client/Server
inter-ECU communication.
Modification or extension of data is often necessary within the communication
Rationale: between Software Components in inter-ECU communication in a way which is
transparent for the Software Components.
Dependencies: –
Serialize complex data which are sent over a communication bus and
de-serialized them at the receiver’s RTE.
Use Case:
Extend the data with checksums which are created at the sender’s and checked
at the receiver’s side RTE.
5
4
Supporting –
Material:
[SRS_Rte_00248] The Rte shall provide the buffer for the data transformation
Upstream requirements: RS_BRF_01316
Description: The Rte shall provide the buffer for the data transformation.
Data Transformation requires space to be executed on. As the Rte coordinates
Rationale: the execution of transformers, also the Rte has to provide the buffer the
transformers work on.
Dependencies: SRS_Rte_00247
Use Case: –
Supporting –
Material:
The Rte shall provide transformation errors to the SWCs to enable them to
Description:
react accordingly to errors.
SWCs are not only interested in the fact that communication failed but they also
Rationale: might need more detailed information which transformer failed with which error.
Dependencies: SRS_Rte_00247
Safety related SWCs want to distinguish between deserialization error and
Use Case: failed checksum checking.
Supporting –
Material:
[SRS_Rte_00253] The RTE shall execute data transformation for SWC/BSW com-
munication within one ECU
Upstream requirements: RS_BRF_01316
The Rte shall execute data transformation for SWC/BSW communication for
Description:
Senders, Receivers of Sender/Receiver intra-ECU communication.
Transformation of data is often necessary within the communication between
Rationale: Software Components or Basic Software Modules in intra-ECU communication
in a transparent way.
Dependencies: –
Transform different representations of data structures between Software
Use Case: Components or Basic Software Modules within one ECU - e.g. between
NvBlockSwComponentType and DCM.
Supporting –
Material:
[SRS_Rte_00250] The Rte shall provide size indications of variable size arrays to
SWCs
Upstream requirements: RS_BRF_01316
Description: The Rte shall provide size indications of variable size arrays to SWCs.
SWCs which send variable size arrays to other SWCs are the only instances
which know how many elements of the variable size array are filled with valid
Rationale: data. These SWC can indicate the number of valid elements to the Rte. Then,
the Rte can consider that information and transmit only the valid elements to
the receiver.
Dependencies: SRS_Rte_00202, SRS_Rte_00247
Use Case: Bus load efficient transmission of arrays with a variable size.
Supporting –
Material:
If the RTE provides means for tracing which cost additional RAM and/or ROM
Description: and/or RUNTIME in the ECU. It shall be possible to switch these features off
statically during RTE generation.
Rationale: Allow monitoring of VFB communication and runtime behavior.
Dependencies: [SRS_Rte_00045], [SRS_Rte_00008]
Use Case: DLT, Debugging
Supporting VFB90, VFB_C10
Material:
If the RTE is configured for tracing communication across the VFB, it shall be
Description: possible to detail the configuration of the RTE for what has to be logged and
traced.
Tracing only of interesting signals/activations/system states, to reduce
Rationale:
overhead in RAM+RUNTIME.
Dependencies: [SRS_Rte_00005]
Use Case: –
Supporting VFB Specification (VFB90)
Material:
Description: The RTE Generator shall be able to support multiple trace clients for the same
trace event.
It shall be possible to configure several trace functions on the same trace event.
Rationale:
The individual trace functions shall not need to know about each other.
Dependencies: [SRS_Rte_00008]
The Debugger and the Diagnostic Log and Trace (DLT) are interested in the
Use Case:
same trace event.
Supporting –
Material:
The ‘trace’ builds of the RTE generator shall support tracing of sender-receiver
signals on the VFB.
Description: The RTE should provide means for the tracing of transported signals of
sender-receiver communication. It should be possible to trace both intra-ECU
and inter-ECU communication.
Rationale: Log data and supply it for debugging purposes.
Dependencies: [SRS_Rte_00005]
Use Case: –
Supporting VFB Specification (VFB90)
Material:
The ‘trace’ builds of the RTE generator shall support the tracing of client-server
communication.
Description: The RTE should provide means for the tracing of transported signals of
client-server communication. It should be possible to trace both intra-ECU and
inter-ECU communication.
Rationale: Log data and supply it for debugging purposes.
Dependencies: [SRS_Rte_00005]
Use Case: –
5
4
Supporting VFB Specification (VFB90)
Material:
The RTE generator shall respect the invocation order of Runnable Entities as
Description:
specified in the input information.
The invocation order of Runnable Entities may be of importance to the
functionality of the algorithm or its timing.
Rationale: The invocation order may be provided with the description of the
SW-Components or in the configuration of the RTE.
Dependencies: –
A control loop implemented with several SW-Components. The execution of the
Use Case: individual Runnable Entities of this control loop shall be respected by the
generated RTE code.
Supporting Software Component Template [4]
Material:
The RTE shall support the execution of initialization runnable entities as a part
Description: of startup sequence controlled by the Bsw Manager and delay the start of
timing events until the end of the startup sequence.
Simpler approach to initialize data inside a software-component other than to
Rationale: use mode-management.
Dependencies: –
Define initialization runnables without being aware of integration details like
Use Case:
ECU modes.
5
4
Supporting Software Component Template [4]
Material:
4.1.10 API
The RTE API (for a particular programming language) shall be compiler and
Description:
platform independent.
There shall be no need to change an Application Software Component
Rationale: source-code when the component is moved between ECUs and/or the compiler
is changed.
Dependencies: –
Use Case: –
In addition the RTE should, ideally, also be retargetable (i.e. portable) with
Supporting
minimum effort. This is explicitly not stated as an RTE requirement since it is a
Material:
statement about RTE implementation and not RTE behavior.
For parameters which are typed by an AUTOSAR data type the RTE API shall
either use data types related to the whole AUTOSAR data type or data types
Description:
related to the used Base Type. The kind of API is defined in the
SWC-Description and is part of the contract phase input.
Dependent from the SWCs implementation either usage of Base Type related
types (comprising only the "C" implementation aspect) or full AUTOSAR data
type related types (comprising the semantic of the data type as well) is more
Rationale: advantageous. This depends how many library functions are used in the
SW-C’s implementation. In general the RTE shall support both typing to avoid
unnecessary type casts as far as possible and to support strong type checking.
Dependencies: –
Use Case: Strong type checking with a static code analyzer.
Supporting –
Material:
[SRS_Rte_00059] RTE API shall pass "in" primitive data types by value d
An API input parameter that is a primitive data type (with the exception of a
Description:
string) shall be passed by value.
Rationale: Pass by value is efficient for small data types.
Dependencies: –
Use Case: –
Supporting In the context of this requirement, primitive data types include integers (both
Material: signed and unsigned), floating point and opaque types.
[SRS_Rte_00060] RTE API shall pass "in" composite data types by reference d
The RTE API shall pass all input parameters that are composite data types (i.e.
Description:
a record or an array) or strings by reference.
Rationale: Pass by reference is efficient for large data types.
Dependencies: –
Use Case: –
Supporting [SRS_Rte_00036] - Assignment to OS Applications.
Material:
Description: The RTE API shall pass ‘in/out’ and "out" formal parameters by reference.
Required so that modifications to the actual parameters made by the called
Rationale:
function are visible to the caller.
Dependencies: –
Use Case: –
Supporting –
Material:
Description: The RTE shall provide an API to access the data consistency mechanism(s).
The data mechanism may rely on AUTOSAR OS mechanisms (e.g. resources)
Rationale:
which cannot be accessed directly by Application Software Components.
Dependencies: [SRS_Rte_00032] - data consistency mechanism.
Use Case: –
Supporting VFB Requirements (VFB_C60, Sched70)
Material:
The RTE generator shall generate an API in the application header file through
Description: which the Runnable Entities of a component instance can access their
per-instance memory for reading and writing.
Rationale: Required by the software component template
Dependencies: [SRS_Rte_00013] - per-instance memory.
Use Case: –
"per-instance memory" is synonymous to "Individual data of a component
instance" described in Software Component Template [4]
Supporting
The RTE does not impose a data consistency mechanism on access to
Material:
per-instance memory. If a component requires consistency then the RTEEnter
and RTEExit API calls should be used.
The RTE generator shall support the INIT_VALUE attribute for both intra-ECU
and inter-ECU communication (though the latter is expected to requires no
direct support if AUTOSAR COM is used).
Description: If an initial value is specified for a receiver and not a sender (or vice versa) the
RTE generator shall apply the same initial value to both sender and receiver.
If an initial value is specified for both sender and receiver the RTE generator
shall use the specifications for the receiver.
The input information can contain conflicting values for the INIT_VALUE
Rationale:
attribute (sender and receiver).
Dependencies: [SRS_Rte_00068] - Signal initial values.
Use Case: The INIT_VALUE is different in the sender- and receiver com spec.
Supporting VFB Specification v1.03, p. 42
Material:
The RTE generator shall support the RECEIVE_MODE attribute with the values
"data_read_access", "wake_up_of_wait_point" and
Description: "activation_of_runnable_entity".
The RTE generator shall support different receive modes for each data item in
an AUTOSAR interface.
Rationale: Derived from the VFB Specification.
Dependencies: –
Use Case: –
VFB Specification v1.03, p. 43
When "data_read_access" is specified the RTE generator shall create a
non-blocking read API for the data item. The name of the API could include the
port name and data item name.
When "wake_up_of_wait_point" is specified the RTE generator shall create a
Supporting blocking read API for the data item. The name of the API shall include the port
Material: name and data item name. The API could support a timeout specified at
configuration time.
When "activation_of_runnable_entity" is specified the RTE generator shall
invoke a Runnable Entity when data is received passing the received data as
parameters to the Runnable Entity. The name of the Runnable Entity could
include the port name and data item name.
The RTE generator shall support the BUFFERING attribute with the values
"last_is_best" (sender/receiver only), "queue" and "no" (client/server only).
Description: The RTE generator shall support different buffering specifications for each data
item in an AUTOSAR interface.
Note the queues may be implemented by either the RTE or by COM.
Rationale: –
Dependencies: [SRS_Rte_00033] - Serialization of Server Runnable Entities.
Use Case: –
VFB Specification v1.03, p. 43
When "last_is_best" is specified the RTE generator
Shall create a non-consuming read API for the data item. The name of the API
shall include the port name and data item name.
Shall store received data shall be stored in a single-element queue and new
data shall overwrite existing data.
Supporting
When "queue" is specified for sender/receiver the RTE generator
Material:
Shall create a consuming read API for the data item. The name of the API shall
include the port name and data item name.
Shall store received data in a queue (the length of which is specified by the
"queue" attribute value) accessed on a first-in-first-out basis.
Shall discard new data if the queue is full.
When "no" or "queue" is specified for client/server see [SRS_Rte_00033].
The RTE generator shall support the CLIENT_MODE attribute with the values
"synchronous" and "asynchronous".
Description:
The RTE generator shall support different client mode specifications for each
operation in an AUTOSAR interface.
Rationale: –
Dependencies: [SRS_Rte_00049] - construction of task bodies.
Use Case: –
VFB Specification v1.03, p. 51
When "synchronous" is specified the RTE generator
Shall create an API that invokes the operation synchronously. The name of the
API could include the port name and operation name.
Shall support a timeout specified at the configuration time. The RTE generator
Supporting
should ignore any timeout specified for intra-task communication.
Material:
When "asynchronous" is specified the RTE generator
Shall create an API that invokes the operation asynchronously. The name of
the API could include the port name and operation name.
Reject configurations that specify asynchronous invocation of server where
both Runnable Entities are mapped to the same task.
The RTE generator shall support the FILTER attribute. If specified, the attribute
value shall specify the filter type used.
The RTE generator shall support different filter specifications for each data item
Description:
in an AUTOSAR interface.
The RTE generator shall apply value-based filtering regardless whether
communication occurs via COM or is handled by the RTE.
Same behavior independent of RTE implementation and component
Rationale:
deployment.
Dependencies: –
Use Case: –
Supporting VFB Specification v1.03, p. 44
Material:
4
Use Case: Data invalid
Supporting –
Material:
Description: The RTE generator shall support Transmission Acknowledgement for outgoing
communication.
Allow the transmitting Application Software Component to wait for the
Rationale: acknowledgement and handle the successful / failed transmission.
Dependencies: –
Use Case: –
Supporting –
Material:
The RTE API shall support the forwarding of infrastructural errors (see [3]) to
components. This can occur synchronously with API calls (e.g. read, send) or
asynchronously (i.e. activation of Runnable Entity). Infrastructural errors
include communication and resource errors and are split into two groups:
Immediate Infrastructure Error:
Description:
If the RTE detects an error which is specific to the current processed data.
The remaining bit0..bit5 may describe the specific error.
Overlayed Error:
If the RTE detects an error which is not specific to the current processed data.
Overlayed Errors are set using bit6.
5
4
Rationale: VFB Specification [3]
Dependencies: [SRS_Rte_00094] - Communication and Resource Errors.
Use Case: –
Supporting VFB Specification [3]
Material: Software Component Template [4]
[SRS_Rte_00123] The RTE shall forward application level errors from server to
client d
The RTE shall pass the application error ID together with the communication
Description: reply from the server to the client. The RTE shall only pass the application
error, if no structural error is present.
For client-server communication, the application SW components require a
Rationale: method to transfer application specific errors under the condition that there are
no structural errors on the communication path.
Dependencies: [SRS_Rte_00124] - API for application level server errors.
A crypto library provides a server. An application error should be returned if the
Use Case: arguments of the call are miss-configured.
Supporting –
Material:
[SRS_Rte_00124] API for application level errors during Client Server communi-
cation d
The RTE shall communicate application level errors on the same path as
structural errors of the communication stack.
Description:
The RTE shall receive error information from the server operation’s return
value.
This requirement enables the efficient use of return values to pass error IDs. By
Rationale: a common use of the return value for structural and application errors, the
application only has to check once for "OK".
Dependencies: [SRS_Rte_00123] - Forwarding of application level server errors.
5
4
Rte_StatusType
sqrt(Rte_Instance self,
Double p, Double *result)
}
if (p < (Double)0.0) }
/* Set application error
Use Case:
* (API to be defined) */
return ERROR_IMAGINARY_NUMBER;
{
*result = (Double)sqrt(p);
return RTE_E_OK;
{
Supporting –
Material:
The RTE API shall support independent access to data items (sender-receiver
Description:
interface) or operations (client-server interface).
Rationale: Required by the VFB Specification
Dependencies: –
Use Case: –
VFB Specification
Data items (or operations) in an interface form multiple logical channels
between the same end-points (ports).
Supporting
Each logical channel is handled independently - data can be sent and received
Material:
or operations invoked without reference to other logical channels. Since logical
channels are independent there is not guarantee of consistency between sends
over different channels.
The RTE generator shall provide null API calls for data elements or operations
for ports where more elements/operations are provided than required.
Description:
The API for an unconnected provided data element or operation shall discard
the input parameters and return "no error".
Rationale: –
Dependencies: –
A provided sender-receiver port defines two data elements ‘a’ and ‘b’ yet is
Use Case: required by a port with only element ‘a’. The API call for ‘b’ shall be generated
but shall have no effect.
Supporting Software Component Template [4]
Material:
The RTE shall handle ports, whether required or provided, that are not
connected.
The APIs for an unconnected required sender/receiver port shall return a
dedicated status code that the sender is not connected. The result value shall
be the init value.
The API to call a client-server port for an unconnected required port shall return
Description:
a dedicated status code that the server is not connected.
The API to collect the result from an asynchronous client-server port for an
unconnected required port shall return a dedicated status code that the server
is not connected.
The API for an unconnected provided sender/receiver port shall discard the
input parameters and return "no error".
In a component based system design there is a high chance to end up with
Rationale: unconnected ports for software components.
In a variant rich system design unconnected ports can occur.
Dependencies: [SRS_Rte_00200]
Use Case: A not connected port of a software component.
Supporting Software Component Template [4]
Material:
The SW-C and basic software module source code shall be independent from
the actual calibration method (data emulation with SW or HW support) chosen
Description:
for the needed calibration parameters. To abstract from the different access
methods to calibration parameters the RTE and SchM shall provide an API.
5
4
The SW-C source code shall use a dedicated API to access the calibration
Rationale:
parameters.
Dependencies: [SRS_Rte_00154] - Support of Calibration.
The SW-C code uses the same API call regardless whether the calibration
Use Case: parameter is stored directly in ROM or is stored in a structure to support data
emulation with SW support.
Supporting Software Component Template [4] chapter "Measurement & Calibration"
Material:
The RTE shall support the generation of an API to retrieve the transmission
Description:
acknowledgement in an implicit communication.
Rationale: Allow to query the transmission state also for implicit communication.
Dependencies: –
Enable a Runnable Entity to check whether the information provided from the
Use Case:
last execution (in an implicit API) has actually been transmitted.
Supporting –
Material:
The RTE shall provide an API to read a system constant value. This API shall
be usable for the C-preprocessor code or the C-compiler code.
Support for the following kinds if information shall be generated:
Description: • Read the actual value of the SystemConstantDef
• Read the setting of an attribute (e.g. array size)
• Check the existence of a variable element
The software module implementation can use the value of the system constant
in its execution code.
The software module implementation can query the existence of a variable
Rationale:
element.
This is applicable for Basic Software as well as for application software
components.
This requirement is dedicated to variant handing, a more generic requirement
Dependencies:
is [SRS_Rte_00171] which might lead to the same implementation.
The existence of a Port is specified to be variable with a binding time
"PreCompile". The implementation of the SWC can query the value of the
Use Case:
system constant used to enable/disable the port, in order to change its
behavior.
Supporting –
Material:
On multi-core systems, the APIs to enter and exit exclusive areas shall ensure
Description: that no two entities may run inside the same exclusive area at any one time,
neither by preemption nor by parallel execution of multiple entities on different
cores.
For systems where the BSW modules can safely be executed in multiple
Rationale: partitions, possibly running on multiple cores, access to shared data shall be
protected across partition and core boundaries.
Dependencies: [SRS_Rte_00046]
Use Case: BSW running on multi core systems.
Supporting –
Material:
The RTE Generator shall create exactly one software module header file to be
explicitly included in each C/C++ application or basic software component type
Description:
that defines that component’s RTE API. There may be a hierarchy of include
files implicitly included.
Required to define API mapping and to perform optimizations and monitoring
targeted for specific components.
Rationale: The software component header file is generated and can therefore include
component specific information, including task header files for zero-overhead
access to OS facilities.
Dependencies: –
Use Case: –
Supporting AUTOSAR design flow.
Material: This requirement does not preclude a component including its own header files.
The RTE generator shall provide mechanisms to initialize and finalize the RTE
in two steps:
Step 1: set all initial values of the communication and mode machine instances
start the schedule of BSW modules
Description: treat the communication with application SW-Cs like unconnected remote
communication
Step2: start the schedule and communication of all application SW-Cs
The RTE startup shall support the startup of SW-C and BSW modules mapped
to different OS applications, specifically different cores and memory partitions.
Rationale: Support the initialization of the BSW Scheduler and the RTE.
Dependencies: –
Initialize the mode management and the scheduling of BSW before initializing
Use Case: and executing the Application SW-Components.
Supporting –
Material:
The RTE shall support to split the implementation of the VFB functionality
between RTE Generator and so called Rte Implementation Plug-Ins. Thereby
two different specialization of Rte Implementation Plug-Ins shall be supported:
• Local Software Cluster Communication Plug-Ins generally take care about
Description: the implementation of preemption and concurrency locks, protection of data
accesses, and implicit communication buffering inside a Software
Cluster.
• Cross Software Cluster Communication Plug-Ins generally handling the
communication towards a non-software-cluster-local communication partner.
Runtime and memory optimization of semaphore mechanisms in complex
scheduling scenarios.
Rationale:
Non AUTOSAR standardized buffering schema, e.g. LET
Cross Software Cluster Communication
Dependencies: –
Use Case: –
Supporting –
Material:
The RTE shall support to implement for explicit communication following sub
functionality
• getting a semaphore
• releasing a semaphore
• implementation of the semaphore
via RTE Implementation Plug-Ins outside the RTE Generator. This includes
port based communication as well as Inter Runnable Variables.
5
4
Runtime and memory optimization of semaphore mechanisms in complex
Rationale: scheduling scenarios.
Dependencies: –
Activation of RunnableEntities accessing the same data. The access is
Use Case:
mutually exclusive due to functional conditions.
Supporting –
Material:
via RTE Implementation Plug-Ins outside the RTE Generator. This includes
port based communication as well as Inter Runnable Variables.
Runtime and memory optimization of implicit communication buffering.
Rationale: Customized buffering strategies differing from the RTE standardized ones.
Dependencies: –
Use Case: Time triggered buffering supporting the Logical Execution Time paradigms.
Supporting –
Material:
The RTE shall support for an implicit communication implementation that the
Local Software Cluster Communication Plug-In can control point in
Description:
time when the Cross Software Cluster Communication Plug-In
reads and writes data from / to other Software Clusters
Rationale: –
Dependencies: –
5
4
Time triggered buffering supporting the Logical Execution Time (LET)
Use Case: paradigms.
Supporting –
Material:
The RTE shall support an exclusive area implementation with the following
sub-functionalities:
• getting a semaphore
Description: • releasing a semaphore
• implementation of the semaphore
The RTE shall support to implement the instantiation of the global copy via RTE
Description:
Implementation Plug-Ins outside the RTE Generator.
Rationale: Data consistency mechanisms with various global copies.
Dependencies: RTE measurement support with symbols for measurement buffers.
Use Case: Data consistency by ring-buffer principle.
Supporting –
Material:
The RTE shall support a graduated validation strategy to detect and to reject
invalid configurations. In case a communication graph is assigned to an RTE
Implementation Plug-In the RTE Generator shall only apply validation checks
Description:
safeguarding the sub-functionality in the RTE implementation. In addition the
RTE Implementation Plug-In provider shall apply checks safeguarding the
sub-functionality in the RTE Implementation Plug-In.
An RTE Implementation Plug-In may handle configurations which are not
Rationale:
supported by a standard RTE Generator.
Dependencies: [SRS_Rte_00018]
The standard implicit buffering in RTE is not capable to handle pre-emptiv
scheduled Runnable since this would require multiple buffers for one data
Use Case: access. In case the RTE Implementation Plug-In offers functionality to handle
multiple buffers for one data access of a Runnable it can accept this
configuration.
Supporting –
Material:
The RTE shall queue mode switch requests of configurable sets of mode
Description: machine instances in common queues. Thereby the mode machine instances
may be assigned to different partitions.
Rationale: Preserve global execution order of mode switch requests.
Dependencies: –
Use Case: –
Supporting –
Material:
The RTE shall provide interfaces for the graduated ramp-down and ramp-up of
the task schedule during a mode switch. Thereby the interfaces shall support
the notification of a task coordinator about::
• the reception of the mode switch notification
• the execution of on-entry ExecutableEntitys, on-transition ExecutableEntitys,
on-exit ExecutableEntitys
Description: • the dequeuing of the mode switch notification
• delaying all pending and newly activated tasks until the transition is over
• waiting until currently executed tasks have been finished.
• resuming the task system on all cores/partitions in the group
Rationale: Deterministic task execution during mode switches.
Dependencies: –
The mode transition in a multi core configuration with many OS task shall be
Use Case: performed in a managed way.
Supporting –
Material:
The RTE shall support to implement the invocation of transformers for client
Description:
server communication in an RTE Implementation Plug-In.
Adapt the transformer buffer allocation strategy (static, stack based) to the ECU
Rationale:
SW architecture needs.
Dependencies: –
Use Case: –
Supporting –
Material:
The RTE shall support to implement the invocation of transformers for trigger
Description:
communication in an RTE Implementation Plug-In.
Adapt the transformer buffer allocation strategy (static, stack based) to the ECU
Rationale:
SW architecture needs.
Dependencies: –
Use Case: –
Supporting –
Material:
4
Supporting –
Material:
The RTE code shall prevent from nesting of critical sections caused from the
Description:
interleaved usage of macro based RTE API.
In case the RTE API gets implemented as macro and the SWC uses one RTE
API as argument for another RTE API it may occur that the critical sections
Rationale:
(and according protection calls) might be interleaved with the critical sections of
the other macros. Such a code can cause dead locks.
Dependencies: –
Use Case: –
Supporting –
Material:
The RTE shall support to protect the access to mode machine instances and
Description:
shared mode queues related data via the RTE Implementation Plug-in.
Runnables accessing the same mode machine instance from different cores.
Rationale: Runnables accessing mode machines instances handled in a common shared
mode queue from different cores.
Dependencies: –
Use Case: –
Supporting –
Material:
The RTE shall support to implement for mode communication following sub
functionality:
• inform the Cross Software Cluster Communication Plug-In about
start of a mode switch
Description: • inform the Cross Software Cluster Communication Plug-In about
end of a mode switch
• dequeuing of the mode switch notification by RTE after the Cross
Software Cluster Communication Plug-In has synchronized the
mode switches of the receiving Software Cluster
Rationale: Cross Software Cluster Communication of mode switches
Dependencies: –
Use Case: –
Supporting –
Material:
The RTE and RTE Implementation Plug-ins shall support to apply RTE
Description: Implementation Plug-ins for Software Components using the compatibility
mode.
Rationale: –
Dependencies: [SRS_Rte_00145]
Use Case: A Software Component is integrated as object code.
Supporting –
Material:
Description: The RTE generator shall operate according to the AUTOSAR methodology.
Rationale: –
Dependencies: –
Use Case: –
Supporting AUTOSAR Methodology
Material:
none
none
none
none
Number Heading
[SRS_Rte_00318] Modular Runtime Environment
[SRS_Rte_00319] RTE Implementation Plug-Ins for parameter communication
[SRS_Rte_00321] RTE Implementation Plug-Ins for mode communication
Table 5.1: Changed Requirements in R23-11
Number Heading
[SRS_Rte_00195] No activation of Runnable Entities in terminated or restarting partitions
[SRS_Rte_00223] Callout for partition termination notification
[SRS_Rte_00224] Callout for partition restart request
Table 5.2: Deleted Requirements in R23-11
none
Number Heading
[SRS_Rte_00201] Contract Phase with Variant Handling support
[SRS_Rte_00206] Support the selection of a signal provider
Support N to M communication patterns while unresolved variations are
[SRS_Rte_00207]
affecting these communications
Table 5.3: Changed Requirements in R22-11
Number Heading
[SRS_Rte_00149] Support "Specification of Compiler Abstraction"
Table 5.4: Deleted Requirements in R22-11