Das Laufzeitverhalten von Embedded-Software nachzuprüfen, ist schwierig. Es gibt zwar entsprechende Laufzeitanalyse-Tools, die aber nicht alle Eventualitäten abdecken können. Entscheidend ist also, eine für die jeweilige Anwendung bestmöglich geeignete Tool-Kombination zu finden.
Eingebettete Software ist häufig so komplex, dass ihr Laufzeitverhalten nur schwer nachzuverfolgen ist. Die gute Nachricht lautet, dass es inzwischen eine Vielzahl von Tools gibt, die Einblicke in das Laufzeitverhalten ermöglichen. Die weniger gute Nachricht ist, dass keines dieser Tools alle Perspektiven des Verhaltens abdecken kann – zumindest nicht ohne Kompromisse. Die zentrale Frage lautet deshalb: Wie können Anwender das passende Laufzeitanalyse-Tool wählen - unter Berücksichtigung der Einschränkungen ihrer Branche, des benötigten Einblicks und der Kompromisse?
Egal ob im streng regulierten Automotive-Bereich, in der Industrie oder in der Forschung: Am Ende stehen alle Entwicklungsteams für Embedded-Systeme vor derselben Aufgabe. Sie müssen die ursprüngliche Designabsicht mit dem realen Verhalten ihres Systems abgleichen, also das Laufzeitverhalten beobachten, validieren und bei Bedarf anpassen. Doch was genau meinen wir, wenn wir von »Laufzeitverhalten« sprechen? Je nach Perspektive geht es um den Systemstatus, um funktionale und zeitliche Abläufe oder um Variablenverläufe. Für jede dieser Perspektiven existieren spezialisierte Tools, die in ihrem Bereich stark, in anderen jedoch schwach sind. Das Ergebnis ist eine fragmentierte Tool-Landschaft.
Bevor wir uns diese Landschaft genauer ansehen, lohnt ein Schritt zurück: Wie haben sich Laufzeitanalyse-Tools im Laufe der Zeit und in verschiedenen Branchen entwickelt?
Früher fehlten Fähigkeiten, heute fehlt die Übersicht über diese Fähigkeiten. Die zentrale Herausforderung liegt also nicht mehr in der Verfügbarkeit, sondern in der Auswahl und Kombination der passenden Tools.
Nicht jedes Entwicklungsteam steht vor denselben Rahmenbedingungen. Je nach Branche unterscheiden sich die Anforderungen an Tools erheblich:
Compliance-geprägte Segmente (Automotive, Luft- und Raumfahrt, Medizintechnik, Militär): Hier gilt Sicherheit vor Flexibilität. Tools müssen zertifizierbar, auditierbar und absolut zuverlässig sein. Die technische Machbarkeit tritt hinter regulatorische Vorgaben zurück [15].
Weniger stark regulierte Segmente (Industrie, Konsumgüter): Kosten- und Zeiteffizienz dominieren. Entwickler nutzen pragmatische, oft leichte Tools – mit dem Risiko, dass fehlende Struktur bei wachsender Systemkomplexität zu Engpässen führt.
Unregulierte Segmente (Forschung und Entwicklung): Freiheit statt Vorschriften. Teams kombinieren vorhandene Tools oder entwickeln eigene Lösungen – oft als Vorläufer für den späteren industriellen Einsatz.
Es gibt kein universell »bestes« Tool. Ausschlaggebend ist, wie gut es zu den Rahmenbedingungen der jeweiligen Branche passt. Denn diese bestimmen oft nicht nur, was beobachtet werden soll, sondern auch, was erlaubt ist und was nachweisbar sein muss.
Heutzutage hängt der Erfolg weniger von der Leistungsfähigkeit einzelner Tools ab als davon, wie gut sie zum jeweiligen Anwendungskontext passen. Wer seine Anforderungen kennt, kann Tools gezielt auswählen, um die benötigte Perspektive auf das Laufzeitverhalten zu gewinnen. Beim Blick auf das Laufzeitverhalten unterscheiden wir vier Perspektiven:
Neben den gewonnenen Einsichten fließen auch die Kompromisse mit in die Bewertung:
Ein Beispiel: Hardware-Tracer liefern präzise Daten fast intrusionsfrei, erfordern aber einen hohen Konfigurationsaufwand. Einfache Methoden wie Printf-Logs sind schnell integriert, bieten aber nur eine oberflächliche und teils verzerrte Sicht.
Hardware-Instrumente (Oszilloskope, Logikanalysatoren): Sie sind der Standard für hochpräzise Signal- und Protokollanalysen - ideal, um Schnittstellen wie SPI oder UART zu prüfen und Timing im Nanosekundenbereich zu verifizieren. Allerdings bleibt der Blick auf die Pins beschränkt – interne Abläufe oder Variablen lassen sich so nicht erfassen. Für tieferes Systemverständnis reichen sie daher allein nicht aus.
»es:scope«-Plattform: Als softwarebasierte Lösung ermöglicht es es:scope, Variablenströme in Echtzeit zu beobachten und interaktiv zu verändern - ohne zusätzliche Hardware. Es bietet hohe Flexibilität und geringe Intrusion, konzentriert sich aber klar auf Variablenebene und ersetzt keine Tracing- oder Ablaufanalyse.
Die meisten Teams verfügen über Tools, um bestimmte Aspekte des Systemverhaltens zu erfassen. Allerdings bieten nur wenige Tools Einblicke über Grenzen hinweg, etwa zwischen Timing und Logik, Funktionsablauf und Variablenstatus sowie Systemverhalten und interner Kausalität. Es kommt nicht nur darauf an, was ein Tool leistet, sondern auch darauf, wie es dies tut und welche Kosten für Anschaffung, Einrichtung und Nutzung anfallen. Darüber hinaus sind die tatsächlichen Kosten nicht nur der Aufwand, sondern auch die Verzögerung beim Verständnis und die Zeit bis zur Erkenntnisgewinnung. Wenn Laufzeitanalyse in Echtzeit über mehrere Ebenen hinweg und oft vor Ort erfolgen muss, werden diese Kosten zu einem Engpass. Der Aufwand wird unvorhersehbar, und es kommt häufig zu Verzögerungen.
Deshalb ist es wichtig, die Tool-Landschaft zu verstehen: zu wissen, wo Tools funktionieren, wo sie an ihre Grenzen stoßen und welche Lücken in der Einsicht bleiben. Tabelle 1 zeigt die Stärken und Schwächen der Tool-Kategorien im Vergleich. Bewertet wurden die Perspektiven (Zeit, Logik, Variablen) und typische Kompromisse (Intrusion, Aufwand, Tiefe). Bild 1 zeigt die typischen Zugangswege der Tools zum Laufzeitverhalten. Diese reichen von direkten Debug- und Trace-Schnittstellen über Testpunkte bis hin zu Kommunikationsprotokollen.
Bei der Auswahl eines Laufzeitanalyse-Tools geht es selten um reine Leistungsfähigkeit, sondern um Passgenauigkeit zum jeweiligen Umfeld. Hilfreich ist dabei ein dreistufiger Ansatz:
Die Wahl des richtigen Tools ist vor allem eine strategische Abwägung. Je besser Kontext, Perspektive und Kompromisse zusammenpassen, desto schneller und verlässlicher lassen sich die Lücken zwischen Entwurf und realem Verhalten schließen. Denn in eingebetteten Systemen gilt: Nur was beobachtbar ist, lässt sich auch kontrollieren.
Literatur
[1] Intel, 08.09.2025. [Online]. Available: https://timeline.intel.com/1975/ the-ice-80.
[2] embedded.com, 25.07.2017. [Online]. Available: https://www. embedded.com/a-history-of- microprocessor-debug-1980-2016/ ?utm_source=chatgpt.com.
[3] D. D. G. et al.: Embedded System Design, in 978-1-4419-0503-1, Springer Science+Business Media, 2009, p. 263.
[4] C. G. Paulo Cappelletti: Flash Memories, Springer Science & Business Media, 1999, p. 2.
[5] I. C. Society: IEEE Std. 1149.1-1990, 1990.
[6] Microchip Technology Inc.: MPLAB - IDE, Simulator, Editor. 1998. [Online]. Available: https://isa.umh.es/micros/doc/pic/51025b.pdf?utm_source=chatgpt.com.
[7] S. &. B. M. &. A. J. &. R. K. Nabi: An Overview of Hardware-In-the-Loop Testing Systems at Visteon, 10.4271/2004-01-1240, 2004.
[8] CAN Calibration Protocol, ASAM, 18.02.1999. [Online]. Available: https://www.asam.net/standards/detail/mcd-1-ccp/.
[9] S. Ghose: General-Purpose Multicore Architectures. arXiv, Nr. https://doi.org/10.48550/arXiv.2408.12999, 2024
[10] G. C. Buttazzo, Hard Real-Time Computing Systems, Springer Science+Business Media, 2011
[11] Arm Limited: ARM CoreSight Architecture Specification v3.0, 2017.
[12] Arm Limited, https://developer.arm.com/, 2006. [Online]. Available: https://developer.arm.com/documentation/ihi0031/a/The-Serial-Wire-Debug- Port-SW-DP-.
[13] J-Link/J-Trace User‘s Guide, ARM Limited, 03 2010. [Online]. Available: https://www.keil.com/support/man/docs/jlink/default.htm#:~:text=March%202010:%20 Initial%20revision.
[14] Tracealyzer for FreeRTOS, Percepio, [Online]. Available: https://percepio.com/tracealyzer/freertostrace/ ?utm_source=chatgpt.com. [Zugriff am 08 09 2025].
[15] J. P. &. U. S. Jörg Brauer: Efficient and Trustworthy Tool Qualification for Model-Based Testing Tools, Testing Software and Systems. ICTSS 2012, 2012
[16] »About the TMC«, ARM Limited, 2010. [Online]. Available: https://developer.arm.com/documentation/ddi0461/b/Introduction/ About-the-TMC?lang=en. [Zugriff am 15.09.2025].