Jump to content

SafeRTOS

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Andrew Longhurst (talk | contribs) at 16:13, 1 August 2012. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
SAFERTOS
DeveloperWITTENSTEIN high integrity systems
OS familyReal-time operating systems
Working stateCurrent
Source modelOpen source
Marketing targetEmbedded devices
PlatformsSame as FreeRTOS
Kernel typeMicrokernel
LicenseProprietary
Official websitehttp://www.highintegritysystems.com/rtos/safertos/

SAFERTOS is an embedded real-time operating system designed to support 32-bit microcontrollers; developed in accordance with the requirements of IEC61508-3 SIL3 and independently certified by TÜV SÜD. [1]

Implementation

SAFERTOS is a extension to the FreeRTOS project, sharing common functionality but re-designed for use in safety critical applications.[2]


The development of SAFERTOS involved subjecting the FreeRTOS functional model to a full HAZOPS, where weaknesses within the functional model and API were identified and resolved, resulting in a set of Safety Requirements. The Functional and Safety requirements sets that define SAFERTOS were then put through a full IEC 61508 SIL 3 development life cycle, the highest possible for a software only component.[3]


SAFERTOS has a compact footprint, similar to that of FreeRTOS, however as SAFERTOS is designed to be safe it therefore sacrifices size to add in error checking. SAFERTOS typically requires 8-15K of ROM, 500 bytes of RAM and an additional 400 bytes of RAM per task.


Design Assurance Pack

SAFERTOS is accompanied by a Design Assurance Pack (DAP) which contains every design artefact produced during the full development life cycle, The Design Assurance Pack supports the product certification process.


Key features

Safety Features

  • IEC 61508-3 SIL3 certified.
  • Supports domain adaptations of IEC 61508-3.
  • IEC 62304 Class C compliant.[4]
  • Full Design Assurance Pack


Technical Features

  • Any number of tasks can be created - system RAM constraints are the limiting factor.
  • Each task is assigned a priority - any number of priorities can be used.
  • Any number of tasks can share the same priority - allowing for maximum application design flexibility.
  • The highest priority task that is able to execute (i.e. that is not blocked or suspended) will be the task selected by the scheduler to execute.
  • Supports time sliced round robin scheduling for tasks of equal priority.
  • Queues can be used to send data between tasks, and to send data between tasks and interrupt service routines.
  • Binary semaphores and counting semaphores make use of the queue primitive – ensuring code size is kept to a minimum.
  • Tasks can block for a fixed period.
  • Tasks can block to wait for a specified time.
  • Tasks can block with a specified timeout period to wait for events.
  • FPU support.
  • Definition and manipulation of MPU regions on a per task basis.
  • Run time statistics.


Supported architectures

See also


References



Category:Real-time operating systems Category:Embedded operating systems Category:Microkernel-based operating systems