Rasch aufgebaut: Software-Testumgebung für Mikrocontroller
Oft entfallen Tests von Mikrocontroller-Software, da es schwierig ist, moderne Testmethoden für Prozessoren auf Geräten mit eingeschränkten Ressourcen anzuwenden. Doch neues Debugging schafft Abhilfe.
Anbieter zum Thema

Einige neue fortschrittliche Debugging-Technologien in Verbindung mit traditionellen Designtechniken für Testumgebungen ermöglichen es Entwicklern von Embedded-Systemen jetzt, ihre Systemsoftware effektiver zu testen.
Eine moderne Testumgebung für Embedded-Systeme erfordert für einen vollständigen Test des Systems vier primäre Komponenten
- Einen Trace-fähigen Debugger
- Einen Kommunikationsadapter/Sniffer
- Einen Logikanalysator
- Einen Analog/Digital-Wandler (ADC)
Auf den ersten Blick sieht diese Abbildung wie eine herkömmliche Testumgebung für Embedded-Systeme aus. Aber die neuen Fähigkeiten sind einer neuen Form der Analyse der Vorgänge in einem Mikrocontroller zu verdanken, der sogenannten Tiefenanalyse (Deep Insight Analysis).
Software mittels Tiefenanalyse testen
Mittels Tiefenanalyse (Deep Insight Analysis) können Entwickler ihr System zur Laufzeit analysieren. Sie besteht aus drei Komponenten:
- Debuggen in Echtzeit-Betriebssystemen (RTOS)
- Laufzeitanalyse
- Profiling und Analyse der Code-Abdeckung
Entwickler setzen bei der Entwicklung ihrer Anwendungen grundlegende Debug-Techniken wie Haltepunkte ein. Doch das Testen nur mit Haltepunkten ist oberflächlich und macht die Vorgänge innerhalb des Mikrocontrollers nicht wirklich sichtbar. Die Tiefenanalyse geht über dieses einfache Testen und Debuggen hinaus, indem es tiefer in das Echtzeit-Betriebssystem, das Laufzeitverhalten, das Ausführungsprofil und die Code-Abdeckung eintaucht.
Ein Entwickler, der in einer Testumgebung die Tiefenanalyse nutzen möchte, benötigt professionelle Debug-Tools wie J-Trace von Segger Microcontroller Systems oder J-Link Ultra+. Bei J-Link Ultra+ werden Trace-Daten vom Debug-Modul über eine Standard-JTAG- oder -SWD-Schnittstelle abgerufen. Mithilfe dieser Informationen können dann verschiedene Analysen, z. B. Debuggen in Echtzeit-Betriebssystemen, durchgeführt werden.
Das Debuggen in Echtzeit-Betriebssystemen ermöglicht den Entwicklern, die Performance ihrer Tasks während der Ausführung der Testfälle zu überwachen. Der Entwickler erhält z. B. folgende Informationen:
- Maximale Stackbelegung
- Anzahl der ausgeführten Tasks
- Task-Status
Die Testumgebung kann durch die Verwendung des kostenlosen Hilfsprogramms SystemView von Segger oder des Tracealyzer von Percepio erweitert werden. Diese Tools ermöglichen den Entwicklern eine Laufzeitanalyse. So können sie visuell beobachten und analysieren, wie sich die Anwendung während der Ausführung der Testsuite verhält.
Die Laufzeitanalyse liefert eine Fülle von Informationen über das Verhalten einer Anwendung. Die Entwickler haben z. B. folgende Möglichkeiten:
- Nachverfolgen des Timings und der Reihenfolge von Ereignissen
- Ermitteln von maximalen, minimalen und durchschnittlichen Ausführungszeiten
- Visueller Einblick in die Ausführung von Tasks und den Task-Wechsel
- Überwachen der CPU-Last
- Analyse von Task-Statistiken
- Ermittlung von potenziellen Problemen wie Vertauschung von Prioritäten, Zeitverzögerungen und gegenseitige Blockierung von Tasks (Deadlock)
Doch das Debuggen in Echtzeit und eine Laufzeitanalyse sind möglicherweise nicht ausreichend. Oft verbergen sich Fehler in Code, der während eines Tests nie ausgeführt wird.
Artikelfiles und Artikellinks
(ID:45070678)