Organizations like DIN (Germany), ANSI (USA), or BSI (UK) distribute localized versions of the publication.
: Defines how tasks are activated, terminated, and scheduled. Interrupt Processing : Manages hardware interrupts with minimal latency. Resource Management
When developing a system component based on ISO 17356-3, you must adhere to these design philosophies: Static Configuration
If you are implementing an OSEK-compliant OS, study this part together with and Part 6 (OIL) for configuration. For licensing or certification, purchase the official ISO document. iso 17356-3 pdf
: Supports full preemptive, non-preemptive, and mixed preemptive scheduling to meet various timing constraints.
: It creates a consistent software layer that allows developers to focus on application logic rather than hardware-specific details.
Software written according to ISO 17356-3 can be ported to different microcontrollers with minimal changes. Organizations like DIN (Germany), ANSI (USA), or BSI
ISO 17356-3 is just one part of a larger framework. Understanding the entire series helps place this OS standard in context:
An introduction to ISO 17356-3 provides embedded systems developers with a clear understanding of the OSEK/VDX Open Interface for Embedded Automotive Systems. This standard establishes a uniform environment for automotive electronics, facilitating the portability of software across diverse hardware platforms. Understanding ISO 17356-3
: The OS is configured and scaled statically to ensure predictable real-time performance. Single-Processor Focus Resource Management When developing a system component based
: These run continuously until execution completes, get preempted, or terminate via an explicit OS call. They never enter a "waiting" state.
| | Example | Purpose | |-------------|-------------|-------------| | Task activation | ActivateTask(TaskID) | Start a task (makes it ready) | | Task termination | TerminateTask() | End current task (must be last call) | | Event waiting | WaitEvent(EventMask) | Block task until any of the events occur | | Resource locking | GetResource(ResID) | Lock resource (priority ceiling active) | | Set alarm | SetRelAlarm(AlarmID, increment, cycle) | Start relative alarm | | Get alarm time | GetAlarm(AlarmID, TickRef) | Read remaining ticks |