Mit dem Universal Access Device wertet die UDE auch umfangreiche Trace-Datenmengen aus.

Mit dem Universal Access Device wertet die UDE auch umfangreiche Trace-Datenmengen aus.PLS

Die Zeiten, in denen man erst einmal einen Baustein entwickelte und dann nach geeigneten Anwendungen suchte, sind lange vorbei. Heute überlassen die Halbleiterhersteller nichts mehr dem Zufall. Das gilt auch für die benötigten Test- und Debug-Lösungen, gerade bei komplexen SoCs. Möglich ist das allerdings nur durch eine frühzeitige enge Zusammenarbeit zwischen Halbleiterhersteller, Leitkunden und Tool-Hersteller.

Die neue Multicore-Automotive-Mikrocontroller-Familie SPC58 E von STMicroelectronics ist ein gutes Beispiel für die stark gestiegene Komplexität moderner SoCs und die Notwenigkeit spezieller Tools. Sie müssen den Anwender dabei unterstützen, die technischen Möglichkeit und Funktionen des Mikrocontrollers tatsächlich auszuschöpfen.

Bild 1: Das Blockschaltbild der SPC58NExx-Familie zeigt, wie viele Prozessor-Cores und Peripherie-Einheiten moderne SoCs in sich vereinen. Das stellt Debugger vor große Herausforderungen.

Bild 1: Das Blockschaltbild der SPC58NExx-Familie zeigt, wie viele Prozessor-Cores und Peripherie-Einheiten moderne SoCs in sich vereinen. Das stellt Debugger vor große Herausforderungen.DocID027731 Rev 1, STMicroelectronics

Komplexe Architektur

Mit drei Power-Architecture-basierenden e200z4d-Haupt-Cores, von denen zwei zusätzlich Lockstep-fähig sind, 6,32 MByte On-Chip-Flash, 768 KByte SRAM, Generic-Timer- (GTM) und Hardware-Security-Modulen (HSM), sieben CAN- und einem TTCAN-Knoten, verschiedenen Analog-Digital-Wandlern sowie einer Vielzahl weiterer leistungsfähiger Peripheriefunktionen zählen die Bausteine der SPC58-E-Linie zu den derzeit leistungsfähigsten Automotive-Mikrocontrollern auf dem Markt. Das ist auch gut am Blockschaltbild der SoC-Familie zu erkennen (Bild 1). Zielapplikationen sind unter anderem das Motormanagement, Getriebesteuerungen und Fahrerassistenzsysteme.

Bild 2: Der Target-Browser mit drei aktiven Cores und aktiviertem GTM-Modul (Generic Timer).

Bild 2: Der Target-Browser mit drei aktiven Cores und aktiviertem GTM-Modul (Generic Timer).PLS

Dass den Entwicklern mit der Universal Debug Engine (UDE) 4.4.6 von PLS parallel zu den ersten Mustern der neuen SPC58-E-SoCs bereits eine ausgereifte und erprobte Debug- und Testlösung zur Verfügung steht, ist nicht zuletzt das Ergebnis einer langjährigen intensiven Partnerschaft mit STMicroelectronics. Die UDE 4.4.6 erlaubt Anwendern die sichere und schnelle Programmierung des integrierten Flash-Speichers sowie die Steuerung und Kontrolle aller aktiven Einheiten des SoC innerhalb einer Bedienoberfläche. Dabei können Anwender nicht nur die Haupt-Cores, sondern auch die Generic-Timer- und Hardware-Security-Module oder den gesamten Baustein als Debug-Target auswählen (Bild 2). Unterstützt wird diese hohe Flexibilität durch einen flexiblen Multi-Core-Program-Loader, der das Laden von Programm-Code und Daten sowie Symbolinformationen getrennt für jeden einzelnen Core ermöglicht.

Mehrere Kerne im Griff

Die Steuerung der einzelnen aktiven Einheiten durch den Debugger erfolgt über einen speziellen Multicore-Run-Control-Manager. Der nutzt eine auf dem Chip integrierten Logik, um bei Bedarf verschiedene Cores nahezu synchron zu starten oder zu stoppen. Zusätzlich erleichtert wird das Debuggen durch die in der UDE implementierten Multicore-Breakpoints. Mit deren Hilfe lässt sich in gemeinsam verwendetem Code ein für alle Cores gleichzeitig wirkender Breakpoint setzen. Daten-Breakpoints wiederum erlauben die Erkennung von Lese- und/oder Schreibzugriffe auf eine Variable. Optional kann der Debugger zusätzlich einen Erwartungswert berücksichtigen.

Eckdaten

Moderne SoCs zu debuggen ist keine leichte Aufgabe. Nur einen Standard-Prozessor-Core für sich zu betrachten reicht lange nicht. Moderne Debugger steuern mehrere Cores gleichzeitig und kontrollieren auch zusätzliche Module, etwa für Security- oder Timer-Aufgaben. Die Debugger-Hersteller arbeiten dazu mit den Halbleiter-Firmen zusammen, um frühzeitig mit ihrer eigenen Produktentwicklung beginnen zu können.

Die MCUs der SPC58-E-Familie sind auch als zum Serienchip pinkompatible Emulation-Devices verfügbar. Diese beinhalten zusätzlichen Emulationsspeicher, eine aufwendige Trigger- und Filterlogik sowie Anschlüsse für eine serielle, auf dem Aurora-Protokoll basierende Hochgeschwindigkeits-Schnittstelle. Die zusätzlichen Trigger und Filter ermöglichen eine sehr genaue Definition, was das Gerät aufzeichnen soll; eine wichtige Voraussetzung für eine möglichst effiziente Nutzung des relativ kleinen Speichers. Neben dem Trace für die Fehlersuche kann er nämlich aufgeteilt und parallel auch zur Kalibrierung genutzt werden.

Damit Entwickler die mehreren hundert Register der zusätzlichen Emulationslogik möglichst einfach und abstrahiert konfigurieren können, bietet PLS ergänzend zur UDE 4.4.6 einen Universal Emulation Configurator (UEC) mit blockgrafischer Oberfläche an. Mit Hilfe des UEC lassen sich Messaufgaben besonders einfach definieren. Dabei werden bestimmte Zustände im Target durch Signale beschrieben. Diese wiederum können Aktionen wie beispielsweise das Aufzeichnen von bestimmten internen Target-Werten auslösen oder eine zugrundeliegende Zustandsmaschine in einen neuen Zustand versetzen.

Bild 3: Für die GTM-Trace-Konfiguration bietet PLS eine eigene grafische Oberfläche. Da das Generic-Timer-Modul eine eigene Maschinensprache verwendet, verbirgt sich hier ein enormer Aufwand.

Bild 3: Für die GTM-Trace-Konfiguration bietet PLS eine eigene grafische Oberfläche. Da das Generic-Timer-Modul eine eigene Maschinensprache verwendet, verbirgt sich hier ein enormer Aufwand.PLS

Für das integrierte Generic-Timer-Module (GTM) ist der Trace beim Testen von essenzieller Bedeutung. Programmiert wird das GTM mit einem eigenen Maschinenbefehlssatz. Der UEC beinhaltet deshalb speziell für das GTM Blöcke für Code-, Daten- und Signal-Trace, um eine detaillierte Analyse des Laufzeitverhaltens für dieses leistungsfähige Modul zu ermöglichen (Bild 3).

Aurora für umfangreiche Trace-Daten

Während der Universal Emulation Configurator dem Anwender dabei hilft, mit den begrenzten Ressourcen des On-Chip-Emulationsspeichers möglichst effektiv umzugehen, bietet das implementierte Aurora-Interface parallel dazu die Möglichkeit, eine sehr große Menge an Trace-Daten extern aufzuzeichnen und einer statistischen Analyse des Programmablaufs zu unterziehen, beispielsweise Code Coverage und Profiling. Zur Aufzeichnung dient das Universal Access Device 3+ mit Aurora-Pod, während die Auswertung selbst durch die Universal Debug Engine erfolgt.

Die UDE kann auch einen Report generieren, der eine sichere Dokumentation und Wiederholbarkeit der Messungen garantiert. Die Anzeige der Codeabdeckung ist für die Ebenen Funktion, Zeilennummer im Quelltext und auch Maschinenbefehl möglich. Als Standard-Ausgabeformat nutzt die UDE HTML. Über ein Stylesheet kann man die Formatierung dabei einfach und ohne großen Aufwand an kundenspezifische Erfordernisse anpassen.

Früher anfangen

Die beschriebenen Funktionen der UDE 4.4.6 lassen erahnen, wie wichtig es heutzutage ist, Test- und Debug-Tools schon frühzeitig und optimal auf die funktionellen Möglichkeiten und die Leistungsfähigkeit der Hardware abzustimmen. In der Regel definiert sich die tatsächliche Debug-Fähigkeit hochkomplexer SoCs nicht dadurch, welche und wie viele Daten der Chip zur Verfügung stellt, sondern ob und wie schnell diese Daten vom Entwicklungswerkzeug verarbeitet werden können.