Suchen

Rasch aufgebaut: Software-Testumgebung für Mikrocontroller

Seite: 2/3

Firmen zum Thema

Nachverfolgen des ausgeführten Codes

Systemtest: Die Schnittstellen und Werkzeuge, die zum Testen eines eingebetteten Systems erforderlich sind, umfassen einen Debugger, einen Kommunikationskonverter, einen Logikanalysator und einen Analog/Digital-Wandler.
Systemtest: Die Schnittstellen und Werkzeuge, die zum Testen eines eingebetteten Systems erforderlich sind, umfassen einen Debugger, einen Kommunikationskonverter, einen Logikanalysator und einen Analog/Digital-Wandler.
(Bild: Beningo Embedded Group)

J-Trace verfolgt Anweisungen mithilfe des Embedded-Trace-Macrocell-Ports des Mikrocontrollers. Damit kann J-Trace jeden einzelnen im Prozessor ausgeführten Befehl und den exakten Pfad des Codes „sehen“.

Mithilfe dieser Analyse in der Testumgebung kann bestimmt werden, ob die Testfälle 100% des Codes abdecken. Wenn der Test weniger als 100% des Codes abdeckt, kann mithilfe eines kostenlosen Hilfsprogramms wie Ozone ermittelt werden, welche Codezeilen ausgeführt wurden und welche nicht. Basierend auf diesem Ergebnis können dann neue Testfälle hinzukommen, die dafür sorgen, dass die fehlenden Codezeilen ausgeführt werden.

Steuerung und Kontrolle des Embedded-Systems

Jedes Embedded-System hat unterschiedliche Anforderungen bezüglich der Interaktion mit seiner Umgebung. Manche Systeme kommunizieren möglicherweise über einen einfachen UART (Universal Asynchronous Receiver/Transmitter – Universeller asynchroner Empfänger/Sender), andere dagegen über CAN oder TCP/IP. Für eine erfolgreiche Testumgebung, die mit dem System kommuniziert und es auch steuern kann, ist zusätzliche Kommunikationshardware und -software erforderlich.

In Embedded-Systemen werden sehr viele Kommunikationsschnittstellen eingesetzt, aber ein UART wird sicher häufiger als andere verwendet. Entwickler von Embedded-Software setzen den UART häufig ein, und die Verwendung dieser Schnittstelle für die Testumgebung ist aus mehreren Gründen wichtig:

  • Für Debug-Informationen wie ausgegebene Meldungen
  • Steuerung des Geräts
  • Überwachung der internen Kommunikation zwischen mehreren Bausteinen
  • Benutzerfreundlichkeit

Ein gutes universelles UART-Werkzeug, das jeder Entwickler in der Werkstatt zur Hand haben sollte, ist das FT232R-USB-zu-UART-Entwicklungsboard BOB-12731 von SparkFun Electronics. Kostengünstige Boards wie diese können leicht an ein beliebiges Embedded-System angeschlossen werden. Sie werden vom PC als einfacher Kommunikationsanschluss erkannt und machen daher spezielle Treiber oder Software entbehrlich.

Überprüfung jedes einzelnen Logikzustands

Zum vollständigen Test eines Embedded-Systems muss ein Entwickler die interne Funktion des Mikrocontrollers und die von ihm generierte externe Logik verifizieren. Bei dieser Logik kann es sich um einfache Eingangs- und Ausgangszustände sowie um Kommunikation auf niedriger Ebene wie I²C oder SPI handeln.

Die Überwachung von Eingangs- und Ausgangszuständen und der Kommunikation auf niedriger Ebene kann aufwendig sein, wenn dazu ADC- und DAC-Boards (ADC: Analog/Digital-Wandler, DAC: Digital/Analog-Wandler) verwendet werden. Aber es gibt einige Tricks, mit denen die Kosten für die Überwachung dieser Signale gesenkt und die Testmöglichkeiten verbessert werden können.

Der erste besteht darin, die Pins des Mikrocontrollers über ein Entwicklungsboard für den Mikrocontroller im System zu überwachen. Wenn beispielsweise ein Mikrocontroller STM32F767 oder STM32L4 von STMicroelectronics zum Einsatz kommt, wird zunächst ein Nucleo-Board STM32F767 oder ein Nucleo-Board STM32L476RGT6 beschafft.

Dann werden die einzelnen I/O-Pins mithilfe der Anschlussleisten direkt mit den entsprechenden Pins auf dem System verbunden. Da die Low-Level-Treiber für den Mikrocontroller bereits entwickelt sind, können diese leicht angepasst werden, sodass sie ihre Eingangs- und Ausgangszustände überwachen.

Dann könnte etwas Code hinzugefügt werden, z. B. ein USB-Treiber, sodass das Entwicklungsboard direkt in die zu testende Host-Maschine eingesteckt werden kann.

Anstelle eines Entwicklungsboards könnte für die Testumgebung auch ein Logiktester wie der Logic Pro 8 (ebenfalls von SparkFun) verwendet werden. Diese Logikanalysatoren sind multifunktional, indem jeder Eingang mittels Software in die überwachte Größe gewandelt werden kann.

Artikelfiles und Artikellinks

(ID:45070678)