Building a safe and secure embedded world

Runtime-System Funktionale Sicherheit

Runtime-System für Anwendungen der funktionalen Sicherheit

Arm FuSa RTS ist ein komplettes Paket an Embedded-Softwarekomponenten, die für den Einsatz in sicherheitskritischen Anwendungen wie Automobil-, Medizin- und Industriesystemen geeignet sind. Mit FuSa RTS erhalten Entwickler ein robustes Echtzeit-Betriebssystem (RTOS), eine unabhängige Prozessor-Abstraktionsschicht und eine verifizierte C-Bibliothek, die von Arm-Architektur-Experten für Cortex-M-Prozessoren hochgradig optimiert sind.

Der sicherheitsqualifizierte Arm C/C++ Compiler, die Arm Keil MDK Entwicklungswerkzeuge und die FuSa RTS Komponenten sind nativ integriert und vereinfachen die Systemdesign-, Entwicklungs-, Validierungs- und Zertifizierungsprozesse für Sicherheitsanwendungen erheblich.

Unterstützte Safety Normen:

Arm FuSa RTS ist für folgende Normen zertifiziert:

  • Automotive:   ISO26262, ASIL D
  • Industrie:       IEC61508, SIL 3
  • Eisenbahn:        EN50128,  SIL 4
  • Medizintechnik: IEC62304, Class C

Die Sicherheitskonformität von FuSa RTS wird durch das TÜV Süd Zertifikat bestätigt.

Unterstütze Mikrocontroller

FuSa RTS nutzt vollständig die erweiterten Hardwarefunktionen, die Arm für seine Prozessoren spezifiziert. Es unterstützt Geräte mit den folgenden Arm Cortex-M Kernen:

  • Cortex-M0/M0+
  • Cortex-M3
  • Cortex-M4
  • Cortex-M7

 

Übersicht: Arm FuSa RTS Komponenten

  • Functional Safety RTX RTOS (FuSa RTX RTOS):
    deterministisches Echtzeit-Betriebssystem für Arm Cortex-M Prozessoren
  • Functional Safety Event Recorder (FuSa Event Recorder)
    implementiert Funktionen zur einfachen Aufzeichnung von Ereignissen und zur Erfassung von Ausführungsstatistiken im Anwendungscode
  • Functional Safety CMSIS-Core (FuSa CMSIS-Core):
    validierte herstellerunabhängige Softwareschnittstelle zu den Prozessorressourcen
  • Functional Safety C Bilbiothek (FuSa C Library):
    eine Teilmenge der Funktionen der C-Bibliothek, die für die Entwicklung sicherheitskritischer Embedded-Anwendungen geeignet sind

 

RTX RTOS für sicherheitskritische Anwendungen

Der Einsatz eines Echtzeitbetriebssystems (RTOS) in einem sicherheitskritischen System erfordert, dass auch die RTOS-Komponente einer strengen Überprüfung unterzogen wird. In den Fällen, in denen eine behördliche Zertifizierung vorgeschrieben ist, bedeutet dies auch spezifische Dokumentations- und Prüfverfahren für die angestrebten Sicherheitsnormen. Um die Produktsicherheitszertifizierung zu ermöglichen und zu rationalisieren, bietet Arm FuSa RTX RTOS als Teil des FuSa RTS-Pakets an, das für den Einsatz in Automobil-, Industrie-, Bahn- und medizinischen Anwendungen geeignet ist.

FuSa RTX RTOS

FuSa RTX RTOS ist ein deterministisches Echtzeit-Betriebssystem (RTOS), das mehrere Anwendungs-Threads mit prioritätsbasierter, präventiver Planung zuverlässig verwaltet. FuSa RTX RTOS bietet alle Dienste, die in komplexen Echtzeitanwendungen benötigt werden, wie Threads, Timer, Speicher- und Objektmanagement, Nachrichtenaustausch und andere. Der RTX-Kernel ist hochgradig für die Cortex-M-Architektur optimiert und verfügt über mehrere Bestimmungen, die die Zuverlässigkeit einer Embedded-Anwendung natürlich verbessern.

 

Streng validierter Code

FuSa RTX RTOS ist in C mit C99-Spracherweiterungen geschrieben, wobei die MISRA C:2012-Richtlinien angewendet werden. Der FuSa RTX-Code wurde einer strengen Sicherheitsanalyse und strengen Tests unterzogen. Es ist für den Einsatz in Anwendungen mit den anspruchsvollsten Sicherheitsintegritätsstufen (SIL) zugelassen. Die Liste der geltenden Sicherheitsnormen finden Sie oben.

Entwickelt für eine effiziente technische Umsetzung

FuSa RTX RTOS ist für einen geringen Speicherbedarf ausgelegt, d.h. es benötigt minimal viel Systemspeicher, ab 5 KB ROM. Darüber hinaus unterstützt es den Low-Power-Modus, d.h. es verfügt über einen "tick-less" Betriebsmodus für Low-Power-Geräte.

Einfach zu konfigurieren und zu bedienen

FuSa RTX RTOS wird als CMSIS-Komponente bereitgestellt und kann einfach in einem µVision Run-Time Environment Dialog verwaltet werden. Darüber hinaus gibt es die Unterstützung des Konfigurationsassistenten: FuSa RTX RTOS stellt eine Reihe von Konfigurationsparametern für den Kernelbetrieb sowie für die RTX-Objekte wie Threads, Mutex und Semaphoren zur Verfügung. Die integrierte Unterstützung des MDK-Konfigurationsassistenten macht die Parametereinstellungen übersichtlich und intuitiv.

Zuverlässige Ausführung

FuSa RTX RTOS verwendet den LDEX/STEX-Befehl, der auf den meisten Cortex-M-Prozessoren verfügbar ist. Dadurch werden Benutzer-Interrupts nie deaktiviert. Dies führt zu einer zeitdeterministischen Ausführung von Interrupts.

Sicherer Betrieb

FuSa RTX RTOS arbeitet mit getrennten Stacks für ISR/RTOS und Threads: Der RTOS-Kernel führt im Handlermodus mit von User-Threads getrennten Stacks aus, was unerwartete Stapellasten vermeidet. Zusätzlich implementiert FuSa RTX RTOS eine Software-Stapelüberlaufprüfung: Dadurch werden Stapelüberschreitungen erkannt. Objektbezeichner werden zur Laufzeit auf Typunterschiede überprüft und sind durch die Benutzeranwendung vor unbeabsichtigten Zugriffen geschützt.

Flexible Speicherverwaltung

Die objektspezifischen Speicherpools gewährleisten dedizierte Speicherblöcke fester Größe für jeden Objekttyp, die eine Speicherfragmentierung während der Laufzeit vermeiden und die Objekterstellung und -vernichtung deterministisch machen. Die Benutzeranwendung kann sich auf statischen Speicher für Kernelobjekte verlassen, was garantiert, dass das RTOS-System während der Laufzeit nie aus dem Speicher laufen kann.

RTOS-fähiges Debugging

Alle wichtigen internen FuSa RTX RTOS-Ereignisse können mit dem MDK Event Recorder und dem Systemanalysator protokolliert und analysiert werden. Alternativ können auch Tools von Drittanbietern wie Percepio's Tracelyzer verwendet werden. Spezielle Bestimmungen in FuSa RTX RTOS ermöglichen es dem MDK-Debugger, während der Laufzeit den aktuellen und den maximalen Stackverbrauch für jeden Thread zu bestimmen. Der eingebaute Mechanismus hilft bei der Analyse der maximalen Speichernutzung für jeden RTX-Objekttyp.

 

 

Functional Safety Event Recorder

Der FuSa Event Recorder stellt eine API (Funktionsaufrufe) für Event-Kommentare im Anwendungscode zur Verfügung.  Diese Funktionen zeichnen Ereignisse sowie Zeitstempel und Zusatzinformationen auf.  Die Daten werden im Ereignispuffer im RAM der Zielhardware gespeichert.  Der µVision Debugger liest den Inhalt des Ereignispuffers und zeigt ihn im Fenster Event Recorder an.  Die grafische Darstellung im Zeitverlauf ist im Fenster Systemanalysator verfügbar.  Andere Zeit- und Leistungsdaten können im Fenster Event Statistics beobachtet werden.

 

Vorteile des Event Recorders

  • Sichtbarkeit der dynamischen Ausführung einer Anwendung bei geringen (Speicher-)Kosten.
  • Das Hinzufügen von RTOS-Awareness zu einem Entwicklungswerkzeug erfordert keine komplexe DLL-Programmierung.
  • Für Arm Cortex-M3/M4/M7/M33 prozessorbasierte Geräte deaktivieren die Funktionen des Event Recorders keine Interrupts.
  • Hinzufügen von printf-Retargeting für Geräte ohne ITM, wie z.B. Arm Cortex-M0/M0+/M0+/M23.
  • Schnelle zeitdeterministische Ausführung von Event-Recorder-Funktionen mit minimalem Code- und Timing-Overhead.
  • Es ist kein Debuggen oder Release-Build erforderlich, da die Ereignisbeschreibungen im Produktionscode verbleiben können.
  • Das Speichern der Ereignisdaten im lokalen Speicher sorgt für eine schnelle Aufzeichnung.
  • Das Sammeln der Daten aus dem On-Chip-Speicher erfolgt mit einfachen Lesebefehlen. Diese Befehle funktionieren auf allen Cortex-M-Prozessor-basierten Geräten und erfordern nur JTAG- oder SWD-Konnektivität zum Debug-Adapter.
  • Die Verwendung des DWT Cycle Count Registers zur Erstellung von Zeitstempeln reduziert den Code Overhead (verfügbar auf Arm Cortex-M3/M4/M7/M33).

 

Functional Safety CMSIS-Kern

Der FuSa CMSIS-Core (Cortex-M) implementiert das grundlegende Laufzeitsystem für ein Cortex-M-Gerät und ermöglicht dem Benutzer den Zugriff auf den Prozessorkern und die Geräteperipherie. Im Detail definiert sie:

  • Hardware Abstraction Layer (HAL) für Cortex-M-Prozessorregister mit standardisierten Definitionen für die Register SysTick, NVIC, System Control Block, MPU-Register, FPU-Register und Kernzugriffsfunktionen.
  • System-Exception-Namen zur Schnittstelle zu System-Exceptions, ohne Kompatibilitätsprobleme zu haben.
  • Methoden zur Organisation von Headerdateien, die es einfach machen, neue Cortex-M-M-Mikrocontroller-Produkte zu erlernen und die Softwareportierbarkeit zu verbessern. Dazu gehören auch Namenskonventionen für gerätespezifische Interrupts.
  • Methoden zur Systeminitialisierung, die von jedem MCU-Anbieter verwendet werden. Beispielsweise ist die standardisierte SystemInit()-Funktion unerlässlich für die Konfiguration des Taktsystems des Gerätes.
  • Eigene Funktionen zur Generierung von CPU-Anweisungen, die von Standard-C-Funktionen nicht unterstützt werden.
  • Eine Variable zum Bestimmen der Systemtaktfrequenz, die die Einrichtung des SysTick-Timers vereinfacht.

 

Arm Functional Safety C Library

Die Arm Bibliothek implementiert eine eingeschränkte Teilmenge von Funktionen, die im Sprachstandard ISO C99 C spezifiziert sind, und enthält Anwendungsrichtlinien und Beispiele, wie man effektiv damit arbeitet.

Arm Runtime C-Bibliotheken

Die Runtime Arm C-Bibliothek besteht aus allen Funktionen, die durch den Bibliotheksstandard ISO C99 definiert sind. Es ermöglicht dem Benutzer, diese Funktionen in der eigenen Anwendung neu zu definieren. Und es enthält auch Funktionen, die implizit vom Arm Compiler und den Arm-Erweiterungen aufgerufen werden, die nicht durch den ISO C-Bibliotheksstandard definiert sind, sondern in der Bibliothek enthalten sind.

Arm Funktionale Sicherheit C-Bibliothek

Die FuSa C Library bietet eine begrenzte Teilmenge der C Library, die für die Entwicklung sicherheitskritischer Embedded-Anwendungen auf Armarchitektur-konformen Geräten geeignet ist.

Konkret bietet es folgendes:

  • Eine Teilmenge der in der ISO C-Sprachspezifikation definierten Funktionen
  • Die Runtime Application Binary Interface (ABI) für die Arm-Architektur
  • Hilfsfunktionen

Die FuSa RTS-Dokumentation enthält wichtige Anweisungen zur Verwendung sowie wichtige Informationen über das Verhalten der FuSa C Library.

 

SuchformularKontaktOnlineshop