Variant Handling
Variant Handling
Handling
The main activities include configuring and/or generating the BSW modules (including
the RTE) and building the executable. The BSW configuration can be done during
different steps of development.
Diagnostic ECU
BSW Module Delivered Atomic Software
ECU Extract Extract
Delivered Bundle Components
«nesting»
Integrate Software
for ECU «nesting»
Model ECU Timing
«output»
«nesting»
Build Executable
ECU Extract
1
Prepare ECU
ECU
«output»
1
BSW Module Configuration
Configuration
1..* 1 «input»
«output»
1
1
ECU Extract:
• The ECU Extract is a description in the same format as the System Configuration
Description, but with only those elements included that are relevant for the
configuration of one specific ECU. (refer next page)
Prepare ECU
Configuration
0..1
Modules. 1
chosen. «output»
0..1
«output»
Predefined Variant
«nesting» «nesting»
Configure OS
Configure Transformer
Configure RTE
Configure Com
Configure Watchdog
Manager
Configure Diagnostics
Configure NvM
«nesting»
generated. «nesting»
«nesting»
«nesting» Generate Compiler
Configuration
Generate OS
Build Executable:
0..1
0..1
«input»
0..1 0..1
«input»
1
«input»
Executable. ECU
Configuration 1
Values «input»
1 Map of the ECU
Executable
Atomic Software
Component
Implementation
• Parameter values for those configurable elements are selected before compiling
and will be effective after compilation time.
• The value of the configurable parameter is decided in earlier stage of software
development process and any changes in the parameter value calls for a re-
compilation.
• The contents of pre-compile time parameters can not be changed at the
subsequent development steps like link time or post-build time.
No existence of
unbound Pre-Compile
Approaches:
Possible existence of time variation points.
unbound Pre-Compile All Pre-compile time Link-time and post-
time variation points. variation points are build variation points
bound. may still be unbound.
1 1
Source code is
«input»
Compile «output»
1
Generated 1
Source Code BSW
«output» «input»
«input» 1..*
«output» Basic
Software
Module
1 1 Object Code
1
«input» «input»
1
• Generating header 1 1
BSW Module
Compile Configured BSW
Generate BSW
Only Precompile Possible existence of Basic
Configuration Configuration Header unbound Pre-Compile Software
header is time variation points. Module Core
generated Source Code
ECU Executable
• The object code of the BSW module receives parts of its configuration from another
object code file or it is defined by linker options.
• Link time parameters are typically used when delivering object code to the
integrator.
Possible existence of
Approach:
unbound Link time
variation points.
1 «input» «output» 1
Compile Unconfigured BSW
Source Code
• Definition of configuration 1
1
variation points may
still exist.
• Separate compilation of
Header
configuration file.
BSW Module BSW Module 1..*
Compile BSW
Configuration Configuration No existence of
Configuration Data
Header File Data Object Code unbound Link time
ECU Configuration «output» variation points. Post-
Values «input»
• Linking process.
build variation points
may still be unbound.
«input»
1 1
Approach:
1 «input» «output» 1 1 «input» «output» 1
Code.
Link ECU
Code during
Post-Build
«output»
Time
1
BSW Module
Configuration
Data Source
Code
«input»
1
Possible existence of BSW Module
unbound Post-build Configuration Data
time variation points. Loadable to ECU
Memory
1
Basic Software
«input»
Module Core
Header
«input»
«output»
«output» 1 0..* 1
Compile Unconfigured BSW
Generate
ECU
«input» Basic Software ECU Executable
Executable
1 Module Object
Code
Basic Software
Module Core
Source Code
If value configuration class of parameter is Link time => follow Link approaches
If value configuration class of parameter is Post-build time => follow the next pages
for approaching
«input»
loaded to ECU.
Code
Post-Build
Time
«output»