Schwerpunkte

Debugging

Vier Tools im Check

14. Mai 2021, 10:30 Uhr   |  Tobias Schlichtmeier

Vier Tools im Check
© shutterstock.com | Weka Fachmedien

Debuggen gehört zum grundsoliden Handwerkszeug eines Entwicklers. Jedoch hat er viele Tools – sowohl Hardware als auch Software – zur Auswahl. Einige Werkzeuge stellen wir Ihnen hier vor.

Jedem Embedded-Entwickler ist klar, dass fehlerfreier Code essenziell für die Marktreife und den Erfolg des Systems sind. Für ein erfolgreiches Debuggen sind zahlreiche Tools am Markt erhältlich – gerade bei den Software-Tools gibt es eine große Fülle. Hardware-Tools sind oft schwerer zu finden – meist bestehen die Tools jedoch aus einer Kombination beider Maßnahmen. Wir stellen Ihnen einige Werkzeuge vor:

Trace32, Lauterbach

Unter der Marke »Trace32« bietet Lauterbach einige Hardware- und Software-basierte Tools an. Grundlage ist ein modulares Konzept, bestehend aus universellen Basismodulen sowie architekturspezifischen Kabeln. Die Module sind miteinander kombinier- und erweiterbar, um gegebenenfalls unterschiedliche Cores parallel zu debuggen. Wiederum enthalten die Kabel Lizenzen für die jeweiligen Architekturen und ermöglichen vielfältige Adaptionen, zum Beispiel JTAG, SWD, cJTAG, DAP oder MIPI.

Ein Hardware-Tool von Lauterbach ist der »PowerDebug PRO« mit USB-3.0- und GbE-Anschlüssen. Entwickler können ihn zum Debuggen von knapp 100 verschiedenen Architekturen verwenden. Er ist die Kontrolleinheit, die Entwickler für jeden Zugriff auf das Gerät benötigen. Hier lassen sich diverse PowerTrace-Erweiterungen anschließen, um eine umfassende Analyse des Programmes durchzuführen. In Kombination mit der »CombiProbe 2« können Entwickler den PowerDebug PRO als Debug- und Trace-Anwendung für Microkontroller verwenden. Zusammen besitzen sie eine Traceport-Breite mit bis zu 4 Bit (DAP-Streaming, ETM, STM und ITM).

Lauterbach Trace32
© Lauterbach

Unter der Marke »Trace32« bietet Lauterbach einige Hardware- und Software-basierte Tools an.

Eine Kontrolle des Debuggens ermöglicht die »PowerView GUI«. Mit ihr kann über Skripts oder ein API-Remote-Interface wie Python ein automatisiertes Steuern von Testabläufen und ein Auswerten der Daten erfolgen. So kann der Nutzer den Programmablauf starten, stoppen, Zeile für Zeile ausführen sowie Zwischenergebnisse in Speichern und Registern auslesen oder diese während der Programmausführung beobachten.

Neben den Hardware-Debuggern bietet Lauterbach ebenfalls reine Software-Debugger an. Der »Instruction Set Simulator« ermöglicht eine Simulation nahezu aller von Trace32 unterstützten Prozessorarchitekturen.

ULINK, Arm Keil

»ULINKplus« von Arm Keil ist Debugger, Leistungsmessgerät und I/O-Schnittstelle in einem Gerät. So bekommt der Entwickler einen Einblick in die Funktion, das Timing und die Leistungsaufnahme einer Embedded-Anwendung.

Entwickler können den Debugger an Arm-Cortex-basierte Geräte anschließen. Er unterstützt alle klassischen Debug-Funktionen, SWV-Trace (Serial Wire Viewer) sowie Multi-Core-Debugging. Zusammen mit dem Arm Keil MDK können Entwickler den Event Recorder und die Event-Statistik verwenden, um ein Profil der Anwendung hinsichtlich Timing und Energiebedarf zu erstellen. Hierbei zeigt der »System Analyzer« die Korrelation der Softwareausführung mit der Leistungsaufnahme und hilft, das Energieprofil eines Embedded-Systems zu optimieren.

arm_ulink_plus
© Arm Keil

»ULINKplus« von Arm Keil ist Debugger, Leistungsmessgerät und I/O-Schnittstelle in einem Gerät.

ULINKplus bietet isolierte JTAG/Serial-Wire- und Leistungsmessverbindungen zur Zielhardware. Gerade für das Testen von Anwendungen wie Motorsteuerung, Leistungswandler oder Systeme mit empfindlicher Analogverarbeitung ist das unerlässlich. Die Leistungsmessung ist mit der Ereignisverfolgung synchronisiert, was es einfach macht, die Energieeffizienz eines Systems zu optimieren. Eine intuitive grafische Benutzeroberfläche ermöglicht es, jedes unbeabsichtigte Verhalten schnell zu erkennen und dem richtigen Code zuzuordnen.

Die integrierten I/Os des Debugging-Tools sind über Ansichten oder Skripte zugänglich, um mit dem zu testenden Gerät zu interagieren oder automatisierte Teststände zu steuern.

Einige Eigenschaften des Debuggers sind:

  • USB-2.0-Schnittstelle zum PC (CMSIS-DAP-Protokoll)
  • Leistungsmesspins mit 1 kV Isolation
  • Abmessungen: 62 x 44 x 11 mm
  • unterstützt Low-Voltage-Targets (1,2 V - 5,5 V)
  • JTAG/SWD-Pins mit 50 Mbps SWO-Trace und 1kV-Isolierung
  • Digitale und analoge I/O-Pins für die Testautomatisierung

J-Link, Segger

Embedded-Spezialist Segger setzt ebenfalls auf eine Kombination aus Hardware- und Software-Tools. Bekannteste Debug-Probes sind die »J-Link«-Debugger. Sie erreichen bis zu 3 Mbyte/s RAM-Download-Geschwindigkeit und geben dem Entwickler die Möglichkeit, eine unbegrenzte Anzahl von Breakpoints im Flash-Speicher von MCUs zu setzen.

J-Link unterstützt außerdem viele CPUs und Architekturen sowie das direkte Ankoppeln von SPI-Flashes – ohne CPU zwischen J-Link und dem SPI-Flash. Weiterhin wird J-Link von vielen IDEs unterstützt, von kostenlosen Eclipse-basierten (direkt oder über GDB) bis hin zu kommerziellen IDEs, einschließlich Seggers »Embedded Studio«. Die J-Link-Familie besteht aus verschiedenen Modellen, darunter J-Link PRO, J-Link PLUS oder J-Link BASE. Ergänzt werden die Hardware-Debugger mit verschiedenen Software-Tools wie Embedded Studio, System View oder Ozone.

SEGGER J-Link
© Segger

Der »J-Link Pro« ist vollständig kompatibel mit J-Link und kann »out-of-the-box« zum Einsatz kommen.

Der »J-Link Pro« ist beispielsweise vollständig kompatibel mit J-Link und kann »out-of-the-box« zum Einsatz kommen. Er verwendet standardmäßig DHCP, der eingebaute Webserver erleichtert die manuelle Konfiguration. Ethernet ermöglicht weiterhin den Einsatz der Debug-Sonde über ein festverdrahtetes oder drahtloses Netzwerk. Mit dem Verwenden von TCP/IP statt USB als Übertragungsstandard sind Verzögerungen über USB ausgeschlossen. Außerdem gewähren die Ethernet-Signalleitungen eine galvanische Trennung des Debuggers (und damit des Zielsystems) vom Netzwerk und dem Entwicklungs-PC.

Komplementiert wird J-Link von »Ozone«, einem grafischen Debugger für Embedded-Systeme. Er deckt Funktionen wie Trace, Code-Profiling und Code-Coverage-Analyse ab. Ozone ermöglicht

  • das Debuggen von Embedded-Anwendungen auf C/C++-Quellcode- und Assembler-Ebene,
  • das Laden von Anwendungen, die mit einer beliebigen Toolchain/IDE erstellt wurden sowie
  • das Debuggen der Ziel-Anwendung ohne Quellcode.

UDE, PLS Programmierbare Logik & Systeme

Zu den weiteren Werkzeugen für die Systemanalyse, den Test und das Debugging von High-End-SoCs und eingebetteten Multicore-Systemen zählt die »Universal Debug Engine« (UDE) von PLS Programmierbare Logik & Systeme. Das modular aufgebaute Softwaretool vereint Funktionen zur Fehlersuche, Trace und Laufzeit-Analyse mit einer intuitiven Bedienoberfläche. So bietet die UDE Möglichkeiten zum Darstellen von Systemzuständen, außerdem Basisfunktionen wie Breakpoints im Code und für Daten sowie das Ausführen von einzelnen C/C++- oder Assembler-Statements. Hierzu zählen sowohl die numerische Ausgabe von Variablen sowie Register- und Speicherinhalten als auch deren grafische Visualisierung.

PLS Werkzeuge
© PLS Programmierbare Logik & Systeme

Die Debugging-Werkzeuge von PLS in der Übersicht.

UDE unterstützt Architekturen wie »AURIX«, »S32 Automotive Platform« oder »R-Car SPC5«. Hierfür stehen Anwendern spezielle Funktionen wie synchrones Debuggen oder Multicore-Breakpoints zur Verfügung. Alle Cores lassen sich hierbei in einer gemeinsamen Benutzeroberfläche gleichzeitig darstellen. Für eine besserer Übersicht ist zusätzlich ist eine Core-spezifische Färbung von Fenstern möglich. Für Trace-fähige Bausteine stellt die UDE außerdem umfangreiche Funktionen für die Laufzeitbeobachtung and -analyse bereit. Hierzu zählen

  • nicht-invasives Debugging
  • Visualisieren aller aufgezeichneten Trace-Informationen
  • Sequenzdiagramme der ausgeführten Funktionen bzw. OS-Tasks,
  • Call-Graph-Analysen
  • Profiling zur Identifikation von Bottlenecks
  • Code Coverage Analysen

Weiterhin bietet die UDE Möglichkeiten zur Testautomatisierung – mit Skripten in beliebigen Sprachen oder 3rd-Party-Tools. Auch stehen Entwicklern Funktionen für das In-System-Flash-Programmieren bereit. Daneben unterstützt die UDE Echtzeitbetriebssysteme und bietet Optionen für das Entwickeln von AUTOSAR-Software.

Zusätzlich zum Software-Tool bietet PLS die Hardware-Tools »UAD2pro«, »UAD2next« und »UAD3+« der Universal-Access-Device-Familie. Target-spezifische Debug Adapter, wahlweise mit galvanischer Isolation, unterstützen alle gängigen Debug-Schnittstellen. Für das Aufzeichnen von Trace-Daten bieten die Geräte UAD2next und UAD3+ außerdem passende Trace-Module beziehungsweise -Pods für serielle als auch parallele Trace-Schnittstellen und Trace-Speicher von 512 MB bis zu 8 GB an.

Auf Facebook teilen Auf Twitter teilen Auf Linkedin teilen Via Mail teilen

Das könnte Sie auch interessieren

Verwandte Artikel

Lauterbach GmbH, SEGGER Microcontroller GmbH & Co. KG, pls Programmierbare Logik & Systeme GmbH, ARM Germany GmbH