Derive ECU-C From ECU Extract
Deriving the ECU Configuration from an ECU Extract into your DaVinci Project is a key step in the workflow. This process ensures that your project includes all required components by integrating external resources, configurations, and data.
This section provides clear, step-by-step instructions to help you efficiently derive the ECU-C from the ECU Extract and incorporate it into your DaVinci Project.
Preparing Input Data to Derive ECU-C
To derive the ECU-C, an ECU Extract is required. This Extract must be provided in the ARXML file format.
Evaluated Variant Set
In a variant use case, an ECU Extract with the appropriate Variation Points must be provided. Additionally, the corresponding Evaluated Variant Set Definition is required as input to successfully derive the ECU-C.
For details on how to set up a variant DaVinci Project, see: Variant DaVinci Project.
Multiple Files
All provided files can be split into multiple files, as long as they comply with AUTOSAR split rules.
If different file formats (e.g. .dbc files), other AUTOSAR description formats (e.g. System Description), or multiple ECU Extracts are provided as input, these must be preprocessed by the Ecu Extract Producer.
-
For detailed guidance, see Ecu Extract Producer.
-
For Legacy Diagnostic Data files, see Diagnostic Module Import.
Import ECU Extract in Your DaVinci Project
The DaVinci Configurator Classic works on ECU Configuration therefore the ECU Extract must be derived to an ECU Configuration. The BSW context is used to derive the specific modules and also apply the pre configurations to them.
-
Navigate into DaVinci Configurator Classic installation and use the 'derive-ecuc' command. As required options the path to the project file, your BSW package and the ECU Extract shall be provided. For the variant use case also the EvaluatedVariantSet must be added.
$ dvcfg-b project derive-ecuc -p="/Path/To/Your/ProjectFile" -b="/Path/To/Your/BSW" <ecu-extract>,<optional-evs> -
After the command execution ends up successfully the ECUC-C is created. The ./Output/Config/EcuConfig directory of your DaVinci Project now contains all created files for the derived ECU-C part. Within ./Output/Config/EcuExtract an EcuExtract.arxml is created that will be used across the DaVinci Project.
-
For applying all changes and fixing model inconsistency after deriving an ECU extract it is recommended to update your project. Execute the 'project update' command for your created and enriched project.
$ dvcfg-b project update -p="/Path/To/Your/ProjectFile" -b="/Path/To/Your/BSW" -acrThe ECU configuration will now be updated, automatic correction of unresolved or inconsistent references will be resolved, RTE configuration changes and solving actions are executed.
Set Input File Processing Settings
To successfully derive the ECU-C, certain IFP settings might be needed to be configured appropriately, depending on the BSW package used for the ECU project. This is the first step, before starting the actual derivation process.
LdCom and ComM Derivation Settings
-
LdCom Derivation Version: This setting has to be specified if the LdCom module is meant to be derived. It specifies the version the derivation of the LdCom shall be made after.
You may choose between the following values depending on how the PDUs are designed:
-
AR_R19_11See Efficient COM for large data to learn more about how a PDU meant to be handled by LdCom should like. In case of AR_R19_11, add the following entry to the Ifp.json file:{ "derivation": { "ldCom": { "derivationVersion": "AR_R19_11" } } } -
AR_4_4See Efficient COM for large data to learn more about how a PDU meant to be handled by LdCom should like. In case of AR_4_4, add the following entry to the Ifp.json file:{ "derivation": { "ldCom": { "derivationVersion": "AR_4_4" } } }
|
If no derivation version is specified, the LdCom module won’t be derived. Instead, all potential LdCom PDUs will be routed to the Com module. This may have an impact on the overall BSW performance. |
-
ComMPncID Counting Mode: This setting specifies how the ID of the Partial Network Cluster (PNC) is calculated during derivation of the related modules.
You may choose between the following values:
-
NM_MESSAGE: In this mode, the PNC ID is calculated based on the starting offset of the PNC Vector. See Partial Networking AUTOSAR TPS System Template to learn more about how the bit positions of PNC Identifiers are calculated. Set the value in the Ifp.json file as follows:{ "derivation": { "comM": { "pncIdCountingMode": "NM_MESSAGE" } } } -
PNC_VECTOR: In this mode, the PNC ID is simply taken out of the Partial Network Cluster Identifier as it is. See Partial Networking AUTOSAR TPS System Template to learn more about how the bit positions of PNC Identifiers are calculated in AUTOSAR 4.0. Set the value in the Ifp.json file as follows:{ "derivation": { "comM": { "pncIdCountingMode": "PNC_VECTOR" } } }
-
Communication Controller Mappings If multiple driver modules for a specific Bus type are available in the BSW package all the CommincationCluster of the EcuExtract need to be mapped to one specific driver module. This can be set with the ComControllerMappings entry in the Ifp.json file as follows:
{ "comControllerMappings": [ { "clusterPath": "/Cluster/FlexRay", "moduleDefinitionPath": "/MICROSAR/Fr_CanoeemuEray/Fr" }, { "clusterPath": "/Cluster/CanCluster", "moduleDefinitionPath": "/MICROSAR/Can_30_Core/Can" } ] } -
Module Definition Mappings Some of the modules are configured to have a multiplicity of 1..1 defines it as a Single Instance Module. If multiple defintions of a specific module are available in the BSW pacakge a mapping to one definition has to be set. Set the mappings in the Ifp.json file as follows:
{ "moduleDefinitionMappings": [ { "moduleConfigName": "TcpIp", "moduleDefinitionPath": "/MICROSAR/TcpIp" } ] }