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.
Recommended BSP Directory Structure
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.
Note:
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.
Note:
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.