
What is OSEK OS?
What are OSEK kernel internal features?
Explain the C/C++ build pipeline from source to executable in an OSEK environment, covering compilation, linking, oil description, and system generation.
Explore the OIL formal description language for AUTOSAR/OSEK RTOS, defining OS, task, and resource objects in a CPU container, and generating C and header configs for runtime behavior.
Define tasks as code units with priority and stack, and explain pre-emption in an OSEK environment, with oil description file and state machines for basic and extended tasks.
Explore how OSEK conformance classes BCC1, ECC1, BCC2, and ECC2 differ in multiple activation, basic and extended task types, and per-priority task limits.
Demonstrate preemptive and non-preemptive task behavior with A, B, and C, including auto-starts and activation, and Schedule() to switch to the highest-priority ready task.
Demonstrates non-preemptive task A in a three-task autosar/osek rtos setup using an oil description file. Schedule() selects the highest ready task, so B stays suspended while C runs.
Explore OSEK scheduling policies in the OSEK environment, including full preemptive, non preemptive, and mixed systems, with scheduling points like termination, activation, explicit wait, and event setting.
Explore how mixed pre-emptable and non pre-emptable tasks interact in AUTOSAR/OSEK RTOS I, using a step-by-step scheduling example that highlights scheduling points, activations, and ready states.
Examine a mixed pre-emptable AUTOSAR/OSEK RTOS scenario with tasks A, B, and C; A is non pre-emptable, B is pre-emptable, C suspended, highlighting activation, delays, and explicit scheduling points.
Learn how a five-task autosar/osek rtOS led state machine uses initialization and white tasks to light red, green, blue LEDs via gpio and GPIOPinWrite, with GetTaskID and SetLedCurrentState driving sequences.
Implement a four-task state machine that controls rgb and bgr LED sequences via switches, with the white LED as the basic state. Repeat while pressed; return to white on release.
Implement a two-door alarm on a single ECU using onboard switches to represent doors; trigger the LED when any door opens, and keep it off when both doors are closed.
Explain how shared resources in multi-threaded systems risk data races during read-modify-write on a global counter. Show how atomic execution of three instructions prevents corruption.
Demonstrates a race condition in a read-modify-write of a shared 8-bit enable mask: two tasks set bits while preempting, yielding corruption from 0xF0 to 0xF1 and 0xF2.
Examine data inconsistency in a multi-threading producer-consumer buffer, where a higher-priority consumer may read an incomplete write. Protect the whole buffer during write to prevent interruptions until completion.
A lower-priority task holds a semaphore that a higher-priority task needs, causing a priority inversion. The sequence shows unbounded priority inversion across multiple tasks, as semaphores delay higher-priority tasks.
Explore the deadlock problem in an RTOS: two tasks with two shared resources cause mutual blocking, leading to a frozen system unless a reset occurs.
Explore how the OSEK resource manager uses the priority ceiling design pattern to prevent deadlock and priority inversion by elevating a task’s priority to the resource ceiling while locked.
Analyze how tasks a, b, and c with priorities 10, 11, and 20 contend for a shared resource, with activation, preemption, and ceiling priority in autosar/osek rtos.
Demonstrate resource management in a pre-emptive AUTOSAR/OSEK RTOS with tasks A, B, and C sharing a standard resource and using auto-start, activation, and ceiling priority scheduling.
Explore Autosar/OSEK RTOS resource management with a running example: auto-started task A activates B and C, uses a shared resource with ceiling priority, and preemption releases back to B.
Explore resource management in the OSEK RTOS, detailing GetResource and ReleaseResource usage to start and end the critical section, handle errors, and govern ceiling priority, preemption, release, and scheduling.
Demonstrate resource management with a shared data buffer across tasks A, B, and C, showing data inconsistency and its fix using protected and unprotected buffers, GetResource, and ActivateTask.
Explore how protected versus non-protected buffers behave under AUTOSAR/OSEK RTOS task interactions, demonstrating how GetResource and ReleaseResource prevent data corruption during cross-task writes.
Learn the most common real time operating system in the Automotive software industry.
OSEK operating system which is the standard platform that is running on almost all of the Electronics Control Units (ECUs) in modern vehicles to support different application software components.
This course provides an overview of what an OSEK real time operating system is and how it works using ARM Keil Uvision simulator and/or TM4C123 evaluation kit.
In this course, we will start with quick intro to the OSEK OS kernel and its internal features. The SW development cycle in an OSEK based environment will be discussed including the OIL (OSEK Implementation Language) formal description and the system generation stage as a part of the compilation process. After this we will discuss the task management module in OSEK operating system including task types, task state machine, task properties and the services that are provided by OSEK kernel to manipulate the application tasks.
Then, The resource management will be discussed including the resource concepts, shared resources problems such as priority inversions and deadlock and the priority ceiling pattern that is required by OSEK standard to solve these problems.
The course includes lots of examples to make sure that you have a thorough and practical understanding.
Now lets get started.