Autosar Sws Bswgeneral
Autosar Sws Bswgeneral
Autosar Sws Bswgeneral
Document Title
Document Owner
Document Responsibility
Document Identification No
Document Classification
AUTOSAR
AUTOSAR
578
Standard
Document Status
Part of AUTOSAR Release
Final
4.2.2
AUTOSAR
Release
Management
4.1.3
AUTOSAR
Release
Management
4.1.2
AUTOSAR
Release
Management
4.1.1
AUTOSAR
Administration
Change Description
Debugging support marked as obsolete
minor corrections / clarifications / editorial
changes; For details please refer to the
ChangeDocumentation
Update in error handling classification
Update in initialization function requirements
Updated due to
SupportForPBLAndPBSECUConfiguration
concept
minor corrections / clarifications / editorial
changes; For details please refer to the
BWCStatement
Update of include file structure and required
header files requirement specification
Update of inter-module version check
removed REVISION/PATCH_VERSION from
the required check
Formating and spelling corrections
Moved declarations of MainFunctions and
BswModuleClientServerEntrys from the module
header files to RTE/BswScheduler
Modified the Published Information definitions
Added the NULL pointer checking mechanism
description
Removed the "Fixed cyclic", "Variable cyclic"
and "On pre condition" from the Scheduled
Functions description
Editorial changes
Initial release
1 of 86
- AUTOSAR confidential -
2 of 86
- AUTOSAR confidential -
3 of 86
- AUTOSAR confidential -
Table of Contents
1
Traceability ................................................................................................... 6
Document conventions ................................................................................. 6
Related documentation........................................................................................ 9
3.1
3.2
Limitations .................................................................................................. 11
Applicability to car domains ........................................................................ 11
4 of 86
- AUTOSAR confidential -
5 of 86
- AUTOSAR confidential -
1.1 Traceability
The Specification items from this document describe the work products from the
BSW Module implementation or their parts with regard to the Basic Software
Requirements, which are described in AUTOSAR General Requirements on Basic
Software Modules [3].
For every BSW Module, the traceability between Specification items and Basic
Software Requirements is in scope of this document and the according BSW Module
Software Specification. See also chapter 6 - Requirements traceability.
The BSW Module implementation must guarantee traceability to the corresponding
Specification items of this document and of the corresponding BSW Module
specification.
Some Specification items are not applicable to every BSW Module. In such a case,
its description explicitly mentions the condition for its applicability. If no condition is
mentioned, the Specification item is applicable for all BSW Modules.
Please refer to AUTOSAR Standardization Template [14], chapter Support for
traceability for further information.
- AUTOSAR confidential -
7 of 86
- AUTOSAR confidential -
Abbreviation /
Acronym:
BSW driver
Camel case
<Ie>
<Ma>
<MA>
MCAL
<Mip>
<MIP>
Module
implementation
prefix
Module
abbreviation
WCET
Description:
For a list of BSW drivers see the List of Basic Software Modules [1],
column AUTOSAR SW layer.
This document does not aim to specify rules for the camel case
notation. Definition of CamelCase according to Wikipedia (see
chapter 3.1):
camelCase () is the practice of writing compound words or
phrases in which the elements are joined without spaces, with each
element's initial letter capitalized within the compound and the first
letter either upper or lower case ().
Example: GetVersionInfo
Implementation specific file name extension, see SWS_BSW_00103.
Module abbreviation, see SWS_BSW_00101.
Capitalized module abbreviation. The Capitalized module abbreviation
<MA> is the Module abbreviation <Ma> (see bsw_constr_001)
8 of 86
- AUTOSAR confidential -
Related documentation
9 of 86
- AUTOSAR confidential -
[20]
HIS Software Supplier Identifications
http://www.automotive--his.de/his--ergebnisse.htm
10 of 86
- AUTOSAR confidential -
4.1 Limitations
This specification is common to all AUTOSAR BSW Modules [1] and contains only
general Specification items on BSW Modules. Some of these specification items may
not be relevant to particular BSW Modules, whenever the conditions specified are not
fulfilled.
11 of 86
- AUTOSAR confidential -
This specification is common to all AUTOSAR BSW Modules [1] and contains only
general Specification items, which complement every single BSW Module
specification. It shall not be used as a standalone specification.
Example: The CAN Interface module is specified by this specification (General
Specification for BSW Modules) and by the document Specification on CAN Interface
(SWS CAN Interface).
12 of 86
- AUTOSAR confidential -
Classification
mandatory
mandatory
mandatory
mandatory
conditional
conditional
conditional
conditional
conditional
conditional
conditional
conditional
13 of 86
Example: Com
Not defined.
Not defined. See [4].
Com.c
Com.h
Com_Cbk.h
Com_Dbg.h
Com_Cfg.h
Com_Lcfg.c
Com_Lcfg.h
Com_PBcfg.c
Com_PBcfg.h
Gpt_Irq.c
- AUTOSAR confidential -
14 of 86
- AUTOSAR confidential -
- AUTOSAR confidential -
- AUTOSAR confidential -
- AUTOSAR confidential -
- AUTOSAR confidential -
19 of 86
- AUTOSAR confidential -
- AUTOSAR confidential -
21 of 86
- AUTOSAR confidential -
- AUTOSAR confidential -
- AUTOSAR confidential -
- AUTOSAR confidential -
- AUTOSAR confidential -
26 of 86
- AUTOSAR confidential -
Requirements traceability
For every BSW Module, both the according BSW specification and this document
(SWS BSW General) satisfy requirements from AUTOSAR General Requirements on
Basic Software Modules [3]. The following situations are possible:
Not applicable.
Specified
Specified
Satisfied by SWS
BSW General
Specified
Specified
Specified
Description
Satisfied by
SWS_BSW_00048
SWS_BSW_00060
SWS_BSW_00110
SWS_BSW_00144
SWS_BSW_00186
SWS_BSW_00187
SWS_BSW_00188
27 of 86
- AUTOSAR confidential -
SWS_BSW_00190
SWS_BSW_00191
SWS_BSW_00192
SWS_BSW_00200
SWS_BSW_00201
SWS_BSW_00202
SWS_BSW_00203
SWS_BSW_00204
SWS_BSW_00205
SWS_BSW_00206
SWS_BSW_00207
SWS_BSW_00208
SWS_BSW_00209
SWS_BSW_00210
SWS_BSW_00212
SWS_BSW_00218
SWS_BSW_00219
SWS_BSW_00220
SWS_BSW_00221
SWS_BSW_00222
SWS_BSW_00223
SWS_BSW_00224
SWS_BSW_00225
SWS_BSW_00226
SWS_BSW_00227
SWS_BSW_00230
SWS_BSW_00231
SWS_BSW_00232
SWS_BSW_00233
SRS_BSW_00001 -
noname
SRS_BSW_00002 -
noname
SWS_BSW_00059
SWS_BSW_00119
28 of 86
- AUTOSAR confidential -
SWS_BSW_00115
SWS_BSW_00002
SWS_BSW_00002
SWS_BSW_00137
SWS_BSW_00101, SWS_BSW_00102,
SWS_BSW_00103
SWS_BSW_00104
SWS_BSW_00105
SWS_BSW_00120
SWS_BSW_00146
- AUTOSAR confidential -
SWS_BSW_00131
SWS_BSW_00148
SWS_BSW_00016, SWS_BSW_00017,
SWS_BSW_00018, SWS_BSW_00019,
SWS_BSW_00021, SWS_BSW_00181
SWS_BSW_00059
SWS_BSW_00049
SWS_BSW_00167
SRS_BSW_00326 -
SWS_BSW_00182
SWS_BSW_00125
SWS_BSW_00127
SWS_BSW_00132
SWS_BSW_00167
SWS_BSW_00001
SWS_BSW_00124
SWS_BSW_00042, SWS_BSW_00045
SWS_BSW_00046, SWS_BSW_00066
SWS_BSW_00003
30 of 86
- AUTOSAR confidential -
SWS_BSW_00117
SWS_BSW_00056
SWS_BSW_00031
SWS_BSW_00004, SWS_BSW_00005,
SWS_BSW_00013, SWS_BSW_00015,
SWS_BSW_00020, SWS_BSW_00026,
SWS_BSW_00027, SWS_BSW_00030,
SWS_BSW_00032, SWS_BSW_00034
SWS_BSW_00024
SWS_BSW_00122
SWS_BSW_00185
SWS_BSW_00009, SWS_BSW_00010,
SWS_BSW_00026
SWS_BSW_00153, SWS_BSW_00154
31 of 86
- AUTOSAR confidential -
SWS_BSW_00059, SWS_BSW_00161
SRS_BSW_00376 -
SWS_BSW_00154
SWS_BSW_00142
SWS_BSW_00014, SWS_BSW_00033,
SWS_BSW_00063
SWS_BSW_00030, SWS_BSW_00031
SWS_BSW_00183
SWS_BSW_00050, SWS_BSW_00228
SWS_BSW_00059
SWS_BSW_00160
SWS_BSW_00228
SWS_BSW_00052, SWS_BSW_00059,
SWS_BSW_00064, SWS_BSW_00164,
SWS_BSW_00168
SWS_BSW_00126
SWS_BSW_00008, SWS_BSW_00143
SWS_BSW_00123
- AUTOSAR confidential -
SWS_BSW_00001, SWS_BSW_00040
SWS_BSW_00156
SWS_BSW_00001, SWS_BSW_00041,
SWS_BSW_00065
SWS_BSW_00054
SWS_BSW_00133
SRS_BSW_00435 -
SWS_BSW_00007
SRS_BSW_00436 -
SWS_BSW_00006
SWS_BSW_00050, SWS_BSW_00057,
SWS_BSW_00158
SWS_BSW_00043, SWS_BSW_00068
SWS_BSW_00180
SWS_BSW_00124
SWS_BSW_00023, SWS_BSW_00025,
SWS_BSW_00069, SWS_BSW_00147
SWS_BSW_00037, SWS_BSW_00071,
SWS_BSW_00072
33 of 86
- AUTOSAR confidential -
SWS_BSW_00179
SWS_BSW_00039
SWS_BSW_00135, SWS_BSW_00136
SWS_BSW_00170
SWS_BSW_00171
SWS_BSW_00150, SWS_BSW_00152
34 of 86
- AUTOSAR confidential -
Functional specification
- AUTOSAR confidential -
For more information about ECU configuration, see also AUTOSAR Specification of
ECU Configuration [15].
With the AUTOSAR Methodology it is possible to configure an AUTOSAR ECU out of
BSW Modules provided as source code and out of BSW Modules provided as object
code, or even mixed. This must be of course supported by the implementation, i.e. it
shall not require that the source code is always part of the delivery.
[SWS_BSW_00117] Support object code delivery and configuration
The BSW Module implementation shall support configuration of its link-time and
post-build configuration parameters even if only the object code and the
corresponding header files are available, i.e. even if the source code files are not
available.(SRS_BSW_00342)
- AUTOSAR confidential -
*/
__far__ X
This enables the usage of this macro within source code in the following way:
FAR(void) function();
In this example, the compiler dependency is encapsulated in a separate file
(Compiler.h) which can be exchanged if a new compiler is used. This enables the
provision of a compiler specific header containing proprietary pre-processor
directives as well as wrapper macros for all specialized language extensions.
Note that different compilers can require extended keywords to be placed in different
places. Example:
Compiler 1 requires:
void __far__ function();
Compiler 2 requires:
__far__ void function();
In this case it is not possible to accommodate the different implementations with
inline macros, so a function-like macro style is adopted instead. This macro wraps
the return type of the function and therefore permits additions to be made, such as
__far__, either before or after the return type.
Example:
Compiler 1:
/* Compiler.h
*/
#define FAR(x) x __far__
Compiler 2:
/* Compiler.h
*/
#define FAR(x) __far__ x
37 of 86
- AUTOSAR confidential -
7.1.5 Configurability
Plausibility checks on configuration parameters can be made by a configuration tool
during configuration or by the pre-processor during runtime. See also
BSW_SWS_061
Detailed configuration rules and constraints may also be part of modules own
specification and the BSW Modules documentation, which is delivered with the
module implementation.
Optional functionalities of a BSW Module shall not consume resources (RAM, ROM
and runtime). These functionalities can be enabled or disabled at pre-compile time
with suitable configuration parameters, like defined in chapter 10 of the respective
BSW Module specification.
[SWS_BSW_00029] Implement configuration of optional functionality
If the BSW Module contains optional functionality, then this functionality shall be
enabled (STD_ON) or disabled (STD_OFF) by a Pre-compile time configuration
parameter.(SRS_BSW_00171)
Disabled functionality will not become part of compiled code. If the code is
automatically generated, e.g. after configuration, the disabled functionality may even
not be part of source code. It may also never have been implemented, if the BSW
software provider does not support this configuration.
These symbols, STD_ON and STD_OFF, and their values are defined in
Std_Types.h(SWS_BSW_00024).
The module configuration shall be according to the AUTOSAR Methodology, see
chapter 3.1, see SWS_BSW_118. The module configuration parameters are defined
in chapter 10 of the corresponding BSW Module specification.
[SWS_BSW_00123] Check compiler switches by comparison with defined values
Compiler switches shall be compared with defined values. Simply checking if a
compiler switch is defined shall not be used in implementation.(SRS_BSW_00410)
Example:
#if (EEP_21_LDEXT_DEV_ERROR_DETECT == STD_ON )
38 of 86
- AUTOSAR confidential -
- AUTOSAR confidential -
<Ma><Pn>
<MA><PN>
<Mip><Pn>
<MIP><PN>
Where:
<Pn> is the specific parameter name in camel case;
<PN> is the specific parameter name in upper case;
The term <Pn> (or <PN>) may consist of several words which may or may not be
separated by underscore.
The usage of the camel case or upper case notation shall be chosen according to the
original Configuration parameter name specification and the respective Configuration
parameter label specification.(SRS_BSW_00408, SRS_BSW_00347)
Examples:
CanIfTxConfirmation
PDUR_E_INIT_FAILED
EEP_21_LDEXT_NORMAL_WRITE_BLOCK_SIZE
40 of 86
- AUTOSAR confidential -
- AUTOSAR confidential -
- AUTOSAR confidential -
7.1.13 Callouts
[SWS_BSW_00039] Define prototypes of Callout functions
If the BSW Module uses Callout functions, then it shall define the prototype of the
callouts in its own Implementation header.(SRS_BSW_00460)
The file containing the implementation of the Callout function can include this header
to check if declaration and definition of callout match.
Example: Operating System
/* File: Os.h
*/
/* Callout declaration */
void ErrorHook ( StatusType );
43 of 86
- AUTOSAR confidential -
For example:
#define COM_START_SEC_SOMEMODULE_SOMECALLOUT_CODE
#include Com_MemMap.h
FUNC(void, COM_SOMEMODULE_SOMECALLOUT_CODE)
Somemodule_SomeCallout (void);
#define COM_STOP_SEC_SOMEMODULE_SOMECALLOUT_CODE
#include Com_MemMap.h
44 of 86
- AUTOSAR confidential -
- AUTOSAR confidential -
OS Services
Activate Task
Terminate Task
Chain Task
Schedule
GetTaskID
GetTaskState
DisableAllInterrupts
EnableAllInterrupts
SuspendAllInterrupts
ResumeAllInterrupts
SuspendOSInterrupts
ResumeOSInterrupts
GetResource
ReleaseResource
SetEvent
ClearEvent
GetEvent
WaitEvent
GetAlarmBase
GetAlarm
SetRelAlarm
SetAbsAlarm
CancelAlarm
GetActiveApplicationMode
StartOS
ShutdownOS
GetApllicationID
StartScheduleTable
StopScheduleTable
NextScheduleTable
SyncScheduleTable
GetScheduleTableStatus
SetScheduleTableAsync
IncrementCounter
GetCounterValue
GetElapsedCounterValue
TerminateApplication
RTE ,
BSW
Sched
uler,
BswM,
CDD
EcuM
MCAL
StbM
Other
BSW
Modules
46 of 86
- AUTOSAR confidential -
AllowAccess
GetApplicationState
ControlIdle
GetNumberOfActivatedCores
GetCoreID
StartCore
StartNonAutosarCore
GetSpinlock
ReleaseSpinlock
TryToGetSpinlock
ShutdownAllCores
RTE ,
BSW
Sched
uler,
BswM,
CDD
EcuM
MCAL
StbM
Other
BSW
Modules
.(SRS_BSW_00429)
The according services are described in AUTOSAR OS.
- AUTOSAR confidential -
48 of 86
- AUTOSAR confidential -
Changing the microcontroller and or compiler shall only affect a limited number of
files. Thus in AUTOSAR all integer type definitions of target and compiler specific
scope are placed and organized in a single file, the Platform Specific type header
(Platform_Types.h).
See also the Specification of Platform Types [13].
The usage of native C-data types (char, int, short, long) is in general not
portable and reusable throughout different platforms.
[SWS_BSW_00120] Do not use native C data types
The BSW Module shall not use native C data types. AUTOSAR Integer Data Types
shall be used instead. These types are defined in the Platform Specific Types Header
(Platform_Types.h)(SRS_BSW_00304, SRS_BSW_00353)
The Platform Specific Types Header (Platform_Types.h) is included through the
AUTOSAR Standard Types Header (Std_Types.h). See SWS_BSW_00024.
The following AUTOSAR Integer Data Types are available:
1. Fixed size guaranteed:
Data type
uint8
uint16
uint32
sint8
sint16
sint32
Representation
8 bit
16 bit
32 bit
7 bit + 1 bit sign
15 bit + 1 bit sign
31 bit + 1 bit sign
2. Minimum size guaranteed, best type is chosen for specific platform (only
allowed for module internal use, not for API parameters)
Data type
uint8_least
Representation
At least 8 bit
49 of 86
- AUTOSAR confidential -
At least 16 bit
At least 32 bit
At least 7 bit + 1 bit sign
At least 15 bit + 1 bit sign
At least 31 bit + 1 bit sign
The data types with suffix _least can be chosen if optimal performance is required
(e.g. for loop counters).
Example: Both uint8_least and uint32_least could be compiled as 32 bit on a
32 bit platform.
[SWS_BSW_00122] Redefinition of integer data types is restricted
The implementation shall not define own types on top of the AUTOSAR Integer Data
Types if this is not necessary and the data size is known at specification
time.(SRS_BSW_00355, SRS_BSW_00353)
Example 1:
The data size of parameter DeviceIndex is known at specification time (8 bit).
Hence the following is not allowed:
typedef uint8 DeviceIndexType /* wrong! */
...
static DeviceIndexType DeviceIndex
Use the following instead:
static uint8 DeviceIndex
Example 2:
The parameter DeviceAddress is platform dependent (could by 16..32 bit). It is
required for runtime efficiency, that the best type is chosen for a specific platform.
On 16 bit platforms:
typedef uint16 DeviceAddressType
On 32 bit platforms:
typedef uint32 DeviceAddressType
7.1.19.2.2 Boolean type
For simple logical values, for their checks and for API return values the AUTOSAR
type boolean, defined in Platform_Types.h, can be used. For usage with this
type, the following values are also defined:
FALSE = 0
TRUE = 1
[SWS_BSW_00142] Allowed operations with boolean variables
50 of 86
- AUTOSAR confidential -
boolean Eep_21_LDExt_Busy(void) {}
if (Eep_21_LDExt_Busy() == FALSE) {}
- AUTOSAR confidential -
52 of 86
- AUTOSAR confidential -
- AUTOSAR confidential -
/* NM_DEV_ERROR_DETECT
/*
To activate (STD_ON) or deactivate (STD_OFF) detection of
/*
development errors.
/*
Satisfies BSW_SWS_042.
#define NM_DEV_ERROR_DETECT
STD_ON
*/
*/
/* File: Nm.c
/* Network Manager implementation
#include Nm_Cfg.h
#endif /* NM_DEV_ERROR_DETECT */
*/
*/
*/
*/
*/
*/
Note that for switching this configuration through compiler switches the standard
types STD_ON and STD_OFF shall be used [SWS_BSW_00029].
The configuration parameter for detection of Development errors is listed in the
Chapter 10 of the respective BSW Module specification.
If the detection of Development errors is active, then API parameter checking is
enabled [SWS_BSW_00049]. The detailed description of the detected errors can be
found in chapter 7 and chapter 8 of the according BSW Module specification.
7.2.2.4 Reporting
If the detection of Development errors is configured [see SWS_BSW_00042] than
any detected error shall be reported:
[SWS_BSW_00045] Report detected Development errors to Det
The BSW Module shall report detected Development errors to the Default error
tracer (Det) using the service Det_ReportError.(SRS_BSW_00338)
Note that the reported development error values must be of type uint8, in order to
comply with the signature of Det_ReportError.
54 of 86
- AUTOSAR confidential -
- AUTOSAR confidential -
- AUTOSAR confidential -
57 of 86
- AUTOSAR confidential -
- AUTOSAR confidential -
7.2.5.5 Reporting
Event IDs of (extended) production errors are provided as symbolic name values by
Dem through Dem.h.
The EventId symbols of production errors are the short name of the SericeNeeds
of the BSW module (through the Dem ECUC) prefixed with
DemConf_DemEventParameter_
See ecuc_sws_2108 (AUTOSAR_TPS_ECUConfiguration.pdf 3.4.5.2
Representation of Symbolic Names).
- AUTOSAR confidential -
60 of 86
- AUTOSAR confidential -
BSW Module
A
Starts
Timer
Dem
ReportError
Dem
LibraryTimer
.
Dem
Main Function
0
20
40
60
80
100
P: DEM_PASSED
F: DEM_FAILED
The timer function shall be provided (in this example) in the pre-de-bouncing library
of the Diagnostic event manager.
7.2.6 Specific topics
7.2.6.1 Implementation specific errors
[SWS_BSW_00073] Implementation specific errors
If the BSW Module implementation defines additional errors, then these shall be
described in the BSW module documentation. The error classification table shall be
extended by implementation specific errors. (SRS_BSW_00337)
7.2.6.2 Handling of Symbolic Name Values
[SWS_BSW_00200] Symbolic Name values
Symbolic Name Values shall be imported through the header of the BSW module
that provides the value. ()
Symbolic Name Values in the implementation are using the short name of the
Container in the ECUC prefixed with <ModuleAbbreviation>Conf_ (of the
providing module) and the short name of the EcucParamConfContainerDef
container [TPS_ECUC_02108].
Example: For production errors, which are provided by the Dem, and are configured
as DemEventParameter within the ECUC of the Dem, the #define provided through
Dem.h is DemConf_DemEventParameter_<short-name>.
The following two code integration examples show the utilization of a production code
event ID (14) and its symbol
(DemConf_DemEventParameter_EEP_21_LDEXT_E_COM_FAILURE) for the
module Eep:
1. Example for source code integration:
/* File: Dem.h */
- AUTOSAR confidential -
/* File: Eep_21_LDExt.c */
#include Dem.h
Dem_ReportErrorStatus(DemConf_DemEventParameter_EEP_21_LDE
XT_E_COM_
FAILURE, DEM_EVENT_STATUS_PREFAILED);
/* File: Eep_21_LDExt_cfg.h
This file needs to be compiled and linked with the
object code delivery: */
/* File: Eep_21_LDExt.c
This file is delivered as object file. */
#include Dem.h
#include Eep_21_LDExt_cfg.h
Dem_ReportErrorStatus( Eep_21_LDExt_E_Com_Failure,
DEM_EVENT_STATUS_PREFAILED);
62 of 86
- AUTOSAR confidential -
API specification
Name of type
Allowed entries: enumeration, structure, reference to (pointer) a type, allowed
AUTOSAR integer data types (SRS_BSW_00304)
Range of legal
Meanings, units, etc..
values
Informal description of the use of this type.
Predefined names of this type.
()
To avoid double and inconsistent definition of data types in both BSW Module and
Software Components, common data types are defined in RTE Types header files.
See also SWS_BSW_00023.
[SWS_BSW_00147] Definition of data types used in Standard Interfaces and
AUTOSAR Interfaces
Data types used in Standard Interface and AUTOSAR Interface shall only be defined
in RTE Types header file (Rte_Type.h).(SRS_BSW_00447)
63 of 86
- AUTOSAR confidential -
Reentrancy:
Parameters (in):
Parameter 1
Description of parameter 1
Parameter 2
Description of parameter 2
Parameters
Parameter 3
(inout):
Parameters (out): Parameter 4
Description of parameter 3
Return value:
Description:
Description of parameter 4
Range of legal values Description and the circumstances under which that value
is returned, and the values of configuration attributes in
which the value can be returned
Short description of the API call
64 of 86
- AUTOSAR confidential -
65 of 86
- AUTOSAR confidential -
66 of 86
- AUTOSAR confidential -
- AUTOSAR confidential -
- AUTOSAR confidential -
- AUTOSAR confidential -
Note that if source code for both caller and callee of Get Version Information service
are available, the Implementation source of the BSW Module may realize
<Mip>_GetVersionInfo as a macro, defined in its Implementation header file.
Note: If <Mip>_GetVersionInfo is provided as a macro and a function is required,
the provided macro could additionally be wrapped by a function definition.
- AUTOSAR confidential -
API configuration:
The configuration of Published information (SWS_BSW_00059) of this BSW
Module affects the API return values.
Please refer to the according BSW Module specification for further implementation
details.
71 of 86
- AUTOSAR confidential -
72 of 86
- AUTOSAR confidential -
- AUTOSAR confidential -
74 of 86
- AUTOSAR confidential -
Sequence diagrams
75 of 86
- AUTOSAR confidential -
10 Configuration specification
This chapter complements chapter 10 of according BSW Module specification.
10.1.2 Variants
Variants describe sets of configuration parameters. E.g., Variant 1: only pre-compile
time configuration parameters; Variant 2: mix of pre-compile- and post build timeconfiguration parameters. In one variant, a parameter can only be of one
configuration class.
The possible configuration variants of a BSW Module are described in its
specification. Each Variant has a unique name, which could be referenced to in later
chapters. The maximum number of allowed variants is three. Note that each variant
has its own requirement ID in the BSW Module specification.
76 of 86
- AUTOSAR confidential -
General section:
SWS Item
Container Name
Description
Requirement ID
Identifies the container by a name, e.g.,
CanDriverConfiguration
Explains the intention and the content of the container .
Configuration Parameters
10.1.4.2
Name
Description
Type
Unit
Range
Post-Build Variant
Multiplicity
77 of 86
- AUTOSAR confidential -
Multiplicity
Configuration Class
Value Configuration
Class
Scope
Dependency
10.1.4.3
Included Containers
Container Name
Reference to a valid
(sub)container by its
name, e.g. CanController
Multiplicity
Specifies the
possible number
of instances of
the referenced
container and its
contained
configuration
parameters.
Possible values:
<multiplicity>
<min_multiplicity..
max_multiplicity>
Scope / Dependency
Describes the scope of the referenced subcontainer if known or mark it as - -.
The scope describes the impact of the
configuration parameter: Does the setting affect
only one instance of the module (instance), all
instances of this module (module), the ECU or a
network.
Possible values of scope :
instance, module, ECU, network>
Describes the dependencies with respect to the
scope if known or mark it as - -.
78 of 86
- AUTOSAR confidential -
Description
The configuration parameter shall be of configuration class Pre-compile time.
The configuration parameter shall never be of configuration class Pre-compile time.
Description
The configuration parameter shall be of configuration class Link time.
The configuration parameter shall never be of configuration class Link time.
Description
The configuration parameter shall be of configuration class Post Build and no specific
implementation is required.
The configuration parameter shall never be of configuration class Post Build.
EepNormalWriteBlockSize
{EEP_NORMAL_WRITE_BLOCK_SIZE}
Number of bytes written within one job processing cycle in
normal mode. Implementation Type: Eep_LengthType.
- AUTOSAR confidential -
*/
*/
#define CANTP_USE_NORMAL_ADDRESSING
#define CANTP_USE_NORMAL_FIXED_ADDRESSING
#define CANTP_USE_EXTENDED_ADDRESSING
/* File: CanTp.c
STD_OFF
STD_OFF
STD_ON
*/
80 of 86
- AUTOSAR confidential -
#endif
- AUTOSAR confidential -
};
/* File: ComM_PBcfg.c
#include <ComM.h>
};
*/
*/
*/
/* File: ComM.h
*/
#include <ComM_PBCfg.h>
/* Forward declaration:
*/
typedef struct ComM_ConfigType_Tag ComM_ConfigType;
extern void ComM_Init(const ComM_ConfigType *
ComMConfigPtr);
If the Post-build configuration is placed at a fixed memory location and if there are no
BSW modules with a configuration using variations points which shall be resolved at
post-build time (see section 10.3) the references can be resolved as constant
pointers. In that case a fixed pointer will be passed to the BSW modules initialization
function. Any indirections shall be kept as simple as possible.
All Post-build time configuration parameters are defined in the Post-build time
configuration source (SWS_BSW_00015) and declared in the Post-build time
configuration header (SWS_BSW_00035).
82 of 86
- AUTOSAR confidential -
};
/* File: ComM_PBcfg.c
*/
#include <ComM.h>
};
/* post-build time configurable data for predefined
variant VariantB
*/
const ComM_ConfigType ComM_Config_VariantB =
{
};
/* File: ComM.h
*/
83 of 86
- AUTOSAR confidential -
/* Forward declaration:
*/
typedef struct ComM_ConfigType_Tag ComM_ConfigType;
extern void ComM_Init(const ComM_ConfigType *
ComMConfigPtr);
84 of 86
- AUTOSAR confidential -
Type / Range
Information element description
#define/uint16 Vendor ID (vendorId) of the
dedicated implementation of this
module according to the AUTOSAR
vendor list. The ID is the same as in
HIS Software Supplier Identifications
[20].
<MIP>_MODULE_ID
#define/uint16 Module ID of this module, as defined
in the BSW Module List [1].
<MIP>_AR_RELEASE_MAJOR_VERSION
#define/uint8 Major version number of AUTOSAR
release on which the appropriate
implementation is based on.
<MIP>_AR_RELEASE_MINOR_VERSION
#define/uint8 Minor version number of AUTOSAR
release on which the appropriate
implementation is based on.
<MIP>_AR_RELEASE_REVISION_VERSION #define/uint8 Revision version number of
AUTOSAR release on which the
appropriate implementation is based
on.
<MIP>_SW_MAJOR_VERSION
#define/uint8 Major version number of the vendor
specific implementation of the
module. The numbering is vendor
specific.
<MIP>_SW_MINOR_VERSION
#define/uint8 Minor version number of the vendor
specific implementation of the
module. The numbering is vendor
specific.
<MIP>_SW_PATCH_VERSION
#define/uint8 Patch level version number of the
vendor specific implementation of
the module. The numbering is
vendor specific.
The Published information is configured in the BSW Module Description [4] for this
module.(SRS_BSW_00402,
SRS_BSW_00003,
SRS_BSW_00379,
SRS_BSW_00374, SRS_BSW_00318, SRS_BSW_00407)
/* Published information
85 of 86
*/
*/
Document ID 578: AUTOSAR_SWS_BSWGeneral
- AUTOSAR confidential -
CANIF_MODULE_ID_CFG
0x003Cu
CANIF_VENDOR_ID_CFG
0x002Bu
CANIF_AR_RELEASE_MAJOR_VERSION_CFG
0x04u
CANIF_AR_RELEASE_MINOR_VERSION_CFG
0x00u
CANIF_AR_RELEASE_PATCH_VERSION_CFG
0x03u
CANIF_SW_MAJOR_VERSION_CFG
0x01u
CANIF_SW_MINOR_VERSION_CFG
0x02u
CANIF_SW_PATCH_VERSION_CFG
0x03u
86 of 86
- AUTOSAR confidential -