Funktionale Sicherheit verbessern Selbsttestbibliothek für ARM9

Michael Hillmann, Embedded Office: »Entwickler, die ARM9-Prozessoren einsetzen, können mit der Selbsttestbibliothek einfacher sicherheitskritische Applikationen realisieren und den Zertifizierungsprozess in erheblichem Maße reduzieren.«

Um die Entwicklung sicherheitskritischer Software zu vereinfachen, hat Embedded Office eine Softwarebibliothek mit den notwendigen »Selbsttests« für ARM9-Prozessoren programmiert und getestet.

Das Softwarepaket ist im Rahmen eines Kundenprojekts entstanden, das nach IEC61508 SIL3 zertifiziert werden soll, und nutzt die »IAR Embedded Workbench für ARM« als Entwicklungsumgebung. Dies ist eine vom TÜV SÜD gemäß IEC 61508 und ISO 26262 zertifizierte Toolsuite für die Entwicklung von sicherheitsrelevanten Embedded-Anwendungen. »Immer mehr Embedded-Systeme stellen hohe Anforderungen hinsichtlich ihrer funktionalen Sicherheit, während gleichzeitig die Sicherheitsstandards eine entsprechende Qualifizierung der Tools erfordern. Dadurch steigt auch die Nachfrage nach vorqualifizierten Softwarekomponenten«, erklärt Michael Hillmann, Geschäftsführer von Embedded Office. »Unsere Lösung basiert auf vielen Jahren Erfahrung und der Unterstützung von Kunden in verschiedensten Industrien bei der Entwicklung von sicherheitsrelevanten Funktionen. Mit dem Einsatz unserer Softwarekomponenten können Unternehmen ihren Zertifizierungsprozess vereinfachen, Zeit und Geld sparen und dabei sicher sein, dass ihr Investment über den gesamten Produktlebenszyklus hinweg geschützt ist.«

Die Softwarebibliothek ermöglicht es, dass sicherheitskritische Anwendungen auf dem ARM9-Mikrocontroller ablaufen. Sie enthält detaillierte Diagnosemethoden, die durch grundlegende Tests der Sicherheitstechnik die einwandfreie Funktion des Controllers gewährleisten. Diese so genannten Selbsttests dienen der Fehleraufdeckung und Fehlerbehebung. Dazu gehören Befehls- und Registertests der CPU, PLL-Clock-, Startup-RAM-, Online-RAM-, Software-Watchdog- und Flash-Tests.

Bei den CPU-Tests werden alle internen Einheiten der CPU (ALU, etc.) über repräsentative Maschinenbefehle und die Register über einen RAM-Test-Algorithmus getestet. Beim Startup-RAM-Test wird ein gegebener RAM-Bereich mit einem speziellen Algorithmus überprüft. Da der Test den Inhalt des RAMs zerstört, ist die Ausführung nur während des Systemstarts möglich. Der Online-RAM-Test untersucht einen gegebenen RAM-Bereich während des laufenden Systems. Damit lassen sich 100 Prozent des existierenden RAMs prüfen, während das System im operativen Zustand dieses RAM verwendet. Der Software-Watchdog ist für eine logische und zeitliche Programmablaufkontrolle zuständig. Damit können einzelne Softwarekomponenten definiert werden, die sich in einem gegebenen Zeitraum melden müssen. Die Reihenfolge der Meldungen wird überwacht und als Grundlage für die Ablaufkontrolle verwendet. Der Flash-Speicher kann über frei definierbare CRC32-Polynome geprüft werden. Selbst für sich langsam ändernde Signale/Variablen ist eine Umgebung integriert, welche den SEU-Schutz unterstützt.

»Der ANSI-C-Quell-Code der Bibliothek ist in einer objekt-orientierten Programmierweise entwickelt worden. Dabei wurde schon während des Designs auf eine maximale Testbarkeit geachtet«, führt Michael Hillmann weiter aus. »Die Kapselung der Daten und die Konfigurierbarkeit der Objekte ermöglichen dem Kunden im Projekteinsatz ein Höchstmaß an Flexibilität bei unveränderter Selbsttestkomponente. Dadurch lässt sich die Komponente relativ einfach in verschiedenen sicherheitskritischen Projekten einsetzen.«

Abgerundet wurde das Projekt durch die Dokumentation des Architektur- und Moduldesigns mit Hardware-spezifischen Kapiteln über den Integrationstestplan bis hin zu allen notwendigen Review-Checklisten und kompletter Traceability-Matrix.

»Im Rahmen des Projekts konnten wir unser Know-how bei der Erstellung zertifizierter Softwarearchitekturen einbringen. Letztendlich haben wir eine flexible Infrastruktur für Selbsttestkomponenten geschaffen, die wir auch an die Anforderungen anderer Kunden anpassen können«, so Michael Hillmann. »Entwickler, die ARM9-Prozessoren einsetzen, können mit der Selbsttestbibliothek einfacher sicherheitskritische Applikationen realisieren und den Zertifizierungsprozess in erheblichem Maße reduzieren.«