How to Create a BSP for Windows CE

Introduction

Windows CE provides board support packages (BSPs) for more than ten commercial-off-the-shelf (COTS) hardware platforms and software development boards (SDBs) covering the full range of supported CPUs in Windows CE. These BSPs are integrated into the Platform Builder integrated development environment (IDE) and appear as choices when you use the new Platform Wizard in Windows CE to create a sample platform. This extensive, out-of-the box support for BSPs gives original equipment manufacturers (OEMs) and independent hardware vendors (IHVs) the abilty to get started quickly and easily with the operating system and evaluate its rich features. By having this support, OEMs and IHVs cut down on time-to-market when designing products using Windows CE.

In addition, Windows CE also provides the infrastructure for OEMs and IHVs to develop BSPs for their own custom hardware or development platforms. By using this infrastructure, you avoid the extensive task of developing your own OEM Adaptation Layer (OAL) and porting drivers to your hardware platform; instead, it lets you focus on customizing and refining the run-time behavior of the operating system to your hardware platform. This section provides an overview on how to write a BSP for Windows CE and points to further documentation for implementation details.

Creating a BSP

A board support package (BSP) is the software that implements and supports running an operating system on a standard development board (SDB). A BSP typically contains the following elements:

  • A boot loader that is used during development to download operating system images
  • An OAL that links to the kernel image and supports initializing and managing your hardware
  • Device drivers for supporting peripherals on-board or attached at run time,
  • Configuration files for reconfiguring a BSP through environment variables and .bib and .reg file modifications.

Windows CE provides the following infrastructure to allow you to reuse device drivers from a number of common driver libraries called Chip Support Packages (CSPs) when designing your BSP:

  1. A BLCOMMON infrastructure that contains commonly used boot loader and Ethernet debug (EDBG) code and allows you to quickly develop a boot loader for your hardware platform using parallel, Ethernet, or USB interfaces.
  2. Production-quality CSP drivers for microprocessor-native peripherals for all supported CPUs. These include drivers for commonly used peripherals, such as serial UARTs, keyboard, touch, LCD, and so on, that are integrated on the CPU core or available via CPU companion chips.
  3. CSP drivers for microprocessor-specific OAL support libraries for all supported CPUs. Typically, you can use these OAL libraries on any hardware platform with minimal changes; in some cases you may have to write some OAL code for your specific hardware platform.
  4. "Common" device drivers for many other types of peripherals that are not integrated into the microprocessor cores. These include drivers for non-integrated peripherals such as audio, Ethernet, graphics/display, and other chipsets that are integrated on the hardware platform. These "common" drivers are written in a CPU- and platform- independent fashion so they can be reused on any hardware platform that uses one of the supported and tested microprocessors in Windows CE.
  5. Many sample BSPs containing configuration files that show how to use the existing CSP or common drivers and customize them to a given hardware platform.

Because it is common to reuse the device drivers in these libraries, you should have little new source code to write while developing a BSP for your hardware platform that uses one of the supported microprocessors.

BSP Development Tools

In addition to the reusable device driver libraries that are useful in developing a BSP for your hardware, Windows CE also provides a few tools in the Platform Builder IDE that allows you to do several things with a BSP:

  1. BSP Wizard - Allows you to integrate and import a BSP in to the IDE catalog by creating a catalog feature file (.cec) file. The BSP Wizard also allows you to create a BSP from scratch by cloning files from a sample BSP. Its recommended you use the BSP Wizard for integrating your BSP into the IDE Catalog. If you want your BSP to be integrated into the New Platform Wizard in Platform Builder, you must use the BSP Wizard.
  2. CEC Editor - Allows you to create a Catalog feature (.cec) file for your BSP.
  3. Export Wizard - Allows you to export your BSP to OEM customers by creating an MSI file that can be directly imported into the Platform Builder IDE with a single click.

Top of Page Top of Page

Getting Started