OSEK
OSEK (Offene Systeme und deren Schnittstellen für die Elektronik in Kraftfahrzeugen; English: "Open Systems and their Interfaces for the Electronics in Motor Vehicles") is a standards body that has produced specifications for an embedded operating system, a communications stack, and a network management protocol for automotive embedded systems. It has also produced other related specifications. OSEK was designed to provide a standard software architecture for the various electronic control units (ECUs) throughout a car.
OSEK was founded in 1993 by a German automotive company consortium (BMW, Robert Bosch GmbH, DaimlerChrysler, Opel, Siemens, and Volkswagen Group) and the University of Karlsruhe. In 1994, the French cars manufacturers Renault and PSA Peugeot Citroën, which had a similar project called VDX (Vehicle Distributed eXecutive), joined the consortium. Therefore, the official name is OSEK/VDX.
OSEK is an open standard, published by a consortium founded by the automobile industry. Some parts of OSEK are standardized in ISO 17356.
OSEKtime specifies a standard for optional time-triggered real-time operating systems. If used, OSEKtime triggered callbacks run with higher priority than OSEK tasks.
The AUTOSAR consortium reuses the OSEK specifications: the operating system is a backwards compatible superset of OSEK OS which also covers the functionality of OSEKtime, and the communication module is derived from OSEK COM.
The OSEK standard specifies interfaces to multitasking functions—generic I/O and peripheral access—and thus remains architecture dependent. OSEK systems are expected to run on chips without memory protection. Features of an OSEK implementation can be usually configured at compile-time. The number of application tasks, stacks, mutexes, etc. is statically configured; it is not possible to create more at run time. OSEK recognizes two types of tasks/threads/compliance levels: basic tasks and enhanced tasks. Basic tasks never block; they "run to completion" (coroutine). Enhanced tasks can sleep and block on event objects. The events can be triggered by other tasks (basic and enhanced) or interrupt routines. Only static priorities are allowed for tasks. First In First Out (FIFO) scheduling is used for tasks with equal priority. Deadlocks and priority inversion are prevented by priority ceiling (i.e. no priority inheritance). The specification uses ISO/ANSI-C-like syntax; however, the implementation language of the system services is not specified. An Application Binary Interface (ABI) is also not specified.
Implementations
- Arctic Core is a dual license (GPL/commercial) AUTOSAR implementation with OSEK implementation.
- ERIKA Enterprise (ERIKA Enterprise, external link) is an implementation of the OSEK OS (BCC1, BCC2, ECC1, ECC2), OIL, ORTI specifications, provided with an Eclipse plugin and support for Microchip dsPIC, PIC32, AVR, Nios II, ARM7, S12XS, Tricore1, Mico32, PPC z7, esi-RISC, MSP430, Cortex Mx. (License: GPL linking exception). ERIKA Enterprise has been officially certified OSEK-VDX on ARM Cortex-M4 and for Infineon tricore AURIX.
- FreeOSEK is an open source OSEK-VDX Implementation (BSD license)
- mKernel is another open source implementation (GPL license) with Partially OSEK/VDX compliant oil generator supporting only the Microchip PIC18F4550.
- nxtOSEK (nxOSEK/JSP, external link) is an open source implementation for the Mindstorms NXT robots
- ev3OSEK is an open source implementation for the Mindstorms EV3 robots
- openOSEK is a free, open source implementation (LGPL license) (last update in 2011).
- PICOS18 is another open source implementation (GPL license) with support for Microchip PIC18.
- RTA-OSEK is a commercial implementation by ETAS of an OSEK RTOS (Unknown license)
- RTA-OS is an commercial implementation by ETAS of an OSEK RTOS with exist for a broad range of µC including Linux and Windows PC (Unknown license)
- TOPPERS-OSEK GPL license, runs on m68k, sh1, sh2, sh3, h8, arm 4, m32r, MicroBlaze, tms320c54x, xstormy16, mips3, Nios II
- Trampoline LGPL license, runs on Infineon C166, PowerPC
- Trioz OSEK RTOS is a commercial implementation of an OSEK RTOS (Unknown license)
- Vector’s osCAN is a commercial implementation of an OSEK RTOS (Unknown license)
- Elektrobit tresos is a commercial implementation of an OSEK RTOS
See also
- AUTOSAR is a standardised extension of OSEK.
- Controller Area Network (CAN)
- IEC 61508 is a standard for programmable electronic safety-related systems.
- ISO26262 Road vehicle safety norm
- Safety standards
External links
- osek-vdx.org Official Web Page of the OSEK Project (Note: osek-vdx.org seems offline of a while now, try archive.org or it is recommended to go to autosar.org)
- autosar.org