Microsoft Windows Embedded Studio Development Tools for Windows XP Embedded
Microsoft® Windows® XP Embedded with Service Pack 1
Microsoft Windows Embedded Studio
Summary: Learn how to create customized, scalable embedded applications, deploy a runtime operating system image for an embedded application, or use advanced debugging features by using the Microsoft Windows Embedded Studio development tools for Microsoft Windows XP Embedded with Service Pack 1 (SP1). (7 printed pages)
Introduction to Windows XP Embedded
Windows XP Embedded Design Goals
Windows Embedded Studio Development Tools
The Windows XP Embedded with SP1 Development Process
New Features in Windows Embedded Studio
For More Information
Microsoft® Windows® XP Embedded with Service Pack 1 (SP1) is a fully componentized version of Windows XP Professional that includes embedded enabling features (EEF). Built on the same binary code as Windows XP Professional, Windows XP Embedded with SP1 includes key features such as standards-based security, manageability, reliability, Universal Plug and Play, and an easy-to-use user interface. It is targeted at embedded devices that are built on commodity PC hardware and require all Windows application program interfaces (APIs), services, and protocols. For more information about Windows XP Embedded with SP1, visit the Microsoft Windows Embedded Developer Center.
Windows XP Embedded with SP1 also includes predefined design templates to assist developers in rapid design startup. Templates include a sample for a set-top box, retail point-of-sale device, and kiosk. The design templates are included as macro components, which enable you to instantiate multiple components at once. When you instantiate a macro component, all components that are dependencies of the macro are instantiated.
Microsoft developed Windows XP Embedded in November 2001 with the following primary design goals:
- To deliver extensive componentization of the Microsoft Windows XP operating system, so that device manufacturers can choose from a broad, flexible set of features and functionality.
- To bring the most innovative, cutting-edge Windows technology to the embedded market within 90 days of the release of Windows XP.
The October 2002 release of Windows XP Embedded with SP1 incorporates valuable feedback from embedded partners and customers. Packed with many important enhancements, new features, and bug fixes, this version introduces numerous new embedded enabling features to create a higher-fidelity operating system. These new features include:
- New and updated operating system components. A new set of Windows XP Professional components provides new operating system features to support more application scenarios. These new features include the .NET Framework, USB 2.0 support, WinHTTP, Internet Protocol Version 6, and eHome components, which include support for Digital TV, Analog TV, Stream Buffer Engine, Video for Windows Core, and more.
- New macro components. A new set of "helper" macro components for several common configuration scenarios allows developers to quickly build a runtime image without having to identify specific hardware. A new set of "technology" macros provides shortcuts for integrating common Microsoft technologies such as Windows Media Player and Internet Explorer.
- Enhanced multi-language support. Windows XP Embedded with SP1 now supports 22 languages, eight out of the box and an additional 14 through Web downloads.
- Improved documentation. Windows XP Embedded with SP1 incorporates a refresh of the entire online Help system, including additional information within the component help files.
- New features in the development tools. Several important new features in Windows XP Embedded Studio address customer needs and greatly enhance development efficiency.
- Bug fixes. Critical bugs have been fixed in the latest release, further enhancing the stability, quality, reliability, and security of Windows XP Embedded with SP1.
Now that you have a general understanding of Windows XP Embedded with SP1 and how it differs from Windows XP Professional, it is important to understand its development tools, Windows Embedded Studio. Four development tools make up Windows Embedded Studio: Target Analyzer, Target Designer, Component Designer, and Component Database Manager. These authoring, analysis, and optional command-line tools assist developers in creating a customized operating system or runtime image.
With Windows Embedded Studio, developers can select from over 10,000 components (1,000 operating system components and 9,000 device drivers), build and customize their own components, and generate a bootable runtime image that contains only the functionality they select. They can extend the functionality by adding applications or devices that they or a third-party vendor create.
To put this into context, let’s say you are developing an application for a retail point-of-sale (RPOS) device. Your application may require a touch-screen monitor, serial port, CD-ROM, and modem, but may not require Internet access or special power options such as Advanced Configuration and Power Interface (ACPI). Once you have created a general device specification, you can use Windows Embedded Studio to configure your custom operating system for the retail point-of-sale device by using only the required components. This allows you to reduce the overall footprint of the image to include only those components necessary to effectively run your application.
The following sections provide more detail about the Windows Embedded Studio development tools.
It can be difficult to determine the exact device architecture for a computer motherboard by simply looking at it or by reading a set of specification documents. Making this determination requires in-depth knowledge of every device in the computer system and can be quite time consuming. Target Analyzer simplifies this process by collecting a relatively small amount of data on the target system and generating an eXtensible Markup Language (XML) definition of the target hardware in the form of a .pmq file. This .pmq file is a list of components from the target device that developers can import into Target Designer to create a basic device configuration.
The Target Analyzer probe provides various levels of hardware detection, depending on the operating system that is running on the device. Target Analyzer can be run in two forms. TA.exe is used when the desktop system is running MS-DOS. In a 16-bit operating system environment, TA.exe produces limited results and can only make an assumption regarding hardware abstraction layer (HAL) and CPU types. TAP.exe should be used when a system is running any other Windows operating system, such as Windows 2000, Windows XP, or Windows Preinstallation Environment (WinPE), which is included in Windows XP Embedded with SP1. Both forms of Target Analyzer generate a .pmq file, but TAP.exe requires less manual configuration than TA.exe and provides a more comprehensive end result.
Target Designer is the primary development tool in Windows XP Embedded. It is used to select, configure, and build a customized runtime image. This tool incorporates features such as a drag-and-drop user interface, easy component searching and filtering, and automated dependency checking to minimize the development process. Target Designer can perform the following operations:
Browse and select
- Advanced search and filter features allow developers to browse through the component database and search by category, driver type, design template, all components, and so on.
- Pre-selection estimation of footprint shows the incremental impact of adding a new component.
- Help files provide additional component information and assistance.
- Developers can select the necessary feature components from a database of all available Windows components, add them to the runtime configuration, and generate the customized OS image.
Operating system and component configuration
- The Target Designer Import function reads the .pmq file created by Target Analyzer to locate the device descriptions in the database. The resulting Windows Embedded configuration (.slx) file can be used as the basis for building a runtime image for the target device.
- Target Designer can add additional components that are needed for the target application.
- Target Designer provides operating system configuration of hardware support, file system, machine name, destination drive, and so on.
- Component configuration varies by component and is configurable through Dynamic Hypertext Markup Language (DHTML), enabling you to write a very rich user interface.
Custom operating system image building
- Check Dependencies identifies and adds required components. Once run, a task list prompts the user to correct errors and add components necessary to run a custom operating system.
- Target Designer builds a bootable operating system including registry hives and folders, populates binaries to folders, and builds the final runtime image.
Component Designer is the development tool that enables developers to design custom operating system components. Developers can save applications or devices they or third-party vendors create as components in the component database. They can use Target Designer to include these components in custom operating systems. Component Designer enables developers to perform the following tasks:
- Expand the capabilities of embedded devices by adding custom components
- Specify prototype, files, and registry systems
- Create multiple computer configurations, such as variations of a single device
Before you use Component Designer, you should determine your strategy for adding your application or driver as a component into the component database. After you determine the component requirements, which include files, registry entries, and component dependencies, you can enter that metadata into Component Designer by using one of the following methods:
- Create a new object definition, insert a component object into the definition, and manually enter metadata.
- Copy an object definition for a similar component, and then modify the information as appropriate for your component.
- Convert an .inf file into an incomplete object definition, and then complete the definition.
Component Database Manager
Component Database Manager allows developers to import their customized components into the database, and provides management utilities for tasks such as changing server location, viewing database objects, and managing platforms and repositories. The component database can reside on the development system or on a server, and can contain multiple platforms. Developers can use Component Database Manager to perform the following tasks:
- Import component data carrier (.sld) files into the component database.
- Change the database server location.
- Delete objects, such as platforms, packages, components, and repositories (however, Microsoft recommends that you do not delete a database object).
- Select a component database server to work with both Target Designer and Component Designer.
- Set up repositories.
- Change the repository search path.
Now that you have a few more details about the development tools, the next section briefly describes the development process for creating and deploying a Windows XP Embedded with SP1 runtime image. Complete these steps in order to successfully build a custom operating system.
- Create a new configuration or work with an existing configuration. With a new configuration, boot the target device, and then run the Target Analyzer probe to create a device list containing an entry for each installed hardware component.
- Prepare the target media. Format the target device so that it can boot from its permanent boot media.
- Move the device list to the development system, and then run the configuration generator script to create a basic configuration. If necessary, add components to the configuration.
- Run a dependency check and resolve dependency problems.
- Build the runtime image.
- Transfer, or deploy, the runtime image from the development system to the target device.
- Boot and test the runtime image on the target device.
Note In the process of developing an embedded runtime application based on Windows XP Embedded with SP1, you may need to repeat this procedure several times.
Figure 1. The Windows XP Embedded with SP1 development process
Windows XP Embedded with SP1 added several new features that enhance efficiency for developers of embedded applications. These new features include:
- Remote Boot. A new feature enables booting a runtime image on an embedded device across a network from a remote server by using Preboot Execution Environment (PXE). It includes the Remote Boot Manager, and is an extremely useful solution for diskless deployment scenarios.
- Device Update Agent (DUA). This lightweight management client enables servicing of devices of any size and scope that have been deployed to the field. DUA is a script-driven servicing engine that is ideal for updating applications or data or applying system updates. DUA is designed to address scenarios where it is necessary to incrementally patch or service a Windows XP Embedded device. It provides the flexibility to author custom update scripts from an extensive command set. Update scripts are then delivered locally to the device or published through a remote server.
- Component size estimation in Target Designer. This new feature shows every component size for easy reference, and allows developers to determine the impact of adding a component and all its dependencies before adding them to the configuration. This avoids having to add a component and perform the dependency check just to find out its impact, and greatly improves development efficiency.
- SDI2HD tool. This new 16-bit tool enables embedded system developers to extract runtime image data from a virtual disk single document interface (SDI) file and write it to a hard disk. The SDI feature, along with the new SDI2HD tool, offers easier staging and preparation of runtime images on development workstations. It also provides an easy method for transferring the runtime image from the development system to the device, greatly reducing the number of manual tasks necessary to deploy Windows XP Embedded runtime images.
- WinPE. This new feature facilitates faster image creation by allowing developers to boot from the Windows XP Embedded with SP1 Install CD and run TAP.exe directly after the boot. It is also useful for deploying images by using SDI Manager.
Windows XP Embedded with SP1 provides a way to create a wide variety of embedded applications with an easy-to-use set of development tools and a well-known operating system environment. By combining the quality and reliability of Windows XP Professional with application-focused development tools, you can work in an ideal development environment and can easily deploy a runtime operating system image for your application.
For more information about Windows XP Embedded with SP1 and Windows Embedded Studio, see the product documentation at this Microsoft Web site or Microsoft Windows XP Embedded Homepage at this Microsoft Web site.