Testen oder Nichttesten, das ist hier nicht die Frage…

Codeabdeckung, das Maß aller Dinge

Ohne alle Entscheidungszweige im Code vollständig zu durchlaufen (Codeabdeckungsanalyse), sind nicht alle möglichen Codefehler aufzufinden. CoreSight Micro Trace Buffer (MTB, implementiert auf Cortex-M0+) und die Embedded Trace Macrocell (ETM, implementiert auf Cortex M3, M4 und M7) liefern testIDEA sogenannte Trace-Daten zur Messung der Codeabdeckung. Mit dieser Metrik wird zudem sichergestellt, dass die definierten Tests auch tatsächliche alle Zweige und Entscheidungsbefehle ausführen und damit kein ‚toter‘ Code mit dem Produkt ausgeliefert wird. Codeabdeckung ist also auch ein Maß der Güte von Testfällen. ETM ist eine vollständige Programm-Trace-Lösung, die digitale I/O-Pins der MCUs für diesen Zweck benötigen (typischerweise fünf). Auf dem Cortex M7 kann dieses Modul auch für die Ausgabe von Data-Trace verwendet werden. Wenn diese Fähigkeit zusammen mit OBC Unit Testing in testIDEA genutzt wird, bekommt man den gesamten Codeabdeckungsgrad für die Tests. Damit ist gesichert, dass der Test auch die verborgenen Winkel des Codes untersucht hat. Der MTB liefert ebenfalls Programm-Trace, ist aber in seinem Umfang etwas begrenzt gegenüber ETM. Das liegt daran, dass die Trace-Daten in einem reservierten Bereich des SRAMs untergebracht werden und so die Länge der Aufzeichnung und die Größe des zur Verfügung stehenden SRAM für die Anwendung reduziert wird. Zum anderen werden aufgrund der Technologie des MTB die Trace-Daten nicht in Echtzeit von einem Debug-Tool ausgelesen. Trotzdem kann der MTB zur Messung von Codeabdeckung einzelner Funktionen eingesetzt werden. Da testIDEA auf das Testen von einzelnen Funktionen ausgerichtet ist, beschränkt sich der Bedarf an SRAM auf Stack und Heap während der Testausführung. Für den Schnelleinstieg ins Original Binary Code Testing bietet sich ein Arduino M0 Pro oder Arduino/Genuino Zero Board an, welche mit einem SAM D21 MCU ausgestattet sind. Diese Boards haben eine integrierte CMSIS-DAP-Debugschnittstelle und werden direkt von winIDEA Open (eine kostenlose Entwicklungsumgebung von iSystem) aus programmiert. Das unter 1) aufgeführte Projekt implementiert einen einfachen Regler für einen Ofen. Dieses enthält auch ein Beispiel für testIDEA, womit ein relativ einfacher Codefehler in dem Softwareregler aufgedeckt werden kann, bevor der Kunde den Fehler während der Inbetriebnahme findet. Mehr hierzu unter Link 2). Falls Sie gerade bei der Auswahl einer neuen MCU-Plattform sind, vergessen Sie nicht, dass Cortex-M nicht immer gleich Cortex-M ist. Die Technology von ARM bietet umfassende und leistungsfähige Debug- und Trace-Funktionen, aber nur solange die MCU-Hersteller diese auf dem jeweiligen Silizium auch umgesetzt haben. Treffen Sie rechtzeitig die richtige Produktentscheidung, damit Sie auch in aussichtlosen Situationen einen Plan-B zur Verfügung haben.

Seiten: 1 2Auf einer Seite lesen

iSYSTEM AG
www.isystem.com

Das könnte Sie auch Interessieren

Bild: PiBond Oy
Bild: PiBond Oy
PSI Institut und PiBond kooperieren

PSI Institut und PiBond kooperieren

PiBond, Hersteller von Materialien für die Halbleiterindustrie, hat mit dem Paul Scherrer Institut PSI, Forschungsinstitut für Natur- und Ingenieurwissenschaften in der Schweiz, eine Vereinbarung über Technologielizenzen und strategische Zusammenarbeit unterzeichnet, um die Entwicklung von lithografischen Werkstoffen der nächsten Generation sowie zukünftige Halbleiterinnovationen voranzutreiben.