Lauterbach: TRACE32¶
Vendor information
Vendor |
Web page |
Product name |
Version |
|---|---|---|---|
Lauterbach GmbH |
TRACE32-PowerView |
R.2015.09, tested up to R.2025.02 |
Categories
MDL 🛈 |
APL 🛈 |
BAN 🛈 |
BMA 🛈 |
SVC 🛈 |
DGN 🛈 |
FIU 🛈 |
EES 🛈 |
FCT 🛈 |
DBG 🛈 |
IMG 🛈 |
AUDIO 🛈 |
ENVSIM 🛈 |
ENVCOM 🛈 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
✓ |
Platform
Operating system |
Support |
|---|---|
Windows |
✓ |
Linux |
Ports¶
Specifics¶
Prerequisites¶
To use the debugger in ecu.test, it is necessary that you copy the file t32api64.dll in one of the directories where the PATH variable is set.
In addition, the following entry must be included in the TRACE32 configuration file (config.t32, port number can differ but must match with the entry in the testbench configuration):
RCL=NETASSIST
PORT=20000
PACKLEN=1024
Configuration¶
During the start of TRACE32 the specified “startup script” is executed (if not empty). If TRACE32 is connected via Tool Server, the ELF and the HEX files are transferred to the respective computer (to the directory which is specified in the ToolLibs.ini under TempDir). The ELF file(s) are loaded after the start with the command “Data.LOAD.Elf” and the given “ELF load parameters”.
Flashing the HEX file is not done automatically. Reason is that it requires target specific commands
and parameters. Instead, the HEX file can be flashed via the Port Job “Cmd” during package
execution. The necessary commands and parameters have to be chosen by the person who implements the
package. The path to the HEX file can be retrieved via the Internal API from the currently loaded
test configuration (e.g., api.CurrentTestConfiguration.Ecus.Item(0).GetDebugHex()).
Multi core debugging¶
Different configuration approaches are necessary if a target with multiple cores is used. It is distinguished between symmetric mulit processing (SMP) and asymmetric multi processing (AMP).
SMP
All cores are controlled by a single TRACE32 instance. In ecu.test, a single DEBUGGER port is used. Operations like BREAK, GO etc. concern all cores at once. For certain operations that should only concern a single core, it is necessary to call the port job CoreSelect beforehand.
AMP
For each core a separate TRACE32 instance is used. For each instance a separate DEBUGGER port must be created in the test bench configuration. A separate T32 configuration file (or a parameterized one) is necessary in order for each instance to be assigned a different UDP port number. In the test configuration, each DEBUGGER port should be assigned its own ECU access with ELF file.
The port property “Startup script (*.cmm)” may be omitted if it is not necessary.
Access to variables¶
For reading and writing ecu.test executes the commands Var <Expression> and Var.Assign <Expression> = <Value> in TRACE32.
The variable expression <Expression> depends on the variable scope:
Global variables:
/<ElfName>\Global\<VariableName>
Module-level static variables:
/<ElfName>\<ModuleName>\<VariableName>
Function-level static variables:
/<ElfName>\<ModuleName>\<FunctionName>\<VariableName>
Where <ElfName> is the file name of the ELF file without extension.
<ModuleName> the file name of the C file, where the variable is defined (without path or
extension).
The <VariableName> may contain . or -> when accessing structure variables.
In case <VariableName> is a pointer type, then <Expression> is prefixed with the required
dereferencing operators. E.g.:
Var **/ElfName\Global\ppIntValue
All information about data types and variable scopes are extracted from the DWARF section of the ELF files that are provided in the test configuration.
Info
Writing and reading operations on big vectors are split into multiple commands by ecu.test if the resulting single command is longer than 2048 or 4096 characters. This is a limition of TRACE32. To avoid inconsistent values these operations should be performed while the program execution is stopped.
Since this behaviour is not implemented for matrices you can only access sub elements of big matrices.
Properties 🛈¶
Name |
Available if |
Default value |
Valid values |
Type |
Description |
|---|---|---|---|---|---|
Program path |
‘C:\TRACE32\bin\t32mtc.exe’ |
string |
Path to TRACE32 executable (absolute or relative to path of host node) |
||
Timeout for tool call ❲in sec.❳ |
‘600’ |
string |
Timeout after which a tool call is aborted. |