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 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.
Virtuelle Maschinen wie Hardware behandeln
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 sollen Entwickler auch beim Debugging und der Systemanalyse des Hypervisors an sich erhalten. Für jede einzelne VM können sowohl deren Zustand als auch die jeweiligen Kontexte angezeigt werden. Darüber hinaus stehen neben Informationen zum Speicherlayout der einzelnen VMs auch die Zuordnungen der virtuellen zu den physikalischen Speicheradressen bereit.
Alle Kerne von Multi-Cores kontrollieren
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 Multi-Core-Debugger unterstützt die UDE 5.0 die Visualisierung der Zustände und Kontrolle aller Kerne eines Multi-Core-Systems innerhalb einer einheitlichen Benutzeroberfläche. Noch effizienter als bisher gestaltet sich laut PLS 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.
Anzahl unterstützter Mikrocontroller gestiegen
Auch in puncto unterstützter Mikrocontroller hat UDE 5.0 Verbesserung erfahren. So wurden die Debug-Funktionen für 64-Bit-Architekturen, beispielsweise für den ARM Cortex-A53, weiter ausgebaut. Als gänzlich 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 PowerArchitecture-basierten Bausteine Chorus SPC58NH92x von STMicroelectronics sowie die Dual-Cores MPC5775B und MPC5775E von NXP. Letztere sind speziell für die rechenintensiven Anwendungen aus dem Batteriemanagement und Inverter-Steuerungen ausgelegt und zielen sowohl auf den Industrial- als auch auf den Automotive-Sektor ab. Über den Nexus-Trace-Support der UDE sind für diese Bausteine umfangreiche 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 nach Herstellerangaben insbesondere auch die Mikrocontroller der TC3xxx-Palette von Infineon. Neben den Multicore-Debug-Funktionen stehen Anwendern je nach Controller Trace für nicht-invasives Debugging sowie für die Systemanalyse zur Verfügung. Für den TC35x kann das neue MCDSlight, für den TC38x die grundlegende Trace-Funktionalität des miniMCDS 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 soll er sowohl ein synchrones Stop-Mode-Debugging – Break, Single-Step-Betrieb und Wiederloslaufen – als auch ein synchrones Anhalten der Peripherieeinheiten beider Controller ermöglichen, die über zwei separate Debug-Interfaces angesprochen werden.