OEM Adaptation Layer (Compact 2013)

3/26/2014

The OEM adaptation layer (OAL) is the layer of code that abstracts the generic Windows Embedded Compact kernel from the specific CPU or system on a chip (SOC) implementation that you have in your hardware platform. The OAL includes code to support timers, manage memory, manage caches, handle interrupts, get and set the time, and other hardware-dependent operations. Creating an OAL is a complex task and typically the first step in implementing Windows Embedded Compact on your hardware platform. In general, the best method is to copy the OAL implementation from a working OS design and modify it to suit your hardware platform.

The most commonly-used functions of the OAL, described in the following sections, are power management, timers and interrupts, and snapshots for snapshot boot.

Power Management

The OAL participates in power management by responding to CPU idle and suspend requests, and system power-down and restart requests. The OAL does not change the power states of peripheral devices; instead, changing the states is directed by the Power Manager, which interacts with the device drivers to change their power consumption. By mapping customized system power states to the device power states in Windows Embedded Compact, Power Manager mediates between the OAL and device drivers or applications. For information about Power Manager and how to implement it on your device, see Power Management Architecture and Implement System Power States.

Timers

The OAL can manage time by interacting with the following three timers:

  • The (optional) real-time clock (RTC) tracks the time of day and the date.
  • The system timer provides a periodic 1 ms cadence as a reference timer, which is mainly used by the kernel as a reference for scheduling tasks.
  • The (optional) high-performance timer typically operates at a higher frequency than the system timer. It’s often useful for multimedia and profiler measurements.

Interrupts

The OAL implements interrupt handlers and interrupt service routines (ISRs). Compact 2013 can handle interprocessor interrupts (IPIs) to support symmetric multiprocessing (SMP).

Snapshot Boot

The OAL can capture a snapshot of the system for use by snapshot boot which enables fast startup and allows the system to be restored to a known running state. For more information, see Snapshot Boot Reference.

In This Section

OAL Code Overview

See Also

Concepts

BSP Components and Code Organization