Schwerpunkte

Debugging von Multicore-Controllern

UDE 2021 vereinfacht Testen und Debuggen

09. Februar 2021, 14:00 Uhr   |  Tobias Schlichtmeier

UDE 2021 vereinfacht Testen und Debuggen
© PLS Programmierbare Logik & Systeme

Viele neue Funktionen für das Debuggen von Mikrocontrollern können Anwender von der neuen UDE 2021 erwarten.

PLS Programmierbare Logik und Systeme stellt auf der embedded world DIGITAL eine neue Version der Universal Debug Engine vor. Verbessert zeigen sich unter anderem die Benutzeroberfläche sowie der Support für Python. Umfassende Code-Coverage-Funktionen runden die neue Version ab.

Die Universal Debug Engine (UDE) 2021 von PLS Programmierbare Logik & Systeme wartet mit einer neuen intuitiven Benutzeroberfläche auf. Sie soll laut Hersteller ein effizienteres Debuggen von komplexen Multicore-Systemen der neuesten Generationen erlauben. Erstmals wird sie auf der embedded world 2021 DIGITAL von PLS vorgestellt. Um automatisierte Tests zu erleichtern, wurden in der aktuellen Version zudem die Code-Coverage-Funktionen optimiert und eine Python-Konsole implementiert.

Neue Perspektiven

Um die Analyse und das Debuggen von Anwendungen, die auf Mikrocontrollern und Prozessoren mit immer mehr Kernen ausgeführt werden, noch effizienter zu gestalten, setzt PLS bei der UDE 2021 auf ein völlig neues Layout-Framework. Bisher waren feste Dock-Bereiche eingerichtet, die links, rechts, oben und unten und einem zentralen Tab-Fenster erreichbar waren. Mit der neuen Version können Anwender alle Fenster im Debugger, die beispielsweise den Quellcode, interne Zustände wie Variablen oder Register anzeigen oder grafische Visualisierungen bieten, innerhalb der UDE-Oberfläche flexibel anordnen und gruppieren. Bei Bedarf kann der Anwender jederzeit einen neuen Dock-Bereich anlegen oder Fenster als neuen Tab zu einem bereits vorhanden Dockbereich hinzufügen. Nutzer können Dockbereiche außerdem außerhalb des eigentlichen UDE-Fensters erzeugen, um einzelne oder mehrere UDE-Fenster aufzunehmen.

Auch anderweitig bietet die UDE 2021 ihren Anwendern sprichwörtlich neue Perspektiven. Verschiedene Perspektiven erlauben es, innerhalb einer Debugger-Sitzung mehrere Ansichten zu definieren und zwischen Ihnen umzuschalten, um den Fokus auf eine bestimmte Debugging-Aufgabe zu legen. Besonders hilfreich erweisen sie sich insbesondere beim Multicore-Debugging, sobald sich der Entwickler detailliert mit der Analyse des Verhaltens zum Beispiel eines Cores auseinandersetzen will. Perspektiven können Anwender dabei frei anlegen und Debugger-Fenster darin ohne Beschränkung einfügen und anordnen.

Weiterhin besitzt die UDE 2021 eine vollständige 64-Bit Code-Basis. Gerade beim Verarbeiten von großen Datenmengen, wie sie bei der Trace-Daten-Analyse anfallen, bedeutet das eine Leistungssteigerung. Zudem ist die UDE jetzt ebenso als Plug-In in aktuelle 64-Bit-Eclipse-Versionen adaptierbar.

Algorithmen verbessern Code Coverage

Umfangreicher und leistungsstärker präsentieren sich außerdem die Code-Coverage-Funktionen der UDE 2021. Zum Berechnen der Code Coverages greift die UDE ausschließlich auf Trace-Informationen zurück. Ein Vorteil gegenüber anderen Verfahren besteht darin, dass Entwickler gänzlich ohne Instrumentieren des zu testenden Codes auskommen. Somit ist die gesamte Code-Coverage-Analyse nicht-invasiv, beeinflusst das Laufzeitverhalten der Anwendung also zu keiner Zeit. Alle Code-Coverage-Ergebnisse werden in kompakter Form für alle berechneten Coverage-Level präsentiert und sind, ausgehend von der Funktionsebene bis hin zu einzelnen Instruktionen auf Objektcodeebene übersichtlich darstellbar. Eine Trace-Aufzeichnung ist auf Funktionen oder Codebereiche filterbar. Stark vereinfacht hat sich zudem das Handhaben der Code-Coverage-Funktionen. Bei der UDE 2021 ist weder ein explizites Aktivieren noch eine Vorauswahl des gewünschten Coverage-Levels nötig. Auch das Generieren von Code-Coverage-Reporten wurde verbessert und erweitert. Neben HTML stehen nun CSV, XML und Plain-Text als Ausgabeformate zur Verfügung, wobei sich Inhalt und Erscheinungsbild der Report-Ausgaben leicht nach individuellen Bedürfnissen anpassen lassen.

Code Coverage UDE
© PLS Programmierbare Logik & Systeme

Zum Berechnen der Code Coverages greift die UDE ausschließlich auf Trace-Informationen zurück.

Ein weiterer Punkt ist die grundlegende Überarbeitung der Berechnungsalgorithmen für das Code Coverage, die zu einer schnelleren Analyse führt. Ebenso wurde das UDE Object Model, das Software-API für Scripting und Tool-Kopplung, hinsichtlich des Code Coverages optimiert. So können 3rd-Party-Tools wie externe Test-Werkzeuge das Code Coverage zum Bewerten der Testfallgüte noch besser steuern, was letztlich zu noch aussagekräftigeren Ergebnissen führt.

Neue Python-Funktionen

Zudem wurde die UDE um eine Python-Konsole erweitert. Hiermit lässt sich die beliebte Skriptsprache nicht mehr lediglich für externes Scripting, beispielsweise zur Fernsteuerung der UDE über eine Kommandozeile verwenden. Ebenfalls können Anwender die Skriptsprache ab sofort innerhalb der UDE als Kommandosprache nutzen. So erlaubt es die Python-Konsole Anwendern beispielsweise, die Funktionen des auf dem Component Object Model (COM) basierenden UDE-Software-API direkt innerhalb der UDE als Python-Kommando auszuführen. Hierbei wird der Nutzer von einer Autovervollständigung und einer kontextsensitiven Hilfe unterstützt. Ausgeführte Kommandos lassen sich als Skript abspeichern, um sie erneut laden und ausführen zu können. Zur einfachen Fehlersuche in den Python-Skripten steht ein integrierter Skript-Debugger zur Verfügung.

Trace-Daten übertragen leicht gemacht

Für das High-End-Zugangsgerät UAD3+ stellt PLS auf der embedded world Digital 2021 ein neues High-Speed-Pod für seriellen Trace vor. Mit dem Pod können Nutzer Trace-Daten von Mikrocontrollern der aktuellen Generation wie dem Automotive-Netzwerkprozessor S32G von NXP über serielle Trace-Schnittstellen höchster Bandbreite zur UDE übertragen. Hierbei werden Target-Schnittstellen mit bis zu acht Lanes unterstützt und Übertragungsraten von bis zu 12,5 GBit/s pro Lane erreicht. Das flexible Adapterkonzept erlaubt darüber hinaus ein einfaches Anpassen an Konnektoren. Die Datenübertragung zwischen Pod und UAD3+ erfolgt über eine PCIe-Verbindung. Für die übertragenen Trace-Daten vom Target-System sind im UAD3+ bis zu 4 GB Speicher verfügbar.

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

Das könnte Sie auch interessieren

Verwandte Artikel

pls Programmierbare Logik & Systeme GmbH