Die neue Version 5.0 der Universal Debug Engine bietet neue und erweiterte Funktionen für das professionelle Debugging und den Test eingebetteter Systeme.

Die neue Version 5.0 der Universal Debug Engine bietet neue und erweiterte Funktionen für das professionelle Debugging und den Test eingebetteter Systeme. PLS Programmierbare Logik & Systeme

So unterstützt die UDE 5.0 mit ihrer Hypervisor-Awareness nun unter anderem auch die Entwicklung virtualisierter Anwendungen unter dem Lynxsecure Hypervisor von Lynx Software Technologies für die ARM-Cortex-A53-Plattform.

Der aktuelle Trend geht immer mehr in Richtung Konsolidierung von mehreren, bislang auf getrennter Hardware ausgeführten Anwendungen auf einer zentralen Rechnerplattform. Unterschiedliche Anforderungen an Safety, Security und an das Echtzeitverhalten verlangen jedoch hier eine strikte Abschottung, die nur über Virtualisierung zu erreichen ist.

Mit der nun verfügbaren Hypervisor-Awareness stehen dem Entwickler jetzt auch die umfangreichen Debug-Möglichkeiten der UDE für die Entwicklung von virtualisierten Applikationen zur Verfügung. Spezifische Eigenschaften des ARM Cortex-A53 wie zweistufige Adressumrechnung oder die Unterstützung von Interrupt-Virtualisierung werden durch die UDE 5.0 für den Anwender transparent behandelt. Wesentlich dabei ist, dass der Anwender wie gewohnt eine einzelne Bare-Metal Applikation so debuggen kann, als ob diese statt innerhalb einer virtuellen Maschine (VM) auf echter Hardware ausgeführt wird. Umfangreiche Unterstützung erhalten Entwickler auch beim Debugging und der Systemanalyse des Hypervisors an sich. Für jede einzelne VM können sowohl deren Zustand als auch die jeweiligen Kontexte angezeigt werden. Darüber hinaus stehen neben Informationen zum Speicher-Layout der einzelnen VMs auch die Zuordnungen der virtuellen zu den physikalischen Speicheradressen zur Verfügung.

Sortier- und filterbar

Weiter vereinfacht und verbessert wurde in der UDE 5.0 der Umgang mit großen Mengen an aufgezeichneten Trace-Daten. Dabei wurde speziell auf die Visualisierung besonderes Augenmerk gelegt. So ist die zeitgenaue Darstellung der ausgeführten Funktionen und Betriebssystem-Tasks im UDE Excecution Sequence Chart nun nach verschiedenen Gesichtspunkten sortierbar und filterbar. Verlinkungen erlauben eine leichte Navigation von den aufgezeichneten Funktionen hin zu deren Quellcode. In Kombination mit dem Add-In für den Support von Echtzeitbetriebssystemen nach dem Osek-Standard können die Betriebssystem-Tasks zusammen mit den zugehörigen Runnables übersichtlich dargestellt und vermessen werden. Eine Exportfunktion für das Best-Trace-Format (BTF) erlaubt zudem die Weiterverarbeitung auch durch gängige Task-Analyse-Werkzeuge von Drittanbietern.

Als echter Multicore-Debugger unterstützt die UDE 5.0 auch die Visualisierung der Zustände und Kontrolle aller Kerne eines Multicore-Systems innerhalb einer einheitlichen Benutzeroberfläche. Noch effizienter als bisher gestaltet sich beispielsweise der Umgang mit Variablen, die durch den Compiler nur für einen bestimmten Core sichtbar gemacht werden. Solche Core-lokalen Variablen werden nun in den Watch-Fenstern der UDE entsprechend des jeweiligen Cores verschiedenfarbig hervorgehoben. Diese Einfärbung galt bislang zur besseren Übersicht nur für Fenster, die einem spezifischen Core zugeordnet sind, und für Statusinformationen der einzelnen Cores.

Neue Bausteine aus der ARM-Welt

Die Debug-Funktionen für 64-Bit-Architekturen wurden beispielsweise für den ARM Cortex-A53, weiter ausgebaut. Als neue Bausteine aus der ARM-Welt sind unter anderem der 32-Bit-ARM-Controller Cortex-R52 und der Cortex-M-Mikrocontroller NETX 90 hinzugekommen. Dedizierten Debug-Support bietet die UDE 5.0 darüber hinaus auch für die neuen Power-Architecture-basierten Bausteine Chorus SPC58NH92x von ST Microelectronics sowie die Dual-Cores MPC5775B und MPC5775E von NXP. Letztere sind speziell die für rechenintensive Anwendungen aus dem Batteriemanagement und Inverter-Steuerungen ausgelegt und zielen sowohl auf den Industrial- als auch auf den Automotive-Sektor. Über den Nexus-Trace-Support der UDE sind für diese Bausteine die umfangreichen Funktionen zur exakten Laufzeitanalyse wie Profiling, Code Coverage und die Visualisierung von Call-Graphen nutzbar.

Von den erweiterten Debug- und Trace-Funktionen der UDE 5.0 profitieren insbesondere auch die Mikrocontroller der TC3xxx-Palette von Infineon. Neben den Multicore-Debug-Funktionen stehen Anwendern je nach Controller auch Trace für nicht-invasives Debugging sowie für die Systemanalyse zur Verfügung. Für den TC35x kann das neue MCD Slight, für den TC38x die grundlegende Trace-Funktionalität des Mini MCDS genutzt werden. Letzteres steht den Entwicklern auch in der Basislizenz der UDE zur Verfügung.

Um den speziellen Anforderungen von Fail-Safe- beziehungsweise Fail-Operational-Systemen gerecht zu werden, die mit zwei Controllern der Aurix-Familie eine Redundanz der Steuer-Controller sicherstellen, steht für die Target-Kommunikation mit dem Universal Access Device 3+ (UAD3+) ein spezieller, von PLS entwickelter Multi-Aurix-Adapter zu Verfügung. Zusammen mit der UDE 5.0 ermöglicht er sowohl ein synchrones Stop-Mode-Debugging – Break, Single-Step-Betrieb und Wiederloslaufen – als auch ein synchrones Anhalten der Peripherieeinheiten beider Controller, die über zwei separate Debug-Interfaces angesprochen werden.