Device Driver Libraries (Windows Embedded CE 6.0)
1/5/2010
Windows Embedded CE 6.0 provides the basic infrastructure so you can rapidly and easily create a board support package (BSP) by reusing device drivers from a number of common driver libraries.
The common driver libraries follow and include drivers for microprocessor-native peripherals as well as microprocessor-specific OAL support libraries for several microprocessors.
Because the device drivers in these libraries are reused, you should have little or no new source code to write while developing a BSP for a given SDB or hardware platform that uses one of these microprocessors.
Note
The SOC directory is new for Windows Embedded CE 6.0. The contents of the Windows CE 5.0 CSP directory has been restructured and migrated to the SOC directory.
The following table shows the different device driver libraries that are shipped in Platform Builder to assist you in creating a BSP.
Library | Description |
---|---|
Microprocessor-native libraries |
Device drivers for high integration microprocessor-native peripherals. For example, the ARM microprocessor, and its companion chip integrates many peripherals on the microprocessor, such as LCD, serial, USB Host, USB function, and so on. An SDB or hardware platform that uses a specific microprocessor will use the same set of microprocessor-native drivers. In Windows Embedded CE, most microprocessors are high-integration microprocessors that contain many native peripherals. These are referred to as SOC (system-on-chip) drivers and are in %_WINCEROOT%\Platform\Common\Src\SOC. OEMs can also ship code in this directory structure. The SOC directory structure has the format SOC\<SOC or Chipset Model>_<vendor name>_<version>\<Driver Function>. For more information, see SOC Drivers. |
Microprocessor-specific OAL support libraries |
OAL functions for devices such as a real-time clock, timer, and a debug Ethernet controller that are common to a microprocessor. This library minimizes the OAL code written. These are also referred to as SOC (system-on-chip) drivers and are in %_WINCEROOT%\Platform\Common\Src\SOC. For more information, see SOC Drivers. |
BSP or hardware platform-specific drivers |
Device drivers for peripherals that are specific to a given SDB or hardware platform. These drivers have hardware platform-specific code and can only be used on that hardware platform. These drivers are in %_WINCEROOT%\Platform\<Hardware Platform Name>\Src\Drivers. For more information, see BSP Drivers. |
Other common peripheral drivers |
Drivers for strategic peripheral chipsets that are commonly found or included on many SDB or hardware platform designs. These include devices like Realtek RTL8139, generic NE2000, DEC/Intel 2114x Ethernet chipsets, MediaQ MQ200, and ATI Rage XL display chipsets, and Ensoniq audio chipsets. The goal is to provide production quality drivers for 50% of the strategic chipsets that cover more than 75% of the SDBs or hardware platforms available on the market. These are referred to as common drivers and are in %_WINCEROOT%\Public\Common\Oak\Drivers. For more information, see Common Drivers. |
The SOC and common drivers in %_WINCEROOT%\Platform\Common\Src\SOC or %_WINCEROOT%\Public\Common\Oak\Drivers use the CEDDK routines to abstract the hardware platform and buses.
These driver DLLs are built and generated during the Sysgen phase. A BSP can use these drivers by including the appropriate entries in the Platform.reg file and by including the DLL name in the Platform.bib file.
Some common drivers are included in Common.reg and Common.bib and are included in a run-time image by setting an environment variable.
For more information about environment variables, see Environment Variables.
The following illustration shows the arrangement of the driver libraries provided.
Typically, a BSP consists of the following:
- A set of SOC drivers from %_WINCEROOT%\Platform\Common\Src\SOC
- The appropriate run-time image configuration files and headers needed to customize the drivers to an SDB or hardware platform
- .bib and .reg files
- The build files necessary to generate the kernel, GWES, a boot loader, and driver images
If a board has nonnative peripherals such as an Ethernet controller, the BSP uses drivers from %_WINCEROOT%\Public\Common\Oak\Drivers or %_WINCEROOT%\Platform\<Hardware Platform Name>\Src\Drivers.
Many microprocessor-native peripherals can use common drivers from %_WINCEROOT%\Public\Common\Oak\Drivers without modification.