PLS: Debugger für Multicore-SoCs mit neuer Benutzeroberfläche und erweitertem Python-Support

EMBEDDED SYSTEMS

Um automatisierte Tests zu erleichtern, wurden in der aktuellen Version der Universal Debug Engine UDE 2021 von von PLS Programmierbare Logik & Systeme die Code Coverage-Funktionen optimiert und eine Python-Konsole implementiert sowie die Benutzeroberfläche mit einem neuen Layout versehen.



Im Gegensatz zum bisherigen Aufbau der Benutzeroberfläche der Debug-Software 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 angeordnet und gruppiert werden. 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 ermöglicht einen Mehrmonitorbetrieb.

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 laut PLS 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.

UDE 2021 hat jetzt eine vollständige 64-Bit Code-Basis. Bei der Verarbeitung von großen Datenmengen, wie sie beispielsweise bei der Trace-Daten-Analyse anfallen, bedeutet dies laut Anbieter eine signifikante Steigerung der Performance. Zudem kann die UDE jetzt auch als Plug-In in 64-Bit-Eclipse-Versionen eingebunden werden.

Die UDE greift zur Berechnung des Code Coverages ausschließlich auf Trace-Informationen zurück

Der Vorteil gegenüber anderen Verfahren besteht darin, dass man gänzlich ohne Instrumentierung des zu testenden Codes auskommt. Die gesamte Code Coverage-Analyse beeinflusst das Laufzeitverhalten der Applikation zu keiner Zeit. Die Code Coverage-Ergebnisse werden für alle berechneten Coverage-Level präsentiert und können ausgehend von der Funktionsebene bis hin zu einzelnen Instruktionen auf Objektcodeebene dargestellt werden. Eine Trace-Aufzeichnung kann auf interessierende Funktionen oder Codebereiche gefiltert werden. Stark vereinfacht hat sich laut PLS die Handhabung der Code Coverage-Funktionen. Bei der UDE 2021 ist weder eine explizite Aktivierung noch eine Vorauswahl des gewünschten Coverage-Levels notwendig. Die Generierung und Ausgabe von Code Coverage-Reports erfolgt neben HTML nun auch als CSV, XML und Plain-Text, wobei sich Inhalt und Erscheinungsbild der Report-Ausgaben anpassen lassen.

Die Berechnungsalgorithmen für das Code Coverage...

...wurden laut Anbieter grunglegend überarbeitet. 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 besser steuern.

Zudem wurde die UDE um eine Python-Konsole erweitert. Damit lässt sich die Skriptsprache nun nicht mehr nur für externes Scripting wie beispielsweise zur Fernsteuerung der UDE über eine Kommandozeile verwenden, sondern kann 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. Zur Fehlersuche in den Python-Skripten steht ein integrierter Skript-Debugger zur Verfügung.

Für das Zugangsgerät UAD3+ stellt PLS ein neues Pod für seriellen Trace vor. Mit diesem Pod können Trace-Daten von Mikrocontrollern über serielle Trace-Schnittstellen mit 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 Adapterkonzept erlaubt darüber hinaus eine Anpassung an die durch die Halbleiterhersteller definierten Steckverbinder. Die Datenübertragung zwischen Pod und UAD3+ erfolgt über eine PCI-E-Verbindung. Für die übertragenen Trace-Daten vom Target-System stehen im UAD3+ bis zu 4 GByte Speicher zur Verfügung.

Fachartikel