Home Page

Single Board Computers
Microprocessor Training Systems
Custom Engineering & Manufacturing

Home Page Company Info Page Ordering Info Page Tech Support Page


EMAC works to offer a full featured Windows CE build for each of our boards and can add WinCE to virtually any of our ARM or x86 based SoM Microcontrollers, PC Compatible SBCs or SIB Emebedded Servers. While also offering the ability to provide a customized build that is desiged only to meet the needs of the customer's target system.

The Windows CE operating system is a 32-bit, multitasking, multithreaded operating system that has a scalable, open architecture design, providing support for a variety of devices. Windows CE is compact, providing high performance in limited memory configurations, supporting a range of embedded, mobile or multimedia product lines. Windows CE also has integrated power management, enabling long battery life on mobile devices. Standard communications support is built into Windows CE, enabling access to the Internet to send and receive e-mail or browse the World Wide Web. A graphical user interface incorporating many elements of the familiar the Desk-Top Windows user interface is also available, facilitating ease-of-use for end users.


Sub-set of Win32 API – Windows CE supports more than 700 of the most-frequently-used Win32 APIs, enabling developers to take advantage of vast amounts of third-party programming resources, tools, software examples, and documentation for their Windows CE-based development. With more than 500,000 developers worldwide using Win32, there are many experienced programmers who already know how to develop for the Microsoft Windows CE platform, which lowers training costs and shortens your time to market.

Low-cost, familiar development tools – Windows CE requires two inexpensive, basic development tools. The first development tool is for the operating system itself: Platform Builder which is required if you are generating your own build. If you have EMAC generate your build you will not require this relatively expensive and difficult to use tool. Platform Builder contains all of the cross-compilers, assemblers, remote debugger tools, boot loaders, sample device drivers (keyboard, LCD, serial, IrDA, touch screen, etc.), sample platforms, and operating system components. The second development tool Windows Visual Studio is used for developing applications.

Scalable, full-featured operating system – Windows CE can be customized for a product by selecting from a set of available software modules. In addition, some of the modules are componentizable, which means that you can further customize the modules by selecting from a set of available components for that module. Because the Windows CE operating system is componentized, you can design embedded system platforms using the minimum set of software modules and components needed to support the platform's system requirements. This minimizes the memory footprint and maximizes performance of the operating system. Windows CE scales from a kernel to a full-featured OS with networking and GUI.

Extensive and Extensible Device Support – Windows CE directly supports many kinds of hardware peripherals and devices, such as keyboards, mouse devices, touch panels, serial ports, Ethernet, modems, USB devices, audio devices, parallel ports, printer devices, and storage devices (ATA or flash media). At the same time, as Windows CE extends to new industries and device categories, there is tremendous potential for embedded developers to easily add new device types and peripherals. This is made possible through the simple and well-defined Windows CE Device Driver model, which provides a well-documented set of device driver interfaces (DDIs) and sample code that demonstrates implementation. This model enables embedded developers (both OEMs and IHVs) to easily implement their own driver software for a variety of devices that run on the Microsoft Windows CE platform.

Wide microprocessor support – Currently supported processor architectures include: NEC, Philips, Toshiba MIPS 39xx and 4xxx, Motorola PowerPC 821, 823, 850, 860, Hitachi SH3 and SH4, Intel 486 and Pentium (and compatibles: AMD, Cyrix, SGS Thomson), ARM, and Intel X-Scale. The wide choice enables OEMs to select architecture with the best price/performance for their specific application. New processors are being added regularly. For the complete list of supported processors, including specific model numbers, visit the Microsoft Windows CE website.


OEM Adaptation Layer (OAL)

Windows CE is adapted for a specific hardware platform by creating a thin layer of code that resides between the kernel and the hardware platform. This layer is known as the OEM Adaptation Layer (OAL). The OAL isolates device-specific hardware features from the kernel. The Windows CE kernel, in turn, contains processor-specific code to handle processor core functions. The OAL is specific for a particular CPU and hardware platform.

The primary purpose of the OAL is to expose the target platform's hardware to the kernel. This includes managing the hardware's timers and device interrupts, and implementing power management across the device's peripherals. Windows CE handles interrupts by associating each hardware interrupt request line (IRQ) with one interrupt service routine (ISR). When interrupts are enabled and an interrupt occurs, the kernel calls the registered ISR for that interrupt. The ISR, the kernel-mode-portion of interrupt processing, is kept as short as possible. Its responsibility is primarily to direct the kernel to schedule and launch the appropriate interrupt service thread (IST). The IST, implemented in the device driver software module, gets or sends data and control codes from or to the hardware and acknowledges the device interrupt.

Device Drivers

  • Built-in support for the keyboard, touch panel, notification LED, display, audio (including Sound Blaster), battery drivers, and a rapid development model that allows these devices to be ported quickly to your platform.
  • Support for wireless and wireline Ethernet LAN connectivity
  • Statically replaceable keyboard layout
  • Extended interrupt processing interface or device drivers based on the Win32 event model
  • Network printing
  • Support for serial and parallel devices
  • Host support for Universal Serial Bus (USB) devices
  • PCMCIA Card and Socket Services for removable or built-in storage cards


  • Multi-threaded; preemptive multitasking
  • Preemptive priority-based thread scheduling based on the Win32 process and thread model; supports eight levels of thread priority
  • Support for priority inheritance to correct priority inversion
  • Demand paging supported by ROM, RAM, and FAT file systems
  • Execute in place from ROM
  • Support for synchronization objects (WaitForSingleObject, WaitForMultipleObjects)
  • Low ISR and threat latency
  • Portable across microprocessors
  • Heap size that is limited only by available memory

Object Store

  • Available object stores include file systems, registry, and database
  • Database provides storage and retrieval of database records, with up to four sort keys and support for transaction logging and rollback
  • File System
  • Access is through Win32 API
  • Supports FATFS, including multiple FAT volumes (up to 99 volumes)
  • Installable block Device Drivers (ATA Flash and SRAM drivers included)
  • True Flash File System support
  • Installable file systems
  • Databases on mounted file systems


  • Win32-like registry
  • Access is through Win32 Registry API


  • Configurable from nothing to full-blown GDI & User, with intermediate points:
    • display-less, message passing (mininput)
    • graphics but no windowing (mingdi)
    • minimalist window manager (minwmgr)
  • GDI - resolution-independent graphics
  • Raster and TrueType Font support o1 to 32 BPP Color Pixel depths w/ palettes
  • Printing (device-side rendering)
  • User - windowing, dialogs, messaging
  • Additional: Controls, clipboard, cursors, caret, idle time out, hot keys, etc.
  • GDI and user export a subset of the Win32 API

Communications Support

  • Windows Sockets APIs
  • WinInet with FTP, HTTP and HTTPS support
  • Secure Sockets Layer (SSL) with Server Gated Cryptography support
  • TCP/IP, PPP, SLIP, and IrDA, including Fast IR
  • TAPI modem support
  • Serial APIs
  • Direct connection, dial-up and device-to-device connectivity
  • LAN connectivity using NDIS and Microsoft Network client software (to access remote file and print servers)
  • Remote access services (RAS) to support remove connectivity
  • Remote debugging over LAN, serial or parallel connections
  • Built-in support for communication hardware (built-in modems, Ethernet chips, etc.)
  • Windows NT LAN Manager-based authentication

Remote Connectivity

  • Remote networking
  • Direct connection to PC
  • Dial-up access to Internet, PCs, and Servers


  • Includes a minimum shell that supports application launching and switching
  • The shell can be included to serve as the basis of an embedded application
  • Key UI components included to allow rapid development of custom embedded shells


  • Support for localization of the operating system, including built-in support for French, German, Italian, Portuguese (Brazilian), Spanish, Dutch, Swedish, Japanese and Chinese (Beta)
  • Far East text support
  • Input Method Manager, Input Method Editor, and Soft Input Panel
  • UNICODE support
  • Support for the national language support (NLS) API, which allows system and user locales

Additional Component Features

  • ActiveX and COM/OLE
  • Microsoft Virtual Machine for Java for Windows CE
  • Microsoft Foundation Classes for Windows CE


At a minimum, a Windows CE-based device must have a supported processor, memory and an internal timer for scheduling. No other hardware is specifically referenced by the operating system, but most devices will have a number of peripherals.

Windows CE is a small-footprint, flexible operating system. The memory needed by a Windows CE-based system is totally dependent on which components the designer of the system selects. A Typical CE build may require 32 Meg of Flash and 32 Meg of RAM.

Note: Windows CE Licenses sold only with hard drive or flash drive media and SBC.

Back to Operating Systems


Copyright © 2010 EMAC, Inc.
All Rights Reserved