Chapter 21: System Programming
Overview
This chapter takes a slightly different tack from the previous chapters of the book. Instead of touring the API of a particular section of Windows CE, I'll show you Windows CE from a systems perspective.Windows CE presents standard Windows programmers some unique challenges. First, because Windows CE supports a variety of different microprocessors and system architectures, you can't count on the tried and true IBM/Intel PC–compatible design that can be directly traced to the IBM PC/AT released in 1984. Windows CE runs on devices that are more different than alike. Different CPUs use different memory layouts, and while the sets of peripherals are similar, they have totally different designs.In addition to using different hardware, Windows CE itself changes, depending on how it's ported to a specific platform. While all Pocket PCs of a particular version have the same set of functions, that set is slightly different from the functions provided by Windows CE for the Handheld PC. In addition, Windows CE is designed as a collection of components so that OEMs using Windows CE in embedded devices can remove unnecessary small sections of the operating system, such as the Clipboard API.All of these conditions make programming Windows CE unique and, I might add, fun. This chapter describes some of these cross-platform programming issues. I'll begin the chapter by describing the system memory architecture.