Embedded & Mikroprozessoren Fehler finden leicht gemacht

04.06.2013

Herauszufinden, ob ein komplexes Problem durch einen Hardware- oder Software-Fehler verursacht wird, ist normalerweise der erste Schritt, um einen Fehler zu beheben. Die dazu benötigten Methoden erfordern ein dediziertes Hardware-Debuggen an den Grenzen zwischen dem Subsystem des CPU-Hard-Makros und der FPGA-Fabric.

Die Verbindung von ARM-Prozessoren und FPGAs bietet in der Entwicklung völlig neue Möglichkeiten - stellt den Entwickler aber gleichzeitig auch vor neue Debug- und Optimierungsaufgaben, die es in dieser Form bisher nicht gab. Für Software- und FPGA-Probleme gibt es eine breite Palette an Tools, mit denen sich sehr gute Ergebnisse erzielen lassen. Für die Integration von Software und Hardware, die sich aus der Verbindung von Prozessor und FPGA auf eine Chip ergibt, sind diese Tools aber weniger geeignet. Um die Software-Entwicklung für SoC-FPGAs von Altera effizient zu unterstützen, haben Altera und ARM bei der integrierten Debug-Logik und den Debug-Tools zusammengearbeitet. Das Ergebnis ist die Altera SoC Embedded Design Suite (EDS), die das ARM DS-5 Altera Edition Toolkit enthält. Diese FPGA-adaptive Debugging-Software ermöglicht Entwicklern den gleichzeitigen Einblick in den Prozessor und den FPGA-Teil des Bausteins. Damit wird die Debugging-Barriere zwischen dem integrierten Dual-Core-Prozessor und der FPGA-Fabric in den Altera SoCs beseitigt. Das Toolkit kombiniert den fortschrittlichsten Multicore-Debugger für die ARM- Architektur mit der Möglichkeit auf die Logik in dem FPGA zu adaptieren. Damit erhalten Embedded-Entwickler über das Standard DS-5-Interface volle Einsicht und Kontrolle über den gesamten Chip.

Cross-Trigger-Matrix

Die SoC-FPGAs von Altera sind mit der Debug- und Trace-Logik-Infrastruktur CoreSight von ARM ausgestattet, einschließlich der Cross-Trigger-Matrix, die die Eingangs- und Ausgangs-Trigger-Punkte aller Prozessoren und Trace-Makrozellen im Prozessor-Subsystem mit den Hardware-Triggerpunkten aus der FPGA-Fabric verbindet. Die Cross-Trigger-Matrix kann mit dem DS-5 Debugger einfach programmiert werden, um festzulegen, welcher Hardware-Block Trigger-Punkte erzeugt und welche Komponenten davon betroffen sind.Sobald ein kritischer Punkt in der Software lokalisiert ist, kann DS-5 benutzt werden, um die Trace-Makrozelle so zu konfigurieren, damit sie einen Trigger-Punkt bei diesem Befehl auslöst. Danach kann man den Logikanalysator SignalTap einsetzen, um das FPGA so zu konfigurieren, damit es die RTL-Signale rund um den hereinkommenden Trigger-Punkt erfasst.

Wechselwirkungen erkennen

Trotz der Mächtigkeit des Cross-Triggerings kann es nicht alle Anforderungen erfüllen. Die größte Einschränkung besteht darin, dass diese Methode nicht zum Suchen von Fehlern genutzt werden kann: Der Entwickler definiert ja nur eine Fehlerbedingung, um ein Problem zu beseitigen, er kann den Fehler selbst damit aber nicht finden. In den SoCs von Altera ist eine System-Trace-Makrozelle (STM) aus CoreSight implementiert. Sie macht eine Untersuchung von Hard- und Software möglich. Damit kann man die Software instrumentalisieren, um Character-Strings in die STM zu schreiben, wenn interessante Events passieren. Gleichzeitig kann man die Hardware dazu nutzen, um die STM dazu zu bringen, die RTL-Signale über einen gewissen Zeitraum zu überwachen. Jedes Mal, wenn eines dieser Hardware-Signale sich verändert oder jedes Mal, wenn die Software interessante Events entdeckt, erzeugt die STM Trace-Pakete und schickt sie zur Decodierung an den DS-5 Debugger. Wird eine System-Trace-Makrozelle zur Überwachung der Hardware-Signale genutzt, ergibt sich zusätzlich der Vorteil, dass dann alle Datenquellen über ein einziges DS-5 User-Interface dargestellt werden können. Das ist deutlich effizienter als kontinuierlich zwischen Software- und FPGA-Tools hin- und herzuwechseln.

Schneller entwickeln

Um die Entwicklung weiter zu erleichtern, bietet Altera das Cyclone V SoC Development Kit an. Das Kit verfügt über einen Cyclone V SX SoC mit einem Dual-Core-ARM-Cortex-A9-Prozessor mit 800 MHz, 110 K Logikelemente, Transceiver mit 3,125 GBit/s, PCI-Express-Unterstützung und DDR3-Speicher sowohl für das FPGA als auch den Prozessor über einen Speicher-Controller. Ein integrierter USB-Blaster unterstützt sowohl den FPGA- als auch den Prozessor-Download und ermöglicht das Debugging über eine einzige Probe. Über einen MICTOR-Steckverbinder können auch andere gängige Debugger wie Lauterbach TRACE32 und ARM DSTREAM angeschlossen werden. Das Kit beinhaltet umfangreichen Speicher, Peripherie und Schnittstellen sowie einen HSMC (High-Speed Mezzanine Connector). Über den HSMC können Tochterkarten für vielfältige Applikationen wie Motorsteuerungen, Fahrerassistenzsysteme oder Video-Überwachung angeschlossen werden. Zwei integrierte Ethernet-PHYs ermöglichen die Unterstützung für alle gängigen Industrienetzwerke wie EtherCAT, Profinet oder EtherNet/IP.

Bildergalerie

Verwandte Artikel