Der Blätterkatalog benötigt Javascript.
Bitte aktivieren Sie Javascript in Ihren Browser-Einstellungen.
The Blätterkatalog requires Javascript.
Please activate Javascript in your browser settings.
58 Elektronik 22 2025 EMBEDDED-SYSTEME zur Messung und Analyse der Codeabdeckung Bei Tracebasierten Codeabdeckungsmessungen wird die Code-Instrumentierung entweder komplett eliminiert oder zumindest stark reduziert Die Analyse der Codeabdeckung in TRACE32 weist gewisse Limits auf in einigen Fällen ist es nicht möglich Trace-Daten während der Tests vom Target abzurufen Durch die Kombination der Fähigkeiten der LDRA tool suite und der TRACE32-Tools benötigen Testingenieure weniger Buildund Testläufe für eine vollständige Codeabdeckungsmessung was in realen Beispielen bis zu 50 Prozent des Gesamtaufwands spart Tracebasierte Code abdeckungsmessung mit TRACE32 – Grundlagen und Vorteile Prozessor-Trace ist die Möglichkeit den gesamten Ausführungsablauf eines Prozessors aufzuzeichnen wenn eine Anwendung darin läuft Dies erfordert einen Chip der Trace-Unterstützung implementiert hat Die meisten SoCs Systemona-Chip und Mikrocontroller die in sicherheitsrelevanten Projekten eingesetzt werden verfügen über solch eine Trace-Funktionalität Bild 1 zeigt einen Chip mit einem Arm-Cortex-A-Core Es kann einen oder mehrere davon geben An ihm ist ein spezieller Block namens ETM angebracht der jede einzelne Verzweigung die ausgeführt wurde als einzelnes Bit kodiert und in einem Trace-Buffer speichert Dies geschieht bei jeder Verzweigung und es ist möglich jeden Datenzugriff aufzuzeichnen der von der CPU durchgeführt wird Dieser Bitstrom wird dann entweder in einem On-Chip-Trace-Puffer abgelegt der oft recht klein ist aber eine hohe Bandbreite hat oder er lässt sich über eine Trace-Schnittstelle aus dem Chip herausführen Dies kann entweder über eine parallele oder eine serielle Schnittstelle erfolgen Der Chip kann sogar eine funktionale Schnittstelle wie USB oder Ethernet verwenden Diese Daten lassen sich dann in Lauterbachs TRACE32-PowerTrace-Modul speichern das über mehrere Gigabyte Trace-Speicher verfügt Die Datenspeicherung im TRACE32-PowerTrace-Modul empfiehlt sich auch für die Aufzeichnung von Traces für Code-Coverage-Messungen weil der On-Chip-Trace-Puffer für größere Messungen zu klein ist Sobald all diese Informationen von der Trace-Schnittstelle gesammelt wurden ist es möglich die Codeabdeckung aus den Daten zu berechnen Bild 2 Bei traditionellen instrumentierten Code-Coverage-Ansätzen wird der Code mit einer speziellen Instrumentierung kompiliert Bei der tracebasierten Codeabdeckung dagegen ist im Allgemeinen keine Instrumentierung erforderlich Ingenieure kompilieren den Code einfach so wie sie es bei Produktions geräten tun würden Es gibt selbstredend ohne Instrumentierung keine wirkliche Zunahme der Codegröße Dies kann ein großer Vorteil sein besonders bei begrenzten Flash-Speichergrößen Darüber hinaus und das kann noch wichtiger sein gibt es ohne Code-Instrumentierung logischerweise auch keinen Einfluss auf das Timing der Software Die Verwendung von Instrumentierung würde zusätzliche Speicheranweisungen erfordern was zusätzliche Ausführungszeit bedeuten könnte Mit der Tracebasierten Codeabdeckungsmessung verletzen die Entwickler daher keine Echtzeit-Anforderungen Ein weiterer Vorteil besteht darin dass man denselben Code in einem Simulator ohne Änderungen wie in echter Hardware ausführen kann Dies ist zum Beispiel für Unit-Tests sehr nützlich Nur für MC DC und die Branch-Abdeckungsmessung in Fällen wie bedingten Anweisungen die von Lauterbachs T32cast-Tool automatisch erkannt und behandelt werden ist ein sehr geringer Umfang an Instrumentierung erforderlich Bild 3 Beispiel für instrumentierten Code der von der LDRA tool suite generiert wurde Bild LDRA Bild 4 RBT und Rückverfolgbarkeit von Anforderungen unter Verwendung der LDRA tool suite Bild LDRA