• Creating a Board Support Package
  • Thin Client example revisited
  • 2.1.3 Using Standard SDK
  • 2.2 Pocket-PC SDK (Software Development Kit)
  • 2.2.1 Introduction to Pocket PC 2002
  • 2.2.2 Working with the Pocket PC 2002 Emulator
  • 2.2.3 Programming Pocket PC 2002
  • 2.2.4 Pocket PC 2002 Hardware
  • Navigation control Description
  • Device Driver Development

    Download 288.25 Kb.
    Hajmi288.25 Kb.
    1   2   3   4   5   6 Device Driver Development

    The device drivers are included in every Windows CE operating system image are responsible for direct communication to devices.

    A device is a physical or logical entity that requires:

    a) Control

    b) Resource Management

    c) Both (a) and (b) from Operating System

    A device driver is a software module that manages the operation of a:

    1. Device

    2. Protocol

    3. Service

    A device driver also manages virtual or logical devices. A virtual device exposes a physical device interface, even though there is no physical device to manage it. A device driver for a virtual device is indistinguishable from a device driver for a physical device. Virtual means that there is no physical device to manage but a device like interface is being exposed.

    File system drivers are example of virtual device drivers.

    Typically one can characterize drivers by the device interface they expose. In the simplest case there is one interface exposed downward to hardware and one interface upwards to the applications.
    Interface to Hardware  Hardware interface or bus interface

    Interface to Application  Device interface or client interface

    Application, other drivers or the device manager can manipulate the device interfaces. The provider of the interface determines how these modules manipulate the client interface.

    Buses are responsible for loading the drivers for the devices on their buses. Bus enumeration is the process of examining the bus and then loading appropriate drivers. Root bus driver is a registry enumerator.

    Different processes load different drivers. The following tables show the processes that load drivers and what drivers they load.



    Graphics, Windowing and Event


    Battery drivers

    Display drivers

    Notification LED drivers

    Printer drivers

    Device Manager


    Audio drivers, Keyboard drivers, Mouse driver, Serial drivers, PC card drivers, USB devices and any other driver that exposes the stream interface.

    File System


    File System


    Device driver source code:

    1. The device driver source code is separated into platform dependent code.

    2. CPU support package (CSP) drivers.

    3. Common drivers. Creating a Board Support Package

    Windows CE provides the basic infrastructure that allows one to rapidly and easily create BSPs. Different device driver libraries like Microprocessor-native libraries are shipped in Platform Builder.

    Microprocessor Native Libraries:

    The microprocessor native libraries consist of device drivers for high integration microprocessors and their native peripherals. For example Strong-Arm microprocessor and its companion chip integrated many peripherals on microprocessor such as LCD, serial port, USB etc.

    A SDB that uses a specific microprocessor will use the same set of microprocessor native drivers. Thin Client example revisited

    In the Thin Client example discussed above a configuration was chosen after carefully studying the hardware characteristics of the Thin Client. Do the following steps after opening the Platform Builder:

    1. From the file menu, choose new platform, and new platform wizard will appear.

    2. Choose next and select one or more available BSPs.

    3. On the BSP page choose next and in the platform configuration dialog box, enter a name for the platform.

    4. Select a platform configuration from the available configuration area which in this case will be Windows Thin Client with browser for this particular example.

    After these steps are completed platform creation is completed. After that the next step is to build the platform:

    The OS image will be built based on the platform that has been configured. To build an Operating System image select retail or debug build configuration, modify the platform settings as needed, such as enabling kernel debugger, and then build the image.

    After the platform is configured, the platform can be built using the platform builder integrated development environment (IDE).

    Platform builder creates an Operating System image in four stages:

    1. Sysgen phase.

    2. Feature build phase.

    3. Release copy phase.

    Build system generates header files, links modules, copies the resulting modules to a release directory, and generates a binary image file.

    Static library as well as code supplied by the developer or the third party vendors is combined into a binary file and that is downloaded onto the device.
    Sysgen Phase: Each feature selected from catalog has a corresponding sysgen variable. If a feature is included in platform, IDE sets the corresponding sysgen variable during the sysgen phase of the build process.

    Build system uses these variables to link the corresponding static libraries into modules.

    The system also filters the system header files, creating headers that only contain prototypes for the functions exported by the developer’s platform. Import libraries for the system modules are also created during this phase.

    Feature Build Phase: After sysgen phase, feature build phase is run. During this phase, all user features including platform builder project (.pbp) files, source files and makefile (.mak) files are compiled and built.
    Release Copy Phase: Build system copies all the files needed to make an OS image to the release directory. The modules and files created during the sysgen phase are copied to the directory first, followed by the files created by the feature build phase.
    Make Image Phase: The project specific files which includes





    are copied into Release directory.

    Now information in BIBInfo tab of the platform setting dialog box is then added for each module or file. During this phase, the files in the release directory are combined in binary image file Nk.bin. If some modification is done, then the image should be made again.
    Platform Downloading

    After the platform is built, the OS image associated with the platform will be downloaded to a target device. The IDE gives a mechanism that allows downloading using a number of types of communication hardware, an OS image to target device.

    To download an Os image to a target device, there should be connection from development workstation to target device.

    Target menu in the IDE provides functionality that allows the developer to download an OS image to a target device. Before downloading configure a connection to the target device. To download using Ethernet, the development workstation and the target device must be on the same subnet. If the subnets will differ then the target device cannot be connected and debugging the OS image will not be possible.

    Transfer the Operating System image thus made to the Thin Client at the startup. To make a connection to the device, go to target menu and configure remote connection. Choose services tab and from the active named box choose a connection. This completes the deployment of the operating system image to the Thin Client. This process is the general way to build Windows CE Operating System image for a given hardware platform.
    General (lot. generalis - umumiy, bosh) - qurolli kuchlardagi harbiy unvon (daraja). Dastlab, 16-a.da Fransiyada joriy qilingan. Rossiyada 17-a.ning 2-yarmidan maʼlum. Oʻzbekiston qurolli kuchlarida G.
    Many a time this whole process is not necessary since there are some hardware platforms like Pocket-PC for whom Windows CE image were already built and tested. Such hardware platforms come preloaded with Windows CE image and as mentioned above they export a software development kit which the developers can use to build software for Pocket-PC. Embedded Shruti is also developed using the Pocket-PC software development kit not by building the Windows CE image from the scratch. But every embedded software developer should have an idea of the whole design process so that the software can be ported to custom platforms if required in the future. The process was explained using the Thin Client example. The Thin Client example was the first work carried out by me in this project.
    2.1.3 Using Standard SDK

    When included in the platform under development, the standard software development kit (SDK) for Microsoft® Windows® CE provides a common subset of features that allow an application written to conform to the standard SDK to run on a display-based Windows CE platform. To maintain compatibility with the standard SDK, an application must function with only the features provided in the standard SDK. Using additional features will make the application incompatible with the standard SDK. To implement the standard SDK on a Windows CE platform, the standard SDK for a Windows CE feature must be added to a display-based platform. The standard SDK is not compatible with headless devices and is therefore limited to display-based platforms. When added to an operating system (OS) image, the standard SDK will automatically include any features associated with the standard SDK as well as their dependencies. It will also add a registry flag to the image that indicates that the standard SDK has been implemented on that image. This allows any application written for the standard SDK to verify that a particular Windows CE platform supports the standard SDK.

    When included in a display-based platform, the standard SDK automatically incorporates all associated features into that platform. The following list shows the features that compose the standard SDK. In the next chapter desktop version of Shruti will be introduced and initially one of the modules of desktop Shruti is ported on an emulator running Windows CE with Standard SDK support. Some screenshots will show the primitive version of the Hindianalyser module ported on an emulator running Windows CE and supporting the standard software development kit.
    2.2 Pocket-PC SDK (Software Development Kit)
    After the primitive version on standard software development kit, the next version came on the Pocket-PC emulator running Windows CE and having a Pocket-PC software development kit. In Chapter 4 the details of the porting on Pocket-PC will be provided, but at this point of time an introduction to Pocket-PC software development kit is inevitable since this sdk is used to develop software for Pocket-PC platform very fast.
    2.2.1 Introduction to Pocket PC 2002

    Microsoft® Windows® Powered Pocket PC 2002 is a personal companion for mobile device users. It offers users the following:

    • An easy, seamless setup experience

    • An intuitive user interface

    • Powerful information management

    • A robust communications platform

    • Customizable user interface

    • Best companionship to Microsoft Outlook®

    2.2.2 Working with the Pocket PC 2002 Emulator

    The Microsoft® Windows® Powered Pocket PC 2002 SDK includes a new emulation environment. This environment provides a virtual computer running Pocket PC 2002 software compiled for the Intel x86 processor. The virtual computer duplicates hardware that runs Microsoft Windows CE on an x86-based PC.

    Previous Windows CE emulators relied on special emulator compilers that passed instructions to the underlying Microsoft Windows NT® operating system. This led to occasional dramatic differences in appearance and function between the emulator and a Pocket PC device. Because the new emulator is powered by the Windows CE operating system and by Pocket PC components, a much higher level of fidelity exists between an actual Pocket PC device and the device emulation environment.
    New APIs: The Pocket PC 2002 platform supports the following newly exposed APIs.

    • ActiveSync

    This API provides ActiveSync 3.5 functionality for the Pocket PC 2002.

    • Windows CE Messaging

    This API provides a set of interfaces to facilitate the development of messaging applications for the Pocket PC 2002.

    • Connection Manager

    This API provides the functionality necessary to centralize and automate the establishment and management of the network connections on a Pocket PC 2002 device.

    • HTML Control

    This API provides the functionality to customize the HTML viewer control; this API also includes an XML parser.

    • MIDI

    This API provides the capability to play MIDI files on a Pocket PC 2002 device. This API also provides the functionality to create custom sounds such as a DTMF tone or a busy signal.

    • Object Exchange (OBEX)

    This API provides one method for transmitting information between two Pocket PC 2002 devices. The OBEX protocol requires fewer resources than an HTTP server and transfers information by using the infrared port on the Pocket PC 2002 device.

    • Telephony

    This API is a superset that includes the following sections:

      • Assisted TAPI. Allows applications to make telephone calls without requiring the details of the services of the full Telephony API.

      • Extended TAPI. Extends wireless functionality to include such things as asking for signal strength, choosing the cellular network, and more.

      • Phone API. Provides the functionality to access a call log and creates a custom report from the information in that log.

      • Subscriber Identity Module (SIM) Manager. Allows access to information stored on the SIM card.

      • Short Message Service (SMS). Enables wireless devices to send and receive short messages through an SMS Center.

      • Telephony Service Provider. Supports communications device control through a set of exported service functions.

    Emulator: The Pocket PC 2002 SDK includes a new emulation environment. This environment provides a virtual machine running Pocket PC 2002 software compiled for the x86 processor. The virtual machine duplicates hardware known as a CEPC, which is a hardware configuration that runs Windows CE on an Intel x86-based PC.
    2.2.3 Programming Pocket PC 2002

    Microsoft® Windows® CE operating system version 3.0 for Windows Powered Pocket PC 2002 provides a powerful and easily portable platform for mobile professional users. It combines the power of a personal information manager (PIM), a compact

    Software package fully compatible with Windows-based desktop computers, and a Windows development environment. Pocket PC 2002 allows users to keep their personal and business information up to date and close at hand by using a sophisticated hardware design to fill the need for a more portable and less expensive device than traditional laptop or palmtop computers.

    Pocket PC 2002 is designed to quickly access, record, and transmit information at any time. The software bundled with Pocket PC 2002 manages contacts, appointments, and other personal and business information. By using the Voice Recorder application, users can capture ideas and thoughts as they occur. Pocket PC 2002 software can also store telephone numbers and short messages, and it can send and receive e-mail messages by using Internet technologies. All these features are fully compatible with the user's Windows-based desktop applications.

    Pocket PC 2002 gives the developer access to a rich development environment. The Windows CE operating system is based on the Microsoft Win32® application programming interface. The applications can be created by using Microsoft eMbedded Visual Tools (eVT) 3.0, which are special versions of the familiar Microsoft Visual Studio® tools that the developers may have used to write applications for desktop Windows. The developer can choose to develop applications by using Microsoft eMbedded Visual C ® or Microsoft eMbedded Visual Basic®. Embedded Shurti is developed using Microsoft eMbedded Visual C ®.

    Pocket PC 2002 supports a variety of input technologies, including freestyle drawing, handwriting character recognition, or a graphical representation of a keyboard for use on a touch screen.

    2.2.4 Pocket PC 2002 Hardware

    Original equipment manufacturers (OEMs) have a variety of hardware options when building Pocket PC 2002 devices. The following illustration shows the different hardware components available for a typical Pocket PC 2002.

    • Touch screen

    The touch screen is an LCD covered by a resistive touch panel. The LCD has a portrait orientation with a 240 x 320 pixel resolution, which allows users to see interface elements clearly. The dot pitch for Pocket PC 2002 is.22 to .24, depending on the OEM. Tapping the touch screen with a stylus or finger sends the same kind of messages that clicking with the left mouse button does on a desktop computer, although cursor support is limited to a spinning hourglass for wait signals. The user can also select and drag items. In order to sense quick changes in user input, the touch screen has a refresh rate of at least 100 samples per second. Pocket PC 2002 also supports up to a 16 bit per pixel color depth.

    • Stylus and keyboard

    Pocket PC 2002 does not have a standard, physical keyboard. Text input is accomplished by using the input panel and the stylus. Generally, the input panel is a standard window on the touch screen that displays an input method, allowing users to enter data in a variety of ways. Pocket PC 2002 software includes a simplified QWERTY keyboard input method and a handwriting recognition input method.

    The stylus is a pointer for accessing a touch screen and input methods. The stylus has a smaller point than a user's finger, yet will not scratch the touch screen.

    The OEM or a user can add additional input methods. For example, an independent software vendor (ISV) could create an input method for tapping in Morse code. The user could purchase the Morse code input method and install it at home.

    • Navigation controls

    Pocket PC 2002 comes with several navigation controls, which can be pressed, held down, double-clicked, or pressed in combination with other controls. The following table shows the default Pocket PC 2002 navigation controls.

    Navigation control



    Turns Pocket PC 2002 on and off

    Action button

    Acts as the ENTER key

    Record button

    Activates the Voice Recorder application

    Program button(s)

    Launches an application


    Acts as an UP ARROW key


    Acts as a DOWN ARROW key

    Some OEMs may add a silkscreen region, which is an extension of the resistive touch panel, to cover a non-LCD region of a Pocket PC 2002 case. This region is usually directly below the LCD. It is called a silkscreen region because it often has buttons applied by using a silkscreen process. While a silkscreen button is technically a software control, Pocket PC 2002 software does not distinguish between a silkscreen button and other navigation controls; both types of buttons send the same virtual key messages. The OEM is responsible for the driver that handles the silkscreen region.

    • Audio input

    Depending on the device category, some Pocket PC 2002 devices will not support audio input or playback.

    For devices that support audio, a built-in microphone is included. It is usually located on the front of the device, so that a user can view the screen while recording. The hardware supports 16-bit sampling at 8 kHz, and codec, the compression and decompression software, compresses the recording to 2.4 Kbps. The codec software is identical to a desktop computer's audio compression manager (ACM). OEMs may add a microphone jack for an external microphone. The jack is transparent to the software.

    • Audio output

    The developer can use the built-in speakers to play sounds associated with notification events. Speakers can also be used to play voice recordings or other .wav files, or for dual tone multifrequency (DTMF) dialing output. Some OEMs may add a headphone jack for headphones, external speakers, or other audio-out hardware. This jack is transparent to the software.

    • Printing

    Printing is not currently supported on the Pocket PC 2002.

    • Notification options

    An OEM may provide several notification options for a Pocket PC 2002: audio, a flashing LED, or vibration controls such as those on cellular phones and pagers. Although all three of these methods are supported by Pocket PC 2002, all except audio notification are OEM options.

    • Power

    Because a Pocket PC 2002 is portable, battery life is very important. Pocket PC 2002 can run many hours on its standard battery source, and also has a backup battery to avoid data loss if the primary battery loses power.

    • CPU

    Pocket PC 2002 uses the ARM family of CPUs. The ARM processors offer an excellent combination of high performance and low power consumption.

    • Memory

    All Pocket PC 2002 devices come with at least 24 megabytes (MB) of ROM and 16 MB of RAM. The upgrade edition offered by some OEMs for their Windows Powered Pocket PC devices is tailored to fit in the 16 MB of Flash RAM available on those upgradeable devices.

    Because it is important to conserve memory on a Pocket PC 2002, many Pocket PC 2002 operating system (OS) components are compressed in ROM. When a user needs a component, the operating system decompresses that component and transfers it to RAM. Because of the time required for decompression and transfer, compressed files slow performance.

    Pocket PC 2002 comes with a built-in 16550 (or equivalent) serial port and some OEMs may include a second serial port. Applications use the serial port for communication between a Pocket PC 2002 and other hardware devices at baud rates from 19.2 kilobits per second (Kbps) to 115.2 Kbps. A Pocket PC 2002 can connect to a desktop computer by using a serial cable or an optional docking cradle, available from many Pocket PC 2002 manufacturers, that is connected to the desktop computer. Some Pocket PC 2002 devices support data communications through a modem connected to the cradle.

    • Infrared communications serial port

    Pocket PC 2002 includes a serial port that conforms to Infrared Data Association (IrDA) specifications. Pocket PC 2002 devices can communicate with other Pocket PC 2002 devices, other Windows CE devices, Palm™ OS-based handheld computing devices, or desktop computers.

    Download 288.25 Kb.
    1   2   3   4   5   6

    Download 288.25 Kb.

    Bosh sahifa

        Bosh sahifa

    Device Driver Development

    Download 288.25 Kb.