Verteiltes Debugging – SPY

Hintergrund

Der Einsatz klassischer Entwicklungswerkzeuge aus dem Embeddedbereich ist in redundanten Systemen nur eingeschränkt möglich, da die Fehlererkennungsmonitore in allen redundanten Einheiten auf gewollte (e.g. Breakpoints) oder ungewollte (e.g. Änderung des Zeitverhaltens) Einflüsse der Debuggingumgebung in einem Target reagieren.

SPY-Technologie

Der Aviotech SPY ist eine Debugging-Lösung für die Verwendung in verteilten Systemen mit zyklusorientierter Verarbeitung, im Speziellen für die Softwareintegration in redundanten Umgebungen. Die zentralen Merkmale sind:

  • Gemeinsame Zeitbasis im verteilten Netzwerk, auch zwischen nichtsynchronisierten Einheiten
  • Auf dieser Grundlage: (pseudo-)synchrones Echtzeitmonitoring und -Manipulation in mehreren Targets.
  • Möglichkeit zur Realisierung anwendungsspezifischer Debugging-Kommandos
  • Unterstützung für >50 CPUs
  • Unabhängigkeit des SPY-Protokolls von der eingesetzten Netzwerktechnologie, bspw. Ethernet, CAN, FlexRay, …
  • Graphische Oberfläche GVITE für Steuerung, Visualisierung, Logging
  • Komplette SPY-Funktionalität skriptbar und Echtzeit-ausführbar

Die SPY-Debugging-Lösung umfasst drei Bestandteile:

  • SPY-Server als Bestandteil jedes Targets im verteilten Netzwerk: Bedient die Monitoringanfragen und führt Manipulations- und sonstige Kommandos aus. Eine Referenzimplementierung in C liegt vor.
  • SPY-Client übernimmt die zentrale Kommunikation zu allen SPY-Servern. Der Client wird auf einem echtzeitfähigen Testsystem ausgeführt, wobei entweder ein dedizierter Kleinstrechner zum Einsatz kommt, oder die Integration in eine größere (e.g. HiL-) Hardware mit Restbussimulation möglich ist.
  • Host PC mit Vite-GUI: dient der Steuerung und Visualisierung des SPY-Debuggers

SPY Architecktur

GUI