Um die Analyse und das Debuggen von Applikationen, die auf Mikrocontrollern und Prozessoren mit immer mehr Kernen ausgeführt werden, noch effizienter zu gestalten, setzt PLS Programmierbare Logik & Systeme bei der UDE 2021 auf ein völlig neues Layout-Framework. 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. 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 sehr komfortablen 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 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.
Die neue UDE 2021 hat nun eine vollständige 64-Bit Code-Basis. Gerade bei der Verarbeitung von großen Datenmengen, wie sie beispielsweise bei der Trace-Daten-Analyse anfallen, bedeutet dies eine signifikante Steigerung der Performance. Zudem kann die UDE jetzt auch als Plug-In in die neuesten 64-Bit-Eclipse-Versionen eingebunden werden.
Ohne Instrumentierung des zu testenden Codes
Die Code-Coverage-Funktionen der UDE 2021 geben dem Entwickler eine Metrik für Testqualität an die Hand. Zur Berechnung des Code Coverages greift UDE ausschließlich auf Trace-Informationen zurück. Der große Vorteil gegenüber anderen Verfahren besteht darin, dass man ohne Instrumentierung des zu testenden Codes auskommt. Die gesamte Code-Coverage-Analyse ist somit nicht-invasiv, beeinflusst das Laufzeitverhalten der Applikation also zu keiner Zeit. 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. Eine Trace-Aufzeichnung kann komfortabel auf interessierende Funktionen oder Codebereiche gefiltert werden. Stark vereinfacht hat sich 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 die Generierung und Ausgabe von Code-Coverage-Reporten wurde 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 leicht nach individuellen Bedürfnissen anpassen lassen.
Die grundlegende Überarbeitung der Berechnungsalgorithmen für das Code Coverage führt in der Praxis zu einer deutlichen Beschleunigung der Analyse. 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.
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, 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.
High-Speed-Pod für seriellen Trace
Für das High-End-Zugangsgerät UAD3+ stellt PLS ein neues High-Speed-Pod für seriellen Trace vor. Mit diesem Pod können Trace-Daten von Mikrocontrollern der neuesten Generation wie beispielsweise 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 hoch performante PCI-E-Verbindung. Für die übertragenen Trace-Daten vom Target-System stehen im UAD3+ bis zu 4 GByte Speicher zur Verfügung.
(neu)