Windows Embedded CE 6.0 BSP Directory Structure

1/5/2010

Windows Embedded CE 6.0 introduces the following BSP changes:

  • The OAL and startup code no longer link with the kernel to produce Nk.exe. Instead, the OAL and the startup code link to form Oal.exe and the kernel is built as Kernel.dll.
  • KITL code should be removed from the OAL and placed in Kitl.dll.

Microsoft recommends that OEMs adopt a new directory structure to reflect these changes. This is optional. However, OEMs must use the new names for the executables being built because this is not optional.

Microsoft recommends that you use the following BSP directory structure for Windows Embedded CE 6.0.

\Platform\<Hardware Platform Name> subdirectory Description

Cesysgen

Contains a makefile for filtering any of the configuration files in the files directory.

Files

Contains project-specific files for building the run-time image, initial directory structure, initialized databases, and initialized registry.

Src

Contains the boot loader, OAL, and include files for the hardware platform.

Src\Bootloader

Contains all the boot loader-specific code.

Src\Bootloader\Eboot

Contains the boot loader source files.

Src\Common

Contains all the code common to the boot loader and OAL.

Src\Drivers

Contains the local BSP drivers.

Src\Inc

Contains hardware platform-specific include files.

Src\Oal\OalLib

Contains the hardware platform-specific OAL code.

This builds Oal.lib.

Src\Oal\OalExe

Contains the build files, and possibly stub functions, for building the basic OAL image (without KITL support or with KITL in Kitl.dll).

This builds Oal.exe.

Src\Kitl

Contains the build files and source code for building Kitl.dll.

\Platform\Common subdirectory Description

Lib

Contains libraries required to build your project.

Src

Contains header files, common OAL code, and processor-specific OAL code.

Src\ARM

Contains the ARM processor-specific OAL code.

Src\Common

Contains OAL code that is generic across all CPU architectures.

Src\Inc

Contains all the header files that export OAL components.

Src\MIPS

Contains the MIPS processor-specific OAL code.

Src\SOC

Contains a collection of system-on-chip (SOC), and CPU or chipset-level drivers.

Src\x86

Contains the x86 processor-specific OAL code.

For more information about the directory structure changes and best practices for using the SOC directory, see BSP Directory Rearchitecture Porting and Best Practices. For more details about subdirectories under \Platform\Common, see BSP and SOC Directory Layout.

Previous BSP Directory Structure

If you choose not to use the recommended BSP directory structure for Windows Embedded CE 6.0, you can continue to use the following BSP directory structure from Windows CE 5.0.

\Platform\<Hardware Platform Name> subdirectory Description

Cesysgen

Contains a makefile for filtering any of the configuration files in the Files directory.

Files

Contains project-specific files for building the run-time image, initial directory structure, initialized databases, and initialized registry.

Src

Contains the boot loader, OAL, and include files for the hardware platform.

Src\Bootloader

Contains all the boot loader specific code.

Src\Bootloader\Eboot

Contains the boot loader source files.

Src\Common

Contains all the code common to the boot loader and OAL.

Src\Drivers

Contains the local BSP drivers.

Src\Inc

Contains hardware platform-specific include files.

Src\Kernel

Contains device-specific source code files for building and linking the kernel and OAL.

Src\Kernel\Kern

Contains build files, and possibly stub functions, for building the basic kernel image.

Ee479271.note(en-US,WinEmbedded.60).gifNote:
This requires a TARGETNAME change as this will no longer link to the kernel. Instead, this links to a kernel stub library.

Src\Kernel\Kernkitl

Contains build files, and possibly stub functions, for building a kernel with Kernel Independent Transport Layer (KITL) support.

Ee479271.note(en-US,WinEmbedded.60).gifNote:
This requires a TARGETNAME change as this will no longer link to the kernel. Instead, this links to a kernel stub library.

Src\Kernel\Kernkitlprof

KernKitlProf.exe does not have an equivalent in Windows Embedded CE 6.0. If your OAL implements profiling support, this should always be included in Kern.exe and/or KernKitl.exe.

Src\Kernel\OAL

Contains the hardware platform-specific OAL code.

Required Names for Executables

If you choose not to adopt the recommended directory structure for Windows Embedded CE 6.0, you must rename Kern.exe and KernKitl.exe. Common.bib and the Make Run-Time Image (MakeImg) process require the following names:

  • Oal.exe, use this to rename Kern.exe.
  • OalKitl.exe, use this to rename KernKitl.exe.

The name change reflects the fact that the kernel has been moved into Kernel.dll and no longer links with the OAL.

Note

KernKitlProf.exe is no longer required and does not have an equivalent in Windows Embedded CE 6.0. To implement profiling support in Oal.exe, see Implementing Profiling Support in the OAL.

See Also

Concepts

BSP Migration Guide
BSP Implementation Guide