Multicore-Debug- und Trace-Unterstützung für NXPs S32G3 Fahrzeugnetzwerk-Prozessoren

EMBEDDED SYSTEMS AUTOMOTIVE

PLS Programmierbare Logik & Systeme bringt das Debugging-, Systemanalyse- und Testtool UDE 2023 für die S32G3 Fahrzeugnetzwerk-Prozessoren von NXP.  Die 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 Funktionen für Gateways, Domänenkontroller und Systemsicherheitsdienste.



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 Sicherheitsanforderungen in 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.


Die UDE 2023 unterstützt ...

Systementwickler beim Multicore-Debugging und Tracing. So erlaubt die Universal Debug Engine unter anderem Laufzeitanalysen von Anwendungen für die NXP-Bausteine. 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 betreiben.


Multicore-Breakpoints

Für das Multicore-Debugging bietet das Multicore-Run-Control-Management der UDE eine steuerbare Synchronisation der verschiedenen Cores des S32G3. 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 laut PlLS 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 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 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 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.


Speichern von Trace-Daten

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 512MB Trace-Speicher, das UAD3+ bis zu 4GB. Der Download der Trace-Daten vom Chip zur UDE erfolgt über den High-Speed Serial Trace Port (HSSTP) der S32G3 mit bis zu 5Gbit/s pro Lane.

Die Programmierung des externen OctalSPI-Flashs wird durch das MemTool Add-on ermöglicht, das integraler Bestandteil der UDE ist. eMMC sowie OCOTP (On Chip One-Time Programming) werden ebenfalls unterstützt.