OSEK OS Overview

Micael Coutinho,autosarbswos

The Autosar OS has the good old OSEK/VDX OS as a backbone. Learning about OSEK will put you on the right track to understanding the Autosar OS

This is the first part of our OSEK OS 101 course. Today, we'll learn about the backstory on OSEK/VDX and how it maps to the Autosar Classic platform we have today, and in the next part, we'll dive deep with practice.

Back in 1993, OSEK (Open Systems and their Interfaces for the Electronics in Motor Vehicles, we won't bother with the original german name) was founded, by an automotive consortium of some german companies (some of the usual suspects: BMSW, Bosch, Daimler, Opel, Siemens and Volkswagen) and the university of Karlsruhe. At the same time, a similar project was looming in some french OEM's (Renault, Peugeot PSA and Citroën), named VDX (Vehicle Distributed eXecutive), and joined the former consortium in 1994. Hence, OSEK/VDX was born and was registered under Continental (which bought Siemens back in 2007).

The motivations behind creating OSEK/VDX are more or less the same as you may have heard when starting your Autosar journey: interoperability between OEM's, cost reduction by sharing the same OS architecture, standardizing the interfaces with the underlying hardware, better use of the underlying resources and reusability of the applications developed.

Enough with the story lesson. OSEK is an open standard, which has some of its parts standardized in the norm ISO 17356 - Road Vehicles. Parts of this OSEK specification are reused by the Autosar classic platform, with the Autosar OS being a superset of the OSEK OS. But what is so particular about this OS that made the Autosar consortium choose it? (Apart from the obvious, they created it). One important attribute of resource-constrained microcontrollers for safety-citical systems such as ECU's in a vehicle is the absence of a MMU (Memory Management Unit). So, everything is configured at compile-time. You cannot create new tasks in runtime, or any OS resources, such as mutexes in runtime. The OSEK standard also defines generic API's for I/O and peripheral access. OSEK incides on some familiar Autosar concepts, namely:

OSEK/VDX Stack { w: 122, h: 142 }

The OSEK stack does look a similar to part of the layered Autosar Classic we have today

If we look inside the OSEK OS kernel, we will find what's expected in an OS: tasks, events, resources for mutual exclusion, counters and alarms, interrupt management, communication between tasks and error management. As mentioned before, all these objects have to be defined in compile-time and cannot be created dynamically. These attributes are defined via OIL files, which has a simple syntax. Although you don't deal with it directly in Autosar, it's very common to find within your generated files these .OIL files laying around. In the next article about OSEK, we'll learn how to create these files. Today, the main goal is to understand the internals of the OS. So, let's look at each of the components that make up the OSEK OS:

OSEK/VDX Tasks state machine { w: 341, h: 232 }

OSEK/VDX Tasks state machine

After learning the theory behind the OSEK OS, I hope you stay tuned to the next article, when we'll show how these concepts appear in practice. In the meantime, if you are bored, you can check our article about What is Functional Safety (opens in a new tab), where we talk about how safety concept applies to Autosar, where the OS also plays an important part.

Author: Micael Coutinho (opens in a new tab)

References:

© AutosarToday —@LinkedIn