Advanced Embedded Testing Using Lauterbach TRACE32: A Practical Guide

Table of Contents

Advanced Embedded Testing Using Lauterbach TRACE32: A Practical Guide

Embedded systems are currently more complicated, especially in areas that require high safety standards like cars, aviation, and industries where there are machines. Lauterbach GmbH, the manufacturer of TRACE32, brings decades of experience in providing high-performance debug and trace tools for embedded systems. Regular testing and debugging methods often struggle with checking early system startup, managing multiple processors working together and ensuring that performance is per standards.

Lauterbach’s TRACE32 toolset is a strong solution that gives non-intrusive debugging, full system visibility, and automated verification throughout the development process. TRACE32 consists of modular software components designed for flexibility and adaptability, allowing it to fit a wide range of embedded system projects. Lauterbach supports engineers across various stages, including hardware setup, system initialization, RTOS analysis, and safety standard testing. TRACE32 helps to improve debugging efficiency, increasing testing accuracy, and it meets the strict safety guidelines for developing a secure system. TRACE32 supports embedded innovations in the industry by enabling advanced features such as multi-architecture support, Simulink integration, and customizable debugging workflows. Users benefit from a wealth of resources, including comprehensive documentation and technical support, to overcome challenges in embedded systems debugging. TRACE32 can adapt to different project requirements and hardware architectures, ensuring it remains effective as system complexity grows. For further details on hardware setup, configuration, and licensing, please refer to the official documentation or support channels.

Overview

As embedded systems become more complex in safety-sensitive fields, making sure they are reliable, that they work on time, and meet international safety standards is especially important. Debugging tools need to go beyond checking software to see what is happening at the hardware level, track real-time performance, and validate how the system behaves in different situations.

Lauterbach TRACE32 is known for its advanced debugging and verification tools. As a comprehensive tool, TRACE32 supports setup and configuration on multiple operating systems, including Windows. To get started, users need to extract the downloaded TRACE32 zip file and install any required dependencies, especially on Windows systems. Its ability to track system execution from the very first instruction (which is the initial boot code) when the system starts helps engineers find problems early in the development. This lowers the risk of failures while also reducing issues in terms of cost. In typical development workflows, TRACE32 is often used alongside an IDE such as the Arduino IDE for compiling, uploading, and debugging embedded projects.

The document provides an overview of TRACE32’s main features, its applications across many industries, and advanced testing approaches, with special emphasis on PRACTICE scripting to enable repeatable, automated, and efficient testing. Readers are encouraged to explore the full range of TRACE32 tools and features to enhance their embedded systems development and debugging capabilities.

Setting Up the Environment

Required Hardware

Before you can unlock the full debug and trace capabilities of Lauterbach TRACE32 for your embedded systems project, it’s essential to assemble the right hardware setup. The core of your debugging environment is a Lauterbach debugger, such as the LA-3505, which serves as the primary interface between your development tools and the target system.

To ensure seamless connectivity with your specific processor architecture, you’ll need the appropriate adapter—like the LA-3253 for ARM Cortex-A/R cores. This adapter bridges the debugger and your embedded target, allowing for precise control and monitoring of system behavior.

For advanced trace capabilities, integrating a Mictor-38 adapter (such as the LA-3722) is crucial. This component connects the debugger to the target board’s trace port, enabling high-speed data capture and real-time analysis of code execution. If your project demands comprehensive debug and trace, consider adding a Lauterbach trace probe like the LA-3580, which, when paired with a parallel preprocessor tailored to your chip’s architecture, delivers robust support for capturing and analyzing trace data.

By assembling these required hardware components—debugger, architecture-specific adapter, Mictor-38 adapter, and trace probe—you create a powerful debug and trace environment. This setup empowers developers to access deep system insights, monitor execution, and accelerate the debugging process for even the most complex embedded designs.

Main Features and Capabilities of TRACE32

  1. Hardware-Level Debugging

    • TRACE32(Lauterbach Software) connects directly to the CPU using JTAG debugger, SWD, USB, or other dedicated debug interfaces, ensuring the debugger is physically connected to the target device.
    • It provides full access to registers, RAM, Flash memory, memory mapped I/O, and peripherals.
    • TRACE32 supports a wide range of chip architectures and can easily adapt to new chips, making it compatible with various microcontrollers and SoCs.
    • This is really helpful in fixing the issues with bootloaders, secure boot systems, and hardware setup.
    • TRACE32 supports various development boards, including Arduino, and provides straightforward steps to connect and configure each board for debugging.
  2. Boot Program debugging

    • The system execution can be controlled before the memory is set up or the operating system starts.
    • This makes a check of the bootloader routines, ensures that stacks are properly sized, and helps validate memory initialization.
    • Programming and flashing firmware during early system startup is supported, allowing developers to download and test new code on the target device before the OS loads.
  3. Non-Intrusive Debugging

    • This method does not require changing the code or adding compiler instructions.
    • It makes sure that the real-time performance and timing are not affected.
    • TRACE32 offers hardware based debug, providing low-level, real-time debugging and trace capabilities, which contrasts with software-only solutions and ensures accurate system analysis.
  4. Multi-Core and Multi-Threaded Debugging

    • Multiple processors (cores) can be debugged at the same time. It is also possible to see the program running on a particular core.
    • This helps in analyzing how the cores are communicating and synchronizing with each other.
    • TRACE32 allows you to analyze events and errors in real-time systems, helping to identify and resolve issues as they occur.
  5. Performance Profiling and Timing Analysis

    • Every detail is visible regarding function calls, the time spent on calling one function to another function, or the time taken for full executions.
    • This helps to identify performance issues in real-time applications.
    • TRACE32 supports measuring execution time, memory usage, and power consumption, enabling detailed performance profiling for embedded systems.
  6. Code Coverage and Safety Compliance

    • TRACE32 helps to measure how well the code is implemented at the instruction and source code levels. One can also check object code with the help of TRACE32.
    • It helps to generate reports like DO-178C, ISO 26262, and IEC 61508 standards.
    • TRACE32 improves code quality by supporting thorough testing and static analysis, and allows users to save coverage reports to a file for documentation and review.
  7. Compatibility with the Python

    • TRACE32 provides support to Python also; Python provides T32 API, which can aid the interface of Python with TRACE32.
    • Lauterbach TRACE32 debugging and trace tools can be integrated and controlled using Python through its Remote API (T32 API). This allows for automation of various debugging and testing tasks in embedded systems development.
    • With the help of Python, it is possible to configure the communication channel using T32_Config, it is possible to initialize the communication channel using T32_Init. One can connect the debug device using T32_Attach and ping the debug device using T32_Ping and disconnect from a debug device using T32_Exit.
    • GDB integration is available for debugging, especially with Arduino boards, enabling advanced debug workflows and compatibility with open-source development environments.

Industry Example

  1. Automotive

    • Lauterbach (TRACE32) assists in verifying boot debug process, and the AUTOSAR application integration within the automotive domain. It also supports safety/standard compliance testing in line with the ISO 26262 standard.
    • The debugger can be connected to the target board to enable real-time debugging and monitoring of system events, ensuring reliable operation in safety-critical automotive applications.
  2. Aerospace

    • It is used to debug early system startups in flight control systems.
    • TRACE32 can be used with Arduino boards for rapid prototyping and debugging, allowing engineers to test and validate embedded systems before full-scale deployment.
    • It supports timing checks and certification reports under DO-178C standards.

Resources and support are available to help address industry-specific challenges in both automotive and aerospace projects, ensuring teams have the necessary tools and expertise for successful debugging and development.

Example:

DATA.LOAD.BINARY Image 0xC0000000

DATA.LOAD.ELF &PATH/boot.sym /nocode

You can also load an ELF file using the DATA.LOAD.ELF command, which is useful for debugging and flashing embedded applications. The ELF file format contains symbolic debug information and is commonly used in TRACE32 sessions.

Arrays in TRACE32

  • Create some TRACE32- temporary variables as follows:
  • For integer \temp1, float \temp2, and character array \myStr1 on the PRACTICE scripting.
  • Var.NEWLOCAL int \temp1
  • Var.NEWLOCAL float \temp2
  • Var.NEWLOCAL char[10][128] \myStr1
  • Initialize the TRACE32-internal variables
  • Var.set \temp1=0x42
  • Var.set \temp2=197.2
  • Var.set \myStr1[5]=”Hello world!”
  • Open the Var.View window to display these TRACE32 – temp variables
  • Var.View %all \val1 \val2 \myStr
  • Print the TRACE32- temp variables to the area view or wherever we are getting all script results.
  • PRINT %Hex “0x” Var.VALUE(\val1) ; “integer”
  • PRINT Var.FVALUE(\val2) ; “float”
  • PRINT Var.STRing(\myStr[5]) ; “strings”
  • Allows definition of local arrays and variables
  • We can use test automation for a dynamic array or data storage.
  • You can save the contents of arrays or memory to a file for later analysis or backup, and use the file’s date attribute to track the most recent data for debugging or version control.

To automate tasks, you can create a custom startup script with a .cmm extension and execute the cmm script within TRACE32 to configure your debugging environment or run specific commands.

Conclusion

With sophisticated debugging and verification features for embedded systems, Lauterbach TRACE32 gives engineers greater security/safety standards, quicker problem detection, and deeper insights.

Engineers can switch from manual debugging to automated, scalable, and repeatable test procedures by utilizing PRACTICE scripting, opcode validation, and conditional breakpoints. Engineers gain knowledge about how actual registers work, and how actual hardware functions.

There are many improvements expected in the future in automation debugging, timing calculations for extremely high frequencies, and more integration with the CI/CD.

Picture of Savankumar Chauhan

Savankumar Chauhan

Senior Aerospace Engineer – Level 2 Savankumar Chauhan is a Senior Aerospace Engineer with over nine years of experience in Verification and Validation (V&V) for aerospace systems. He has strong expertise in DO-178B/C standards and practical experience with tools like the Lauterbach debugger, focusing on safety, compliance, and reliability in mission-critical projects.

Explore More

Talk to an Expert

Subscribe
to our Newsletter
Stay in the loop! Sign up for our newsletter & stay updated with the latest trends in technology and innovation.

Download Report

Download Sample Report

Download Brochure

Start a conversation today

Schedule a 30-minute consultation with our Automotive Solution Experts

Start a conversation today

Schedule a 30-minute consultation with our Battery Management Solutions Expert

Start a conversation today

Schedule a 30-minute consultation with our Industrial & Energy Solutions Experts

Start a conversation today

Schedule a 30-minute consultation with our Automotive Industry Experts

Start a conversation today

Schedule a 30-minute consultation with our experts

Please Fill Below Details and Get Sample Report

Reference Designs

Our Work

Innovate

Transform.

Scale

Partnerships

Quality Partnerships

Company

Products & IPs

Privacy Policy

Our website places cookies on your device to improve your experience and to improve our site. Read more about the cookies we use and how to disable them. Cookies and tracking technologies may be used for marketing purposes.

By clicking “Accept”, you are consenting to placement of cookies on your device and to our use of tracking technologies. Click “Read More” below for more information and instructions on how to disable cookies and tracking technologies. While acceptance of cookies and tracking technologies is voluntary, disabling them may result in the website not working properly, and certain advertisements may be less relevant to you.
We respect your privacy. Read our privacy policy.

Strictly Necessary Cookies

Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.