BSP Components and Code Organization (Compact 2013)


This section provides an overview of the components that make up a board support package (BSP) and a brief explanation of how they work. In addition, the section describes the organization of the source code for each component.

The following table describes the components that make up a BSP. You can find details about each component in the sections that follow. Not all BSPs require every component.



Boot Loader Overview

Executed during a power-on reset (POR), the boot loader initializes fundamental hardware components and launched the OS start routine.

OEM Adaptation Layer

The OAL provides an interface between the Windows Embedded Compact kernel and the hardware. The OAL usually handles such aspects as power management, timers, and interrupts.

Device Drivers in BSP Development

Device drivers encapsulate and abstract the functionality of peripherals and hardware controllers, which allows the OS and applications to communicate with and control devices.

Configuration Files for Creating a Run-Time Image

Configuration files come in two basic types: .bib files, which determine the modules to include in the OS image, and .reg files, which contain registry settings for the run-time image.

Kernel Independent Transport Layer

KITL enables device-to-desktop connectivity for debugging and development.

The BSP code in Compact 2013 is organized in compliance with the production-quality OAL (PQOAL) code model. The PQOAL model modularizes OAL code into reusable libraries to take advantage of the similarities between different hardware platforms. The PQOAL model also separates any code that is not hardware-specific from code that is unique to a CPU architecture or hardware platform.

The PQOAL model maximizes code reuse between different hardware platforms and provides the best possible starting point for new BSPs. For example, if your board design contains an x86-based CPU, then you can use all the common x86-based libraries in your BSP, ideally with very little modification. For more information about PQOAL libraries, see Production-Quality OAL Components.

The Compact 2013 root folder is referred to by the build system and throughout the documentation as %_WINCEROOT%. (The default root folder is c:\WINCE800.) All BSP code resides in the folder %_WINCEROOT%\Platform.

The following table lists the different types of code defined by the PQOAL model and what folder contains each type of the code. For a more complete description of the Windows Embedded Compact folder organization, see Directory Structure Overview.

Code type

Folder location under %_WINCEROOT%\Platform\.

Code that is not hardware-specific.



Code common to a CPU architecture.

Common\Src\<CPU Architecture Name>\Common

(where <CPU Architecture Name> is the name of each installed architecture)

Code common to a specific CPU.

Common\Src\<CPU Architecture Name>\<CPU Name>

(where <CPU Name> is the name of each installed CPU)

Code common to a specific SOC.

Common\Src\SOC\<SOC Name>

(where <SOC Name> is the name of each installed SOC)

Code that is unique to a specific hardware platform. A <Hardware Platform Name> directory exists for each installed BSP.

<Hardware Platform Name>\Src

(where <Hardware Platform Name> is the name of each installed BSP for a specific hardware platform)