Suchen

Entwicklung im System

ARM-Toolchain sorgt für die Einhaltung funktionaler Sicherheit

Seite: 3/3

Firmen zum Thema

Test der Tool-Ausgabe mittels Code-Coverage-Analyse

Beste Praktiken legen nahe, dass eine Code-Coverage-Analyse sicherstellt, dass alle Code-Pfade während des Tests ausgeführt werden. Die Code-Coverage-Analyse ist ein Laufzeittest, der einen Bericht erstellt, in dem die ausgeführten und nicht ausgeführten Code-Zeilen dargestellt sind. Der Anwender kann dann sein Testpaket anwenden, um zu gewährleisten, dass eine 100prozentige Abdeckung vorliegt. So verringert sich die Wahrscheinlichkeit unzureichend getesteter Software.

Zu einer typischen Code-Coverage-Analyse zählt die Instrumentierung des Quellcodes, sodass die Software selbst berichtet, welche Code-Pfade ausgeführt wurden. Dies lässt sich zwar mit einem Instrumentierungs-Compiler effektiv und einfach einfügen, ändert jedoch das Programm, das sich im Test befindet.

Ein alternativer Ansatz ist ein Hardware-Trace, bei dem das unveränderte Programm auf dem Target läuft und Trace Probes den Zustand des Programms während der Ausführung verfolgen.

Die ARM-Architektur enthält die Embedded Trace Macrocell (ETM), über die sich alle ausgeführten Befehle verfolgen lassen. Mit diesen Daten lässt ein genaues Profil des ausgeführten und nicht ausgeführten Codes erstellen.

Das Keil Microcontroller Development Kit (MDK) für ARM enthält Code Coverage Tools auf Basis eines Echtzeit-Streaming ETM Trace. Diese Streaming-Technik spart erheblich Zeit und Aufwand, indem sich das Zusammenfügen mehrerer Trace Runs erübrigt, um die Code-Coverage-Profile zu vervollständigen.

Der Artikel erschien zuerst in der "Elektronik Praxis".

* Daniel Owens ist Produktmanager für den Bereich Compiler bei ARM.

(ID:43751225)