VECTOR-Logo

VECTOR VX1000 DaVinci Integration

VECTOR-VX1000-DaVinci-Integration-Product

Specifications

  • Product Name: VX1000 DaVinci Integration
  • Version: 1.0
  • Date: 2025-07-04
  • Author: Dominik Gunreben

Overview VX1000 DaVinci Integration

The VX1000 provides powerful measurement and calibration access to the microcontroller via debug interfaces. For maximum flexibility and optimal measurement results, the VX1000 Application Driver must be integrated into the ECU software. The VX1000 Application Driver is a Complex Device Driver in the AUTOSAR stack. AUTOSAR modules are typically configured using dedicated AUTOSAR configuration tools such as DaVinci Configurator. This application note shall provide the essential information for integrating the VX1000 Application Driver into the ECU Software with the help of DaVinci.

The VX1000 Application Driver configuration with the DaVinci Configurator is optional and allows an easy-to-use configuration of the Application Driver in an AUTOSAR project. If DaVinci is not used within the project, the C4VX1000 Application Driver can easily be configured by directly modifying its _cfg.h files. For the latter, please see the Getting Started Application Notes that are delivered with the VX1000 Application Driver.

Installation of the VX1000 Application Driver

2.1 Getting the VX1000 Application Driver
The VX1000 Application Driver can be downloaded via https://www.vector.com/VX1000If-VX1000AppDriver.
Please note the Product-Specific Special Terms for VX1000If and the VX1000 AppDriver, clearly highlighted on the website or within the driver package.

Installation in the Software Integration Package

After installation, the installation folder contains two folders.s

VECTOR-VX1000-DaVinci-Integration-fig- (1)

The folder “MSR_Components” is structured to allow seamless copying into the Software Integration Package (SIP) without requiring modifications.

  • Ensure that you Davinci software is closed.
  • Copy $Install-Directory/MSR_Components/VX1000 to $SIPLocation/Components/VX1000
  • Open DaVinci
  • Open the project settingsVECTOR-VX1000-DaVinci-Integration-fig- (2)
  • Select “Modules ”and press AddVECTOR-VX1000-DaVinci-Integration-fig- (3)
  • Use “Select from BSW package”VECTOR-VX1000-DaVinci-Integration-fig- (4)
  • Select the VX1000 Module and press “Finish”VECTOR-VX1000-DaVinci-Integration-fig- (5)
  • Switch to the Basic Editor.VECTOR-VX1000-DaVinci-Integration-fig- (6)
  • Now, the VX1000 Module can be configured like other AUTOSAR modulesVECTOR-VX1000-DaVinci-Integration-fig- (7)

Modifications of the build process

To add the VX1000 Application Driver to the build process, the file $(Project)\Appl\Makefile.project.part.Definitions
must be modified. Add these lines at the end of the file

VECTOR-VX1000-DaVinci-Integration-fig- (8)

# additional includes for VX1000 driver
ADDITIONAL_INCLUDES += $(ROOT)\Components\VX1000\Implementation ADDITIONAL_INCLUDES += $(ROOT)\Components\VX1000If\Implementation
# vx1000 driver source files
APP_SOURCE_LST += $(ROOT)\Components\VX1000\Implementation\VX1000.c APP_SOURCE_LST += $(ROOT)\Components\VX1000If\Implementation\VX1000If.c

VX1000 Application Driver configuration

The module configuration contains several configuration options. A functional description is provided for each parameter.

VECTOR-VX1000-DaVinci-Integration-fig- (9)

The most important steps are described in the later sections of this Application Note. For advanced features, please refer to the corresponding Application Notes or Getting Started Manuals.

Additional Include Files
If you require additional header files for your implementation, you can add these easily.

VECTOR-VX1000-DaVinci-Integration-fig- (10)Additional Code includes
If some additional code blocks are required for the configuration, these can be added within “Additional Configuration Switches”. This block will be copied without modification to the generated file.

VECTOR-VX1000-DaVinci-Integration-fig- (11)

Target controller configuration
The VX1000 supports many different target controller families and architectures. The correct target can be configured through
VX1000/VX1000Config/VX1000TargetConfiguration[VX1000_TARGET]

VECTOR-VX1000-DaVinci-Integration-fig- (12)Timer configuration
Each time a measurement event is triggered, the VX1000 Application Driver captures a timestamp. The timestamp source must be explicitly configured:

VECTOR-VX1000-DaVinci-Integration-fig- (13)

Time Base + Ticks per Time Base
For the tool to correctly interpret the timestamps, the timestamp resolution must be declared. For this, the characteristics of the timer counter must be specified as a time base in decades of nanoseconds and the ticks per time base. The latter is the counter increment within the time base period.

  • Example:
    • Time Base: 1000
    • Ticks per Time Base: 21
    • Specifies a counter incrementing at a rate of 21 MHz (21 ticks per 1000 ns)
  • Timer Address:
    • The address of the counter register of the used timer.
  • Timer Callback:
    • This callback is executed whenever the VX1000 AppDriver needs to capture a timestamp. In most cases, the default configuration is sufficient and does not require modification.
  • Timer Counts Up:
    • Specifies whether the counter is an up-counter or a down-counter. In most cases, up-counters are used.
  • Timer Size [Bit]:
    • Size in bytes of the timer counter, which is used for timestamping. Supported timer counter widths are 16-bit, 24-bit or 32-bit. In most cases, 32-bit counters are used.

Startup configuration
For the correct startup configuration, the Mode Management Initialisation must be modified. Right-click on “Driver Init List 1” and select “Create Code Item” for the initialisation functions in the next sections.

VECTOR-VX1000-DaVinci-Integration-fig- (14)Startup configuration VX1000If_InitAsyncStart
/Initialisation Sequences/Pre-Os Driver Initialisation/Driver Init List 1/EcuMDriverInitItems /VX1000If_InitAsyncStart
Select “Create Code Item” for the function VX1000If_InitAsyncStart()VECTOR-VX1000-DaVinci-Integration-fig- (16)Name: VX1000If_InitAsyncStart
Header: VX1000If.h
Code: VX1000If_InitAsyncStart();
Move the code after the MCU_Init init steps.VECTOR-VX1000-DaVinci-Integration-fig- (17)Memory allocation
The VX1000 communicates with the VX1000 Application Driver via a shared memory structure. Adjusting the address of this communication structure in the VX1000 configuration is error-prone when switching between different ECU Software Versions. By pinning the structure to a fixed address, the workflow becomes both simpler and faster. To do so, the vLinkGen module can be used to put the variable into a linker section at a fixed address.

Configuration of vLinkGen
LinkGenMemoryRegion
Create a VX1000 container in the appropriate vLinkGenMemoryRegions, like the LMU0 memory. The memory must be uncached. Its required size depends on the expected extent of the DAQ configurations. The parameter /VX1000/VX1000Config/VX1000MemoryConfiguration/VX1000OldaMemory/VX1000_OLDA_MEMORY_SIZE should be taken into consideration.
Treepath: /vLinkGen/vLinkGenMemLayout/vLinkGenMemoryRegions

VECTOR-VX1000-DaVinci-Integration-fig- (18)

Create vLinkGenLogicalVarGroups Container VX1000_VA.R
Create a VX1000_VAR container in vLinkGenLogicalVarGroups container with reference “Default Memory Region Block” to the container from step 1. Treepath /vLinkGen/vLinkGenMemLayout/vLinkGenLogicalVarGroups/VX1000_VARCreate

VECTOR-VX1000-DaVinci-Integration-fig- (19)Create vLinkGenLinkerVarSection
For assigning the VX1000 Variables to a memory section, vLinkGenLinkerVarSections must be created:
/vLinkGen/vLinkGenMemLayout/vLinkGenLinkerSections/vLinkGenLinkerVarSections
Right click on vLinkGenLinkerVarSections and press “Create vLinkGenLinkerVarSection Container” for each of the following Linker Sections

VECTOR-VX1000-DaVinci-Integration-fig- (20)

Create vLinkGenLinkerVarSection VX1000_PRM_VAR_ALIGN_8_NOCACHE
Create a new vLinkGenLinkerVarSection with name VX1000_PRM_VAR_ALIGN_8_NOCACHE. Select VX1000_PRM_VAR_ALIGN_8_NOCACHE as Name and Short Name
/vLinkGen/vLinkGenMemLayout/vLinkGenLinkerSections/vLinkGenLinkerVarSections/
VX1000_PRM_VAR_ALIGN_8_NOCACHEVECTOR-VX1000-DaVinci-Integration-fig- (21)

Create vLinkGenLinkerVarSection VX1000_VAR_NOCACHE_ALIGN_4
Create a vLinkGenLinkerVarSection VX1000_VAR_NOCACHE_ALIGN_4.
/vLinkGen/vLinkGenMemLayout/vLinkGenLinkerSections/vLinkGenLinkerVarSections/ VX1000_VAR_NOCACHE_ALIGN_4
Create a new vLinkGenLinkerVarSection with name VX1000_VAR_NOCACHE_ALIGN_4. Select VX1000_VAR_NOCACHE_ALIGN_4 as name and Short Name.

VECTOR-VX1000-DaVinci-Integration-fig- (22)

Create vLinkGenVarSectionGroup Container VX1000
Create a vLinkGenVarSectionGroup Container
/vLinkGen/vLinkGenMemLayout/vLinkGenLogicalVarGroups/VX1000_VAR/vLinkGenVarSectionGroups /VX1000

VECTOR-VX1000-DaVinci-Integration-fig- (23)Add the Linker Section Groups
VX1000_PRM_VAR_ALIGN_8_NOCACHE, VX1000_VAR_NOCACHE_ALIGN_4,

VECTOR-VX1000-DaVinci-Integration-fig- (24)VECTOR-VX1000-DaVinci-Integration-fig- (25)After you have generated your project …
The compiler/link should look like this (.Appl\Source  vLinkGen_Template.lsl)

VECTOR-VX1000-DaVinci-Integration-fig- (26)

After compiling the application with b.bat in the .\Appl directory, the gVX1000 structure should be put in the memory region defined in 5.6.1.1 Overview VX1000 DaVinci Integration. You can double-check this in the map file.

VECTOR-VX1000-DaVinci-Integration-fig- (32) DAQ Event configuration
The VX1000 provides the possibility to configure DAQ events and to set various attributes of these events. A detailed configuration is only needed for special features like Multibuffer OLDA or In-Place OLDA. For plain OLDA or Data Trace-based measurement, nothing must be configured, and this chapter can be skipped.

VECTOR-VX1000-DaVinci-Integration-fig- (33)

  • Configuration of VX1000 DAQ Events: This is the measurement type and how the event is instrumented within the ECU software.
    For In-Place OLDA Events, besides triggering the event, the VX1000If_EventProcessingBarrier must be called in a defined sequence. To indicate this special type of code instrumentation, such events need to be configured as VX1000_EVENT_ALSO_USES_BARRIER.
    Events that have a very short cycle time < 1ms should be marked as VX1000_EVENT_MBUF_ONLY_TRIGGER.
    This annotation given by the ECU software is just a hint for the VX1000. In the VX1000, there are also configuration options to override these settings.
  • Event Channel Number:
    This is the XCP DAQ event channel number that must be used by the measurement tool for this event channel. For <auto>, the numbers are calculated on demand and can be accessed via VX1000_EVTCH_$(Eventname)
    (with Eventname in uppercase letters).
  • Event Channel Priority:
    The EVENT_CHANNEL_PRIORITY defines the processing order of this event channel by the VX1000 when multiple channels are triggered at the same time.
  • Event Channel Time Cycle [us]:
    The EVENT_CHANNEL_TIME_CYCLE indicates the period for cyclic events, specifying how frequently this event channel is triggered. This is useful information for the VX1000 and for the measurement tool. A non-cyclic task is indicated by 0.
  • Event Channel Type:
    Describes the type of event channel. DAQ is for Synchronous Data Acquisition and is used for measuring ECU data. STIM is for Synchronous Data Stimulation and is used for sending data to the ECU, like for functional bypassing use cases. DAQ_STIM events can be used for either DAQ or STIM.

Feature configuration

Short cycle times
Projects that must acquire data at very short cycle times of <1ms should ensure that Multibuffer OLDA is activated. Als,o ensure that the fast event channels are correctly configured (see 5.7 DAQ Event configuration).

VECTOR-VX1000-DaVinci-Integration-fig- (28)Minimum system
If running on a device with very limited hardware resources, the VX1000 Application Driver can be configured to have a minimal RAM and runtime footprint. Start with an empty configuration, then …

  • Check: Deactivate In-Place OLDA
  • Check: Deactivate Multibuffer OLDA
  • Check: Disable Data Trace Support
  • Uncheck: Enable DAQ Status API
  • Check: Enable OLDA
  • Uncheck: Enable Radar MeasurementVECTOR-VX1000-DaVinci-Integration-fig- (29)

Disable VX1000 Application Driver

The VX1000 Application Driver provides configuration switches to remove nearly the complete driver from
code. Afterwards, the VX1000 measurement features are not available anymore. The driver can be easily reactivated later with all settings preserved.
Parameter: /ActiveEcuC/VX1000/VX1000General[VX1000_DISABLE_INSTRUMENTATION]

VECTOR-VX1000-DaVinci-Integration-fig- (30)

VX1000If generation

Please make sure to carefully read the VX1000If Technical Documentation and ensure that VX1000If_IsVX1000DriverAccessEnabled is correctly defined.

Additional Resources

TechnicalReference_VX1000.pdf: Technical Reference for the VX1000 Application Driver
TechnicalReference_VX1000If.pdf: Technical Reference for the VX1000 Interface

Contacts
For a full lisofth all Vector locations and addresses worldwide, please visit http://vector.com/contact/.

Copyright © 2025 – Vector Informatik GmbH Contact Information: www.vector.com or +49-711-80 670-0

FAQs

Where can I download the VX1000 Application Driver?

The VX1000 Application Driver can be downloaded from here.

How do I add the VX1000 Application Driver to the build process?

Modify the file $(Project)ApplMakefile.project.part.defines by adding the specified lines at the end of the file.

Documents / Resources

VECTOR VX1000 DaVinci Integration [pdf] Instruction Manual
VX1000 DaVinci Integration, VX1000, DaVinci Integration, Integration

References

Leave a comment

Your email address will not be published. Required fields are marked *