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
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.
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 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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.
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:
Die FuSa RTS-Dokumentation enthält wichtige Anweisungen zur Verwendung sowie wichtige Informationen über das Verhalten der FuSa C Library.