Windows CE Application and Driver Programming

Windows CE Applications and Drivers is a class for the experienced Win32 developer that wants to learn Windows CE application development and a touch of device driver development.   This class covers the differences in the Windows CE kernel and how that affects application development.  The class also provides a cursory knowledge of device driver development and how drivers can be developed using the application development tools instead of using the Platform Builder.

Introduction to Windows CE

Although part of the Windows operating system family, Windows CE has a unique history and design.  This section introduces Windows CE and provides background for the remainder of the class.  Coverage includes the history of Windows CE, its general design concepts as well as an overview of the design and development process for companies using Windows CE.

Kernel Programming

The Windows CE kernel implements a subset of the Win32 API, but its internal design is completely different from any other Windows operating system.  In this section, the internal architecture of Windows CE is presented and how it affects application development.  The standard Windows memory API is also discussed with special emphasis on how embedded programs have to treat memory management differently from standard PC applications.

GWE and the Common Controls

The Graphics, Windows, and Event subsystem is the Windows CE version of the GDI, User, and System subsystems known to desktop Windows programmers.  This section covers how the GWE differs from its desktop counterparts.  The common control library is also covered in this section

Lab1: Write a Windows CE application.  Add a Command bar control that contains menus, buttons and a combo box.

Notifications

The notification API is a Windows CE unique that allows applications to be notified when system events such as driver load and unload occurs in the system.  Other notifications launch applications and notify users.   This section covers how to create notifications and how notifications are useful in specific situations.

RAPI

RAPI is the remote API, a simplified RPC scheme that allows PC programs to call functions on an attached Windows CE device.  RAPI provides the low level foundation for the Windows CE installer and other programs that remotely control Windows CE systems from a personal computer.  This section discusses using RAPI including how to create custom RAPI functions that provide complete flexibility for PC applications interacting with attached Windows CE devices.

Lab2:  Write PC programs that use RAPI to call functions on a Windows CE device.  Write RAPI DLLs that can be called from the PC in both block and stream modes.

Interprocess Communication

This section covers how to implement communication between processes under Windows CE.  All different aspects of interprocess communication are covered from simply sending messages between windows to asynchronous interprocess communication  using threads to directly access different processes.

Lab3:  Explore different methods of interprocess communication including memory mapped files, Events, and other constructs.  Explore how Windows CE isolates processes from one another and how this isolation can be bypasses when necessary.

Windows CE Device Drivers

Windows CE device drivers have a completely different architecture than drivers under Windows XP.  This section introduces the Windows CE driver architecture, from their required exported functions to how they are loaded by the system.  Techniques for tuning and extending device drivers are also covered.

Lab4:  Create a Windows CE driver.  Install it on a device and explore how it interacts with the system.  Explore driver debugging techniques.  Create a driver that performs asynchronous IO.

A Tour of the Platform Builder

The Platform Builder is the tool used to port Windows CE.  This huge tool, delivered on almost a dozen CD ROMs, contains a huge amount of example source code that is quite useful for developers interested in learning how Windows CE works.  This section reviews the Windows CE build tree to show how the directory structure is organized and what useful source code is available.

Windows CE USB Drivers

Embedded Windows CE devices can support USB peripherals.  This section introduces the architecture of the USB bus and how to write usb client drivers for Windows CE devices.  Included is an examination of the hardware discovery process, how client drivers are installed, and how USB client drivers access the USB support API.

Lab5:  Write a driver that is loaded in response to the insertion of a PC card.  Use card services to read various parameters of the card.

 
© Copyright 2003. Boling Consulting Inc.