AUTOSAR ISO-26262-konforme Komponenten ohne Laufzeitfehler
Die Einhaltung der Norm ISO 26262 zur funktionalen Sicherheit ist eine große Herausforderung für Steuergeräte-Entwickler. Wir verraten Ihnen, wie sich diese Aufgabe mit Polyspace einfacher bewältigen lässt.
Anbieter zum Thema

Die Automobilbranche stellt hohe Anforderungen an die funktionale Sicherheit von Software. Um zu garantieren, dass die Software der Norm entspricht, muss praktisch jede denkbare Variante getestet werden. AUTOSAR-Basissoftware wie EB tresos AutoCore bietet aber Tausende von möglichen Softwarekonfigurationen, die auf jeder derzeit eingesetzten Hardware verwendet werden können. Eine aktive Instrumentierung des Codes, beispielsweise um Arrayzugriffe oder ähnliche Laufzeitfehler abzusichern, ist nicht ausreichend, denn diese Methoden finden Fehler lediglich während der Ausführung von Tests. Die Konfigurationsvielfalt würde dazu aber eine unrealistisch große Anzahl an Testfällen nötig machen. Stattdessen nutzt Elektrobit das Testwerkzeug Polyspace zur Verifikation des Codes. Polyspace identifiziert Laufzeitfehler und fehlerfreie Operationen analytisch, ohne dass für diesen speziellen Zweck Testfälle entwickelt und ausgeführt werden müssen, um diese Fehler aufzudecken. Nachdem die Verifikation des Codes mit Polyspace zwei Monate lang bei Elektrobit durchgeführt wurde, ergab sich, dass 97% aller Operationen des Codes ohne Laufzeitfehler sind. So konnten sich Entwickler bei der weiteren Überprüfung der Komponenten durch Code-Inspektionen und Tests auf die verbleibenden 3% konzentrieren.
AUTOSAR ist der Nachfolger von OSEK
In vielerlei Hinsicht ist AUTOSAR der Nachfolger von OSEK, dem Echtzeitbetriebssystem, das jedes Jahr auf Millionen von Steuergeräten installiert wird. Daher muss EB tresos AutoCore mindestens so zuverlässig sein wie OSEK. Elektrobit stand vor der Herausforderung, dass EB tresos AutoCore wesentlich höheren Anforderungen genügen muss: Die Software muss die relevanten AUTOSAR-Standards und auch alle Konformitätsklassen unterstützen.
EB tresos AutoCore deckt nahezu alle AUTOSAR-Module ab
Das Bild zeigt die Architektur von AUTOSAR 3.x, wobei EB tresos AutoCore nahezu alle AUTOSAR-Module abdeckt. Die Basis-Software besteht aus ca. 100.000 Codezeilen. Darüber hinaus ist EB tresos AutoCore mit über 15.000 Parametern hochgradig konfigurierbar, von denen viele nicht einfache Schalter sind, sondern Wertebereiche umfassen.
Laufzeitfehler in Software mit derartig vielen Konfigurationsparametern zu identifizieren, ist aufwändig und eine schwierige Aufgabe. Dennoch ist eine Überprüfung für die Sicherheit des gesamten Systems unerlässlich. So kann beispielsweise die Dereferenzierung eines ungültigen Zeigers zum Anhalten des Steuergeräts führen und damit zu plötzlichem Beschleunigen, Abbremsen oder einem anderen unerwarteten Verhalten des Fahrzeuges.
Ehemals aufwändige Suche nach Laufzeitfehlern
Für die Suche nach Laufzeitfehlern wurden früher der Code instrumentiert sowie Modultests ausgeführt, bei denen die Embedded Software mehrere Tausend zuvor festgelegte FlexRay- oder CAN-Pakete verarbeitet hat. Selbst nach Tausenden von Tests zur Bereichsprüfung auf Dutzenden unterschiedlicher Hardwarearchitekturen war jedoch nicht garantiert, dass alle Fehler gefunden wurden. Es war einfach nicht sichergestellt, dass die gesendeten Testpakete alle möglichen Laufzeitfehler im Code hervorrufen würden. Außerdem konnte durch zu viel Instrumentierung die Ausführung des Codes verlangsamt werden – mit dem Risiko, dass die Software in Echtzeit eintreffende Pakete verpasst.
Verifikation des Codes ohne Instrumentierung
Für die Verifikation des Codes mit Polyspace ist keine Instrumentierung erforderlich. Zudem entspricht die Analyse einem vollständigen Test, und nicht nur einem, der in bestimmten Szenarien nach Laufzeitfehlern sucht. Für jede Anweisung analysiert Polyspace das Verhalten unter Berücksichtigung aller möglichen Werte unter Einbezug aller Variablen und Parameter von EB tresos AutoCore.
Einhaltung der Norm ISO 26262 und weiterer Standards
Zur Einhaltung der Norm ISO 26262 zur funktionalen Sicherheit von Straßenfahrzeugen muss belegt werden, dass der Entwurf den Sicherheitsanforderungen entspricht, dass die Architektur die Sicherheitsanforderungen erfüllt, dass die Designs der Architektur entsprechen und dass die Architektur korrekt implementiert ist. Der Einsatz von Polyspace zur Code-Verifikation ist besonders in der zumeist zeitaufwändigen dritten Phase hilfreich.
Schnelle Prüfung mit Polyspace zur Code-Verifikation
Alle sicherheitsrelevanten Funktionen in EB tresos AutoCore sind in Modulen zusammengefasst, die beispielsweise Speicherschutz oder End-to-End-Protection für über den Datenbus gesendete Nachrichten bieten. Der Code jedes Moduls muss gründlich geprüft werden, um Implementierungsprobleme zu identifizieren.
Unterschiedliche Farbmarkierung von Code mit und ohne Laufzeitfehler
Die Anwendung von Polyspace zur Code-Verifikation verkürzt die für die Prüfung erforderliche Zeit, da Code ohne Laufzeitfehler grün und Code mit möglichen Fehlern orange markiert werden.
Wenn ein EB tresos AutoCore-Modul eine orangefarbene Codezeile aufweist, während alle anderen Zeilen grün sind, weiß man genau, auf welchen Bereich man sich konzentrieren muss. So lässt sich der Review-Aufwand für den fehlerfreien Code vermeiden.
AUTOSAR und ISO 26262 unter einem Hut
Darüber hinaus muss der Code nicht nur sowohl dem AUTOSAR-Standard als auch der Norm ISO 26262 entsprechen, sondern vielmaher auch den Entwicklungsrichtlinien nach MISRA C. Eine Analyse des Codes mittels Polyspace kann MISRA C Regelverstöße automatisiert erkennen, sodass die Anzahl der für die statische und dynamische Codeverifizierung verwendeten Tools reduziert werden kann.
Vorsicht, wenn mehrere Threads gleichzeitig zugreifen
Einige Konfigurationen von EB tresos AutoCore beinhalten globale Variablen, die von mehreren Tasks benutzt werden können (shared data). Der gleichzeitige Zugriff auf diese Variablen durch mehrere Threads kann ein unvorhersehbares Verhalten des Steuergeräts verursachen. Standardmäßig wird das Problem dadurch gelöst, dass für die Variablen kritische Bereiche und Sperren (engl. Locks) implementiert werden, damit nur jeweils eine Task auf sie zugreifen kann. Dieser Ansatz ist zwar am sichersten, jedoch nicht immer am effizientesten. Die übermäßige Nutzung kritischer Bereiche kann die Systemleistung negativ beeinflussen, da Interrupts während der Ausführung der einzelnen kritischen Bereiche vorübergehend deaktiviert werden müssen.
Gemeinsam genutzte Variablen müssen identifiziert werden
Um solche Leistungseinbußen des Systems zu vermeiden, müssen diejenigen gemeinsam genutzte Variablen identifiziert werden, für die kritische Bereiche und Sperren erforderlich sind. Bei kleinen Modulen ist dies nicht besonders schwierig, bei einem vollständigen System ist es jedoch komplizierter. Für diese Analyse wird Polyspace eingesetzt; damit lässt sich ermitteln, ob die Sperren ordnungsgemäß konfiguriert sind. So wurden bei der Analyse von EB tresos AutoCore-Code Engpässe, die die Systemleistung beeinträchtigt haben, gefunden und entfernt.
Keine Laufzeitfehler dank Polyspace zur Code-Verifikation
EB tresos AutoCore wird derzeit in der Produktion eingesetzt, und die Anzahl der aktiven AUTOSAR-Projekte für Elektrobit steigt stetig. Darunter ist auch ein Projekt eines Fahrerassistenzsystems für einen führenden Automobilhersteller in Europa.
Ausgelieferte Software ist frei von bestimmten Laufzeitfehlern
Mit den Polyspace-Werkzeugen zur Code-Verifikation ist es Elektrobit möglich, zu belegen, dass die ausgelieferte Software frei von bestimmten Laufzeitfehlern ist. Darüber hinaus – was noch wesentlich wichtiger ist – kann dies schneller, gründlicher und mit weniger manuellem Aufwand erfolgen als es bisher möglich war.
* * Alexander Much, Quality Management, ECU development, Elektrobit Automotive GmbH in Erlangen.
(ID:24919320)