Statische Codeanalyse
Das Wichtigste auf einen Blick
Bei statische Codeanalyse werden Regelverletzungen und mögliche Laufzeitfehler (RTE) im Quellcode gesucht. Sie ist besonders bei komplexer Logik hilfreich.
Statische Codeanalyse ist ein unverzichtbares Werkzeug, das hilft, Fehler in der Firmware zu reduzieren.
Mark Kingston, Embedded Software Specialist, Hitex
Produkt
Bei dem Produkt handelt es sich um die Firmware eines universellen Produktionsprogrammierers von Hitex namens SPEED FLASH, der für die End-of-Line-Programmierung von Mikrocontrollern und Sensoren verwendet wird. SPEED FLASH enthält zwei Mikrocontroller der XMC 4700-Familie von Infineon, auf denen die jeweilige Firmware läuft. Die Firmware ist in der Programmiersprache C geschrieben, nur ein sehr kleiner Teil ist in Assembler. Insgesamt umfasst die Firmware ca. 15.000 Codezeilen (LOC). Die Firmware wird mit dem Entwicklungskit MDK-ARM Version 5 von ARM/Keil kompiliert.
Anforderungen
Obwohl nicht sicherheitskritisch im engeren Sinne, muss der Produktionsprogrammierer rund um die Uhr (24/7) arbeiten und mehrere Mikrocontroller oder Sensoren parallel programmieren. Daher ist es wichtig, dass der Programmierer kontinuierlich und zuverlässig arbeitet. Andernfalls kommt es zu unerwarteten Produktionsausfällen und damit zu finanziellen Verlusten.
Statische Codeanalyse im Einsatz
Bei der statische Codeanalyse werden Regelverletzungen und mögliche Laufzeitfehler (RTE) im Quellcode gesucht. Dabei werden hauptsächlich Verletzungen der MISRA-C:2012 Regeln und typische Laufzeitfehler wie NULL-Zeiger-Dereferenzierung, Division durch Null und Zugriffe außerhalb der Grenzen erkannt. Dadurch wird undefiniertes oder unspezifiziertes Verhalten vermieden und die Verständlichkeit des Codes verbessert. Die MISRA-Regeln sollen den Programmierer vor den Gefahren der Programmiersprache C schützen und Missverständnisse über die Wirkung bestimmter C-Konstrukte vermeiden.
Es ist äußerst wichtig, Laufzeitfehler zu vermeiden, da sie in der Regel zum Absturz der Firmware führen und somit der 24/7-Verfügbarkeit widersprechen. Durch die Vermeidung von Laufzeitfehlern im Code kann das Risiko von Firmware-Abstürzen minimiert werden.
Fazit
Die statische Codeanalyse ist ein unverzichtbares Werkzeug zur Reduzierung von Fehlern in der Firmware. Sie ist besonders hilfreich bei komplexer Logik und die Möglichkeit, mehrere Dateien in die Analyse einzubeziehen, ist von unschätzbarem Wert. Wenn Sie an statischer Codeanalyse interessiert sind, kontaktieren Sie uns bitte.