News | April 21, 1999

Developing Windows CE Applications On Embedded PCs

By Michael M. Bauer, Annasoft Systems


•Missing Pieces
•Concept/Design Stage
•Prototyping/Development Phase

The interest in and the popularity of Windows CE has grown steadily in the embedded marketplace. However, there is still confusion about platform integration and support, particularly for embedded PCs.

The bad news for OEMs considering using an embedded PC is that Microsoft did not intend CE to be a "shrink-wrapped", PC-compatible operating system like Windows 95 or NT, but rather for it to be adapted to different microprocessors and hardware platforms. Hence, an OEM can spend considerable time and effort to integrate an embedded PC target platform. The good news is that Annasoft Systems and its Embedded Initiative partners have teamed up to provide pre-tested, ready-to-run Windows CE solutions for commercial, embedded PCs. The ability to run Windows CE immediately on an off-the-shelf embedded 486 or Pentium platform gives system designers the ability to bring products to market faster with lower development costs.

This article describes the process for developing an embedded application on a commercial embedded PC, as opposed to a custom designed platform. In essence, it provides the OEM developer with step-by-step information for each stage of the design cycle: concept/design, evaluation, prototyping/development, and production.

Missing Pieces

Windows CE platform independence is achieved by providing a thin layer of code that resides between the kernel and the hardware platform. This layer, known as the OEM Adaptation Layer (OAL), isolates device-specific hardware features from the kernel. The Windows CE kernel, in turn, contains processor-specific code to handle core processor functions. A custom OAL has to be developed for each unique CPU and hardware platform. The primary purpose of the OAL is to set-up and manage the target platform's hardware for the kernel, including initialization and setting-up the hardware resources. Of course, this is exactly the role of the BIOS in an embedded PC. Annasoft avoided a major adaptation effort by being able to utilize an embedded PC's existing BIOS to initialize the system. This also made Windows CE immediately accessible to the entire 486 and Pentium-class embedded PC market.

To make Windows CE economically viable for embedded PCs much more is needed than the basic platform adaptation mentioned. Software is needed to load and launch Windows CE either from a rotating disk, flash disk, DiskOnChip, or PC Card. The CEPC platform provided in Microsoft Platfrom Builder enables the developer to run Windows CE on a PC. Microsoft added CEPC as a test vehicle for application and driver development. CEPC was not designed to run alone on a PC platform. MS-DOS is necessary to launch WinCE with CEPC. So there is the issue of additional licensing costs and memory resources. Hence, Annasoft developed CE Launcher, which loads Windows CE from any type of disk media. Because CEPC is not intended for a run-time, target environment, the same applies to many important drivers for key embedded PC functions, including IDE HDD, floppy, and CD-ROM. The Annasoft Jump Start driver library (see Table 1) complements drivers provided by Microsoft. Jump Start also includes CE Launcher.

Table 1. Jump Start Drivers




1.44 MB


ATAPI interface

Hard disk drive

IDE (supports 4 hard drives)

CHIPS 655xx

Resolutions 320x200, 320x240, & 640x480 - 256 colors

Cirrus Logic 7543

Resolutions 320x200, 320x240, & 640x480 - 256 colors

Cirrus Logic 7555

Resolutions 320x200, 320x240, & 640x480 - 256 colors

Epson video

640x480 256 color video for SMOS Card-586 and



SMC91C94 (10 Base-T), AMD79C961A (10 Base-T),

AMD79C971/79C972 (10/100 Base-T)

Serial mouse

Annasoft improved version


Supports multiple com ports, Annasoft improved version


Supports older keyboards, Annasoft improved version

Finally, board support packages needed to be developed and tested. Annasoft formed the Embedded Initiative in part to address the need for "shrink-wrapped" Windows CE solutions for Embedded PCs. Annasoft has certified in its lab dozens of embedded PCs (a downloadable list is available from the Annasoft website: from eighteen manufacturers (see Table 2). These embedded PCs range in form factor from system-on-a-chip modules to motherboards and include PC104, ISA/PCI, cPCI, STD32 bus architectures as well as busless single board computers. Each of these embedded PC platforms has been certified to run Windows CE, CE Launcher, and the Jump Start drivers and has a ready-to-run "build tree" for Platform.

Table 2. Selected Embedded Initiative Members


Web-site Address

Aaeon Technology (Hazlet, NJ)

Adaptive Systems (Longmont, CO)

Adastra Systems (Fremont, CA)

DSP Design (England)

Epson (formerly SMOS) (San Jose, CA)

EuroTech (Italy

SBS Embedded Computers (Fairfax, VA)

Teknor Industrial Computers

The following sections detail the simple steps (see Figure 1) an OEM needs to go through to develop their Windows CE embedded solution on a PC platform.

Click here to see Figure 1.


Concept/Design Stage

In the initial stages of the OEM's product development cycle, basic platform and other architectural decisions are made. Once the OEM is clear that a commercial, off-the-shelf solution is needed, then the most appropriate embedded PC platform needs to be determined. Take PC-104 for example. Once determined, the OEM can review the numerous PC-104 solutions available from Embedded Initiative member companies to identify platforms that have the functionality and features required by the application. If a particular product has not been certified, it can be adapted and tested in a matter of two weeks.



The OEM developer now can obtain one or more evaluation boards running demonstration versions of Windows CE. These are full versions of CE, provided on a bootable media (typically flash memory) and can be used to get a hands-on look at CE and perform some benchmark tests. It is a compiled, binary image and cannot be modified or used for production units.

Prototyping/Development Phase

Once the OEM has determined that Windows CE and a specific board will meet their requirements, they can concurrently commence with application development and platform integration. Platform integration can be done in-house or outsourced. Application development is done in the Familiar Microsoft Studio environment. Platform integration is done using the Microsoft Platform Builder tool set and primarily consists of writing additional drivers (if needed) and creating a customized OS image for the application.

If the OEM will be doing the engineering in-house, they will need to purchase, at a minimum, Microsoft's Platform Builder and the Jump Start Platform Library Kit (PLK), which includes five Windows CE run-time licenses. It is also recommended that they obtain Intrinsyc Software's Integration Expert, an intuitive, graphical interface to Platform Builder to further speed and simplify the process. If the OEM wants to outsource the engineering, the Embedded Initiative partner or Annasoft can provide this service.

The OEM needs also to be aware of third-party application components and extensions such as web servers or real-time add-ons that they can buy off-the-shelf and integrate into their application.

The application can be developed using a full version of Windows CE and then optimized (for cost and efficiency) as a last step with Integration Expert. Downloading and debugging on the target is done using Platform Builder.



For production, the OEM will need to purchase run-time licenses for the version of Windows CE they end-up using (i.e. kernel, limited, or full) as well as Jump Start and any software components used in the application. The can obtain their custom image of Windows CE pre-integrated on their embedded PC from Embedded Initiative members or they can purchase the licenses directly from a distributor and do the integration of the OS themselves.

Annasoft Systems, 11838 Bernardo Plaza Court, San Diego, CA 92128-2414; Tel: 1-800-690-3870; Fax: 1-619-673-1432.