Multi-Core-MCA-Support mit Universal Debug Engine

Die Steuerung eines Multi-Core-Systems und das Debugging werden mit der UDE in einer Benutzeroberfläche mit einem konsistenten Design ausgeführt. Universal Multi-Core Workbench ist ein neues Add-On für die bekannte modulare Universal Debug Engine. Mit seinen herausragenden Eigenschaften bietet es Softwareentwicklern von Multi-Core-SoCs Arbeitserleichterung, Klarheit und Effizienz.

Das Konzept wird durch Sichtbarkeitsgruppen für Fenster einzelner Cores oder auch durch Zusammenstellungen von benutzerspezifischen Debugger-Ansichten ergänzt. Verschiedene Compiler-Konzepte für Multi-Core-Targets werden durch den implementierten Multi-Core-/Multi-Program-Loader unterstützt. Er ermöglicht das separate Laden von Speicher-Images und symbolischen Informationen aus den Ausgabedateien des Compilers spezifisch für jeden einzelnen Core.

Universal Multi-Core Workbench

Zur Steuerung eines Multi-Core-Targets ermöglicht die UDE die Synchronisation von zwei oder mehr Kernen innerhalb sogenannter Run-Control-Gruppen, um gemeinsames Starten und Stoppen oder gemeinsame Einzelschritte zu definieren. Dies beinhaltet auch die umfassende Anwendung von bestehenden On-Chip-Trigger- und Synchronisationsoptionen verschiedener Mikrocontrollerhersteller. Die konsistente Benutzeroberfläche gewährleistet höchstmögliche Flexibilität bei der Steuerung eines Multi-Core-Targets, ohne dabei die zugrundeliegende On-Chip-Logik im Detail kennen zu müssen.

  • Multi-Core-Debugging-Target-Manager für die Auswahl von Cores und Funktionseinheiten zum Debugging von core- oder benutzerspezifischen Sichtbarkeitsgruppen in UDE Open Platform – samt core-spezifischer Färbung
  • Multi-Core-Program-Loader zur Verteilung des binären Musters und zur Auswahl von core-spezifischen Symbolinformationen
  • Die grafische Code-Coverage-Analyse ermöglicht strukturelle Abdeckung, um die Anforderungen von ISO26262 zu erfüllen.
  • Profiling-Funktionen basierend auf Instruction-Pointer-Trace-Daten von On-Chip-Emulatoren (MCDS und SPU), einschließlich AURORA Trace, Nexus, ETM, ETB, Instruction-Pointer-Snooping oder Simulatorausgabe
  • Der Universal Emulation Configurator (UEC) beschreibt Messaufgaben für On-Chip-Emulatoren.
  • Paralleles Testen von Software für mehrere Cores, unabhängig von deren Architektur, in einer einzigen Benutzeroberfläche
  • Synchronisation mehrerer Cores für das Debugging (gemeinsames Starten und Stoppen) und parallele Visualisierung von Kontextinformationen nach der synchronisierten Programmausführung
  • Grafische Visualisierung von Variablen aus Programmen, die auf verschiedenen Cores ausgeführt werden, als zeitbasiertes zweidimensionales Diagramm in einer Gesamtansicht
  • Zentrales Management für Download und Verteilung von Software von einer oder mehreren ELF-Dateien auf mehrere Cores
  • Multi-Core-Trace mit gemeinsamer Analyse und Visualisierung der ausgeführten Programm- und Datenzugriffe in einer oder mehreren Ansichten der Entwicklungsbenutzeroberfläche.

Fortschrittliche Multi-Core-Debug-Features

  • Debugging von mehreren Prozessoren im selben Framework
  • Gemeinsame und core-spezifische Ansichten ermöglichen das komplexe Debugging von Programmen, bei denen die Programmausführung auf verschiedene Cores verteilt ist.
  • Multi-Core-Run-Control ermöglicht die Synchronisation der Programmausführung auf mehreren Cores (gemeinsames Stoppen durch Breakpoint bei einem Core, gemeinsames Starten aller Cores durch dedizierte Run-Control-Gruppe).
  • Flexible Verteilung von geladenen Programmen auf verschiedene Cores – das Multi-Program-Load-Feature ermöglicht es, das geladene Programm spezifischen Cores zuzuweisen und architekturspezifische Strukturen von Speicherbausteinen wie gemeinsame Flash-Programmspeicher und core-spezifische lokale Speicher zu verwalten.
  • Der Multi-Core-Targetmanager verbessert das Management separater Cores beim Debugging von verteilten Programmen.
  • Das Multi-Core-Aware-Framework steigert die Navigationsgeschwindigkeit bei einer Vielzahl von core-spezifischen und globalen Ansichten (enthält Visualisierungsergebnis verschiedener Cores).
  • Core-spezifische Färbung der Framework-Elemente
  • Ansichten können Sichtbarkeitsgruppen zugewiesen werden, die für spezifische Debug-Kontexte aktiviert oder deaktiviert werden können.
  • Multi-Core-Program-Trace ermöglicht das Tracen der Programmausführung auf verschiedenen Cores und die Visualisierung von Zeitverhältnissen core-spezifischer Programmabläufe in gemeinsamen Ansichten.
  • Multi-Core-Program-Trace wird durch den PLS Universal Emulation Configurator unterstützt.

Multi-Core Synchronisation

Zur Steuerung eines Multi-Core-Targets ermöglicht die UDE die Synchronisation von zwei oder mehr Cores innerhalb sogenannter Run-Control-Gruppen, um gemeinsames Starten und Stoppen oder synchrone Einzelschritte zu definieren. Dies beinhaltet auch die umfassende Anwendung von bestehenden On-Chip-Trigger- und Synchronisationsoptionen verschiedener Mikrocontrollerhersteller. Die konsistente Benutzeroberfläche gewährleistet höchstmögliche Flexibilität bei der Steuerung eines Multi-Core-Targets, ohne dabei die zugrundeliegende On-Chip-Logik im Detail kennen zu müssen.

Für die einfache Verarbeitung von großen Datenmengen, die beim Tracen mehrerer Quellen auftreten, ist die UDE mit einem Multi-Core-Trace-Framework ausgerüstet, das auf der einen Seite konventionelles Troubleshooting auf der Grundlage aufgezeichneter Daten ermöglicht und auf der anderen Seite verschiedene statistische Analysen wie die Profiling-Analyse und Code-Coverage bietet.

Multi-Core-Targetmanager

Mit Hilfe des Targetmanagers können Cores und Funktionseinheiten spezifisch für das Debugging ausgewählt werden. Um die Übersicht über mehrere Cores zu behalten, sind die Debug-Fenster-Tabs und die Toolbars core-spezifisch gefärbt.

Das Konzept wird durch Sichtbarkeitsgruppen für Fenster einzelner Cores oder auch durch Zusammenstellungen von benutzerspezifischen Debugger-Ansichten ergänzt. Verschiedene Compiler-Konzepte für Multi-Core-Targets werden durch den implementierten Multi-Core-/Multi-Program-Loader unterstützt. Er ermöglicht das separate Laden von Speicher-Images und symbolischen Informationen aus den Ausgabedateien des Compilers spezifisch für jeden einzelnen Core.

High-End-Trace und Multi-Core-/Multi-Target-Debugging-Hardware

Das Universal Access Device 3+ (UAD3+) setzt neue Standards beim Multi-Core-/Multi-Target-Debugging und beim High-End-Real-Time-Tracing. Das UAD3+ basiert auf einem modularen Konzept und bietet High-Speed-Debug-Zugriff auf TriCore und PowerArchitecture sowie weitere Mikrocontroller-Architekturen. Mehrere JTAG-Extender-Pods können über ein langes Kabel angeschlossen werden. So wird eine flexible Anpassung an den Target-Anschluss gewährleistet. Das UAD3+ wurde für die beste Leistung in seiner Klasse entworfen.

  • High-Speed-JTAG-Debug-Zugriff mit bis zu 160 MHz Takt
  • Multi-Target-/Multi-System-Zugriff – parallele Unterstützung von bis zu 8 JTAG-Schnittstellen
  • Standard I/O-Ringspannung 1,6 bis 5,5 V, erweiterte I/O-Ringspannung 0,8 bis 3,3 V (optional)
  • Unterstützte Debug-Anschlüsse
  • JTAG/DAP/DAP2 (Infineon)
  • Nexus Debug Port (OnCE)
  • Optionale galvanische Trennung
  • Separate JTAG-Extender-Pods werden an den UAD3+ mit bis zu 5 m langen seriellen Gigabit-Kabeln angeschlossen (0,5 m, 1 m – Standard, 2 m und 5 m)
  • Große Bandbreite von Hostschnittstellen, USB2.0 HS, Gigabit-Ethernet (10/100/1000 Mbps), IEEE1394b (FireWire-800)

Serieller Highspeed-Trace bis zu 4 Lanes mit je 3,125 Gbit/s unterstützt

Das Universal Access Device 3+ ermöglicht die Aufzeichnung von Echtzeit-Trace-Information über eine serielle Highspeed-Trace-Schnittstelle.

  • Unterstützung von bis zu 4 Lanes, maximale Datenrate pro Lane beträgt 3,125 Gbit/s
  • Trace-Speicher bis zu 4 GB skalierbar
  • Endlos-Trace für pausenloses Tracing und kontinuierliche Überwachung
  • Separater serieller Highspeed-Trace-Pod wird an den UAD3+ mit bis zu 5 m langen seriellen Gigabit-Kabeln angeschlossen (0,5 m, 1 m – Standard, 2 m und 5 m)
  • Unterstützung von AURORA-basierten Trace-Protokollen (Samtec ERF8 HS22, Samtec ERF8 HS34, zusätzliche kundenspezifische Trace-Anschlüsse).

Zusammenfassend ist die Universal Multi-Core Workbench ein neues Entwicklungstool, welches das Debugging und Softwaretesting bei Multi-Core-SoCs erheblich optimiert.

In der Praxis wird die Universal Multi-Core Workbench zum ersten Mal bei den neuen Multi-Core-Mikrocontrollern für Automobilanwendungen eingesetzt, die in gemeinsamer Zusammenarbeit von Infineon, Freescale und STMicroelectronics auf den Markt gebracht wurden.

Diese neuen Multi-Core-Mikrocontroller sind Meilensteine in Sachen Echtzeit-Effizienz bei Automobilanwendungen. Sie enthalten drei Prozessorkerne, die so durch eine Crossbar miteinander verbunden sind, dass sie mit voller Geschwindigkeit und ohne Zugriffskonflikte laufen. Außerdem umfasst die Implementierung einige Flash-Module und ein benutzerfreundliches und leistungsstarkes mikroprogrammierbares Timer-Modul (bis zu 8 Mikro-Cores), das den Hauptprozessor durch fast unabhängige Erzeugung von Motorsteuerungssignalen entlastet. Diese Mikrocontroller erfordern neue Konzepte und Debugging-Funktionen für die Entwicklung von Software für Motorsteuergeräte (Engine Control Unit, ECU).

Die neuen Funktionen zum Testen von Multi-Core-Software, die auf bis zu 5 Cores (3 Haupt-Cores, mikroprogrammierbares Timer-Modul und Security Core) in harter Echtzeit ausgeführt wird, werden durch die Marktführer für Motorsteuergeräte zum ersten Mal bei Antriebssträngen (Motor- und Getriebesteuerung) eingesetzt.