Embedded-Entwicklung Komplexe Multicore-SoCs debuggen

Von Michael Eckstein

Anbieter zum Thema

UDE 2023 von PLS bietet umfangreiche Multicore-Debug- und Trace-Unterstützung für die Fahrzeugnetzwerkprozessoren S32G3 von NXP.

Dank neuer Funktionen unterstützt die Unified Debug Engine von PLS nun auch die komplexen Multicore-SoCs S32G3 von NXP.
Dank neuer Funktionen unterstützt die Unified Debug Engine von PLS nun auch die komplexen Multicore-SoCs S32G3 von NXP.
(Bild: PLS)

Moderne Multicore-System-on-Chips zu debuggen ist eine Herausforderung. Und ohne Unterstützung leistungsfähiger Tools kaum möglich. Der Fahrzeugnetzwerkprozessor S32G3 von NXP etwa ist mit bis zu 16 Arm-Cortex-Kernen ausgestattet. Hier kommt das Debugging-, Systemanalyse- und Testtool UDE 2023 von PLS Programmierbare Logik & Systeme (PLS) ins Spiel: Der deutsche Hersteller hat es nach eigenen Angaben um mehrere neue Funktionen erweitert und auf die S32G3-SoCs von NXP abgestimmt.

Die NXP S32G3-Serie erweitert die S32G Familie und ist Teil der S32 Automotive Platform von NXP. Entwickelt für zentralisierte Aufgaben in zonenbasierten, softwaredefinierten Fahrzeugen, bietet der Baustein ein leistungsfähiges Upgrade für Gateways, Domänenkontroller und Systemsicherheitsdienste. Um den hohen Anforderungen des autonomen Fahrens und modernen ADAS gerecht zu werden, kombiniert der S32G3 höchste ASIL D- und Hardwaresicherheit mit sehr hoher Echtzeit- und Rechenperformance.

Echtzeitanwendungen, Hardware-Security debuggen

Für maximale Skalierbarkeit verfügt der S32G3 über das gleiche Pinout wie die anderen Mitglieder der S32G-Familie. Bis zu acht Arm Cortex-A53 Cores, die in zwei Clustern zu je vier Cores mit optionalem Cluster-Lockstep organisiert sind, stellen die Rechenleistung für Anwendungen und Dienste bereit. Speziell für Echtzeitanwendungen sind zusätzlich bis zu vier Arm Cortex-M7 Dual-Core Lockstep (DCLS) Einheiten in den Bausteinen integriert. Um die hohen Sicherheitsanforderungen heutiger und zukünftiger Fahrzeuganwendungen zu erfüllen, steuert eine Hardware Security Engine (HSE) alle nötigen Funktionen für die Absicherung des Boot-Prozesses und zur Beschleunigung von Security-Algorithmen bei.

Damit die Leistungsfähigkeit des S32G3 optimal genutzt werden kann, unterstützt die UDE Systementwickler umfassend beim Multicore-Debugging und Tracing. So zeichnet sich die neueste Version der Universal Debug Engine unter anderem durch eine einfache und intuitive Bedienung aus, die neben einem äußerst effizienten Debugging zum Beispiel auch Laufzeitanalysen von Anwendungen für die neuen NXP-Bausteine ermöglicht. Die Cortex-A53-Prozessorkerne und die Cortex-M7-Kerne sind alle für den Anwender sichtbar und können innerhalb der gemeinsamen Debugger-Oberfläche gesteuert werden. Es besteht keine Notwendigkeit, separate Debugger-Instanzen für die verschiedenen Cores zu öffnen.

Viele Cores, eine Oberfläche

Für echtes Multicore-Debugging bietet das Multicore-Run-Control-Management der UDE eine flexibel steuerbare Synchronisation der verschiedenen Cores des S32G3 für das Run-Mode-Debugging. Breakpoints oder Single-Steps wirken je nach Anforderungen der aktuellen Debug-Aufgabe auf einen einzelnen Core, auf alle Cores, oder auch auf Core-Gruppen. Alle Cores in einer solchen Run-Control-Gruppe können nahezu synchron gestartet und gestoppt werden. Damit bleibt der interne Zustand der jeweiligen Anwendung während des Debuggens konsistent. Multicore-Breakpoints vereinfachen zudem das Debugging von komplexen Anwendungen. Diese kommen insbesondere in gemeinsam genutztem Code zum Einsatz. Ein Multicore-Breakpoint ist unabhängig davon wirksam, welcher Kern den jeweiligen Code gerade ausführt.

Für eine tiefgreifende Analyse auf Systemebene und für nicht-invasives Debugging von Multicore-Anwendungen bietet die UDE umfangreiche Funktionen, die aufgezeichnete Trace-Informationen des Arm CoreSight Trace-Systems nutzen. Damit lassen sich typische Schwierigkeiten bei paralleler Ausführung oder Timing-Probleme untersuchen. Basierend auf dem aufgezeichneten Trace stellt die UDE eine Vielzahl von Analysefunktionen wie Profiling, Call-Graph-Analyse und auch Code Coverage zum Nachweis der Qualität von Softwaretests bereit. Ergänzend zu den Trace-Funktionen für die Cortex-A53- und Cortex-M7-Cores bietet das umfangreiche Softwaretool auch Unterstützung für das Tracing der Transaktionen über das Network-on-Chip (NoC), das für die Kommunikation zwischen den Cores und den anderen Komponenten des S32G3 verwendet wird.

Trace-Daten speichern

Zur Speicherung der erfassten Trace-Daten kann entweder das UAD2next oder das UAD3+ aus der Familie der Universal Access Devices von PLS verwendet werden. Das UAD2next verfügt über 512 MB Trace-Speicher, das UAD3+ bis zu 4 GB. Der schnelle Download der Trace-Daten vom Chip zur UDE erfolgt über den High-Speed Serial Trace Port (HSSTP) der S32G3 mit bis zu 5 Gbit/s pro Lane.

Das MemTool Add-on der UDE 2023 unterstützt die einfache und sichere Programmierung des externen OctalSPI-Flashs. eMMC sowie OCOTP (On Chip One-Time Programming) werden ebenfalls unterstützt. (me)

(ID:49250340)

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung