A BSP can consist of a bootloader, the OEM Adaptation Layer (OAL), board-specific device drivers, configuration files, and the kernel-independent transport layer (KITL), as shown in Figure 35-4. The bootloader is responsible for getting the OS image loaded into RAM and calling the OAL to start. The OAL is the general interface between the OS and the hardware after the OS is loaded into RAM. The device drivers are for the board components, and the KITL enables the debugging of the OS when it is being developed. The configuration files are board specifications (for example, RAM size and location) and batch files, which are used in building the OS image.
A BSP is board-specific. Although it can have many aspects that are common to other systems using the same CPU, a BSP has to be configured and built specifically for the target system. It is also OS version–specific in that a CE 5 BSP required a lot of upgrading to work in CE 6. Modifications may also be needed to make a CE 6 BSP work with Compact 7. (Although far less is required than for CE 5 to 6.) Also, if you have only the binary (built) version of the BSP and therefore lack access to the BSP source code, you can’t port a Windows Embedded CE BSP to Compact 7.
Porting a BSP to Compact 7 and developing a new BSP is beyond the scope of this book. For further information on these processes see the “Windows ...