Debuggen komplexer Multicore-Controller Flexible Fehlersuche in Applikationen auf Mehrkern-Controllern

Redakteur: Michael Eckstein

Neue UDE 2021 von PLS vereinfacht Test und Debugging von Multicore-SoCs mit neuer intuitiver Benutzeroberfläche, Mehrmonitorunterstützung und erweitertem Python-Support.

Firmen zum Thema

Hoher Durchsatz: Eine jetzt durchgängige 64-Bit-Architektur beschleunigt datenintensive Trace-Daten-Analysen.
Hoher Durchsatz: Eine jetzt durchgängige 64-Bit-Architektur beschleunigt datenintensive Trace-Daten-Analysen.
(Bild: PLS Programmierbare Logik & Systeme)

Applikationen für komplexe Multicore-System-on-Chips zu debuggen erfordert umfassendes Expertenwissen. Vollständig automatisieren lässt sich der Vorgang bislang nicht, allerdings können Tools Entwicklern umfangreiche Hilfestellungen geben. Mit seiner runderneuerten Universal Debug Engine (UDE) 2021 will Programmierbare Logik & Systeme (PLS) Entwickler bei dieser Aufgabe bestmöglich unterstützen. Dazu hat der Hersteller die Code-Coverage-Funktionen optimiert und eine Python-Konsole implementiert.

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 dabei frei angelegt und Debugger-Fenster darin ohne Beschränkung eingefügt und angeordnet werden.

Komplexe Multicore-Systeme verlieren ihren Schrecken

Mit viel Aufwand hat der Hersteller die Benutzeroberfläche seiner UDE überarbeitet. Diese ist nach eigenen Angaben nun besonders intuitiv zu handhaben und soll dadurch ein effizienteres Debugging selbst von hochkomplexen Multicore-Systemen der neuesten Generationen ermöglichen. Um automatisierte Tests deutlich zu erleichtern, hat PLS in der aktuellen Version der Universal Debug Engine zudem die Code Coverage-Funktionen optimiert und eine Python-Konsole implementiert.

PLS hat nach eigenen Angaben ein völlig neues Layout-Framework entwickelt, das das Analysieren und Debuggen von Programmen, die auf Mikrocontrollern und Prozessoren mit immer mehr Kernen laufen, besser als bisher unterstützen soll. Im Gegensatz zum bisherigen Aufbau mit festen Dock-Bereichen links, rechts, oben und unten und einem zentralen Tab-Fenster, in dem Fenster über Reiter erreichbar waren, können nun alle Fenster im Debugger, die beispielsweise den Quellcode, interne Zustände wie Variablen oder Register anzeigen oder auch grafische Visualisierungen bieten, innerhalb der UDE-Oberfläche vollkommen flexibel angeordnet und gruppiert werden.

Komfortabler Mehrmonitorbetrieb für komplexe Debugging-Aufgaben

Bei Bedarf kann der Anwender jederzeit einen neuen Dock-Bereich anlegen oder Fenster als neuen Tab zu einem bereits vorhanden Dockbereich hinzufügen. Dockbereiche können außerdem auch außerhalb des eigentlichen UDE-Fensters erzeugt werden, um einzelne oder mehrere UDE-Fenster aufzunehmen. Dies Flexibilität ermöglicht einen sehr komfortablen Mehrmonitorbetrieb, was gerade bei komplexen Debugging-Aufgaben hilfreich ist.

UDE 2021 unterstützt sogenannte Perspektiven: Anwender können innerhalb einer Debugger-Sitzung mehrere Ansichten definieren und bequem zwischen Ihnen umschalten. So lässt sich schnell der Fokus auf eine bestimmte Debugging-Aufgabe legen. Laut PLS sind diese Perspektiven besonders hilfreich beim Multicore-Debugging, sobald sich der Entwickler detailliert mit der Analyse des Verhaltens zum Beispiel eines Cores auseinandersetzen will. Perspektiven können dabei frei angelegt und Debugger-Fenster darin ohne Beschränkung eingefügt und angeordnet werden.

Runderneuerter 64-Bit-Unterbau für mehr Performance

Nach Angaben des Herstellers setzt die neue UDE 2021 nun vollständig auf eine 64-Bit Code-Basis auf. Gerade bei der Verarbeitung von großen Datenmengen, wie sie etwa bei der Trace-Daten-Analyse anfallen, soll dies zu die Performance im Vergleich zu älteren Versionen deutlich verbessern. Darüber hinaus lässt sich die UDE jetzt auch als Plug-In in die neuesten 64-Bit-Eclipse-Versionen einbinden.

Stolz ist PLS auf die umfangreicheren und leistungsstärkeren Code-Coverage-Funktionen der UDE 2021. Diese sollen dem Entwickler eine Metrik für Testqualität an die Hand geben. Laut Hersteller greift die UDE zum Berechnen des Code Coverages ausschließlich auf Trace-Informationen zurück. Der große Vorteil gegenüber anderen Verfahren besteht demnach darin, dass man gänzlich ohne Instrumentierung des zu testenden Codes auskommt.

Die gesamte Code Coverage-Analyse soll somit nicht-invasiv arbeiten, das Laufzeitverhalten der Applikation also zu keiner Zeit beeinflussen. Die Code Coverage-Ergebnisse werden in kompakter Form für alle berechneten Coverage-Level präsentiert und können ausgehend von der Funktionsebene bis hin zu einzelnen Instruktionen auf Objektcodeebene übersichtlich dargestellt werden.

Komfortable Filterfunktionen für Codebereiche

Eine Trace-Aufzeichnung kann komfortabel auf interessierende Funktionen oder Codebereiche gefiltert werden. Stark vereinfacht hat sich laut PLS zudem die Handhabung der Code-Coverage-Funktionen. Bei der UDE 2021 ist weder eine explizite Aktivierung noch eine Vorauswahl des gewünschten Coverage-Levels notwendig. Auch das Generieren und Ausgeben von Code-Coverage-Berichten hat PLS verbessert und erweitert. Neben HTML stehen nun auch CSV, XML und Plain-Text als Ausgabeformate zur Verfügung, wobei sich Inhalt und Erscheinungsbild der Report-Ausgaben nach individuellen Bedürfnissen anpassen lassen.

Ein weiterer Pluspunkt ist die grundlegende Überarbeitung der Berechnungsalgorithmen für das Code Coverage, die in der Praxis zu einer deutlichen Beschleunigung der Analyse führt. Auch das UDE Object Model, das Software-API für Scripting und Tool-Kopplung, wurde hinsichtlich des Code Coverages optimiert. Damit können 3rd-Party-Tools wie externe Test-Werkzeuge das von UDE bereitgestellte Code Coverage zur Bewertung der Testfallgüte noch besser steuern, was letztlich zu noch aussagekräftigeren Ergebnissen führt.

Integrierte Python-Konsole als Kommandozentrale für die UDE

Zudem hat PLS seine UDE um eine Python-Konsole erweitert. Damit lässt sich die beliebte Skriptsprache nun nicht mehr nur für externes Scripting wie zur Fernsteuerung der UDE über eine Kommandozeile verwenden. Vielmehr kann sie jetzt auch innerhalb von UDE als Kommandosprache benutzt werden. 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.

Der Nutzer wird dabei durch eine Autovervollständigung und eine kontextsensitive Hilfe unterstützt. Die ausgeführten Kommandos lassen sich auch 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.

Neues High-Speed-Pod für seriellen Trace

Für das High-End-Zugangsgerät UAD3+ hat PLS ein neues High-Speed-Pod für seriellen Trace vorgestellt. Mit diesem Pod können Trace-Daten von Mikrocontrollern der neuesten Generation wie dem Automotive-Netzwerkprozessor S32G von NXP über serielle Trace-Schnittstellen höchster Bandbreite zur UDE übertragen werden.

Dabei 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 eine einfache Anpassung an die durch die Halbleiterhersteller definierten Konnektoren. Die Datenübertragung zwischen Pod und UAD3+ erfolgt über eine PCIe-Verbindung. Für die übertragenen Trace-Daten vom Target-System stehen im UAD3+ bis zu 4 GByte Speicher zur Verfügung.

(ID:47295970)