Professional Windows® Embedded CE 6.0

Published by

Wiley Publishing, Inc.

10475 Crosspoint Boulevard

Indianapolis, IN 46256

www.wiley.com

Copyright © 2009 by Wiley Publishing, Inc., Indianapolis, Indiana

Published simultaneously in Canada

ISBN: 978-0-470-37733-8

Library of Congress Cataloging-in-Publication Data

Phung, Samuel, 1960-

Professional Windows embedded CE 6.0 / Samuel Phung.

p. cm.

Includes index.

ISBN 978-0-470-37733-8 (paper/website)

1. Embedded computer systems—Programming. 2. Real-time data processing. 3. Microsoft Windows (Computer file) I. Title.

TK7895.E42P49 2008

005.26—dc22

2008037338

No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Legal Department, Wiley Publishing, Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4355, or online at http://www.wiley.com/go/permissions.

Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without limitation warranties of fitness for a particular purpose. No warranty may be created or extended by sales or promotional materials. The advice and strategies contained herein may not be suitable for every situation. This work is sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services. If professional assistance is required, the services of a competent professional person should be sought. Neither the publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or web site is referred to in this work as a citation and/or a potential source of further information does not mean that the author or the publisher endorses the information the organization or web site may provide or recommendations it may make. Further, readers should be aware that Internet web sites listed in this work may have changed or disappeared between when this work was written and when it is read.

For general information on our other products and services, please contact our Customer Care Department within the United States at (800) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002.

Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Wrox Programmer to Programmer, and related trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. Windows is a registered trademark of Microsoft Corporation in the United States and/or other countries. All other trademarks are the property of their respective owners. Wiley Publishing, Inc., is not associated with any product or vendor mentioned in this book.

Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books.

About the Author

Samuel Phung has worked for more than 20 years in both the hardware and software areas of the computer industry. In the late 1980s, he worked for computer hardware companies. In the early 1990s, he led a financial database software development team, developing software for the banking industry. Later he led a software team developing Windows-based telephony applications for a venture capital-funded startup. In the late 1990s, he became engaged with the Windows Embedded product team, starting with Windows NT 4.0 Embedded. He has been working with Windows Embedded CE since version 2.12 was introduced.

He currently works for ICOP Technology, Inc., in El Monte, California, where he is responsible for strategic business development for the North American region. Among his Windows Embedded activities is initiating ICOP local-language web sites supporting the Taiwan, China, and Japan regions. He also maintains a personal web site, www.embeddedpc.net, to provide Windows Embedded information resources for new developers.

Phung graduated from California State University Long Beach (CSULB) in 1984 with an EE degree.

About the Technical Editors

Todd Meister has been developing using Microsoft technologies for more than 10 years. He’s been a technical editor on more than 50 titles ranging from SQL Server to the .NET Framework. He is an assistant director for computing services at Ball State University in Muncie, Indiana. He and his wife, Kimberly, live in central Indiana with their four children. Contact Todd at tmeister@sycamoresolutions.com.

Dan Francis has been working professionally in software development since he was 15 and is currently a software engineering manager for a Fortune 50 company. He lives with his wife and twin daughters in northern Maryland. Contact Dan at DanielEFrancis@gmail.com.

Credits

Acquisitions Editor

Katie Mohr

Development Editors

William Bridges

Tom Dinse

Technical Editors

Todd Meister

Daniel Francis

Production Editor

Kathleen Wisor

Copy Editor

Cate Caffrey

Editorial Manager

Mary Beth Wakefield

Production Manager

Tim Tate

Vice President and Executive Group Publisher

Richard Swadley

Vice President and Executive Publisher

Joseph B. Wikert

Project Coordinator, Cover

Lynsey Stratford

Proofreader

Publication Services, Inc.

Indexer

Robert Swanson

Acknowledgments

Going through the experience of writing a book for the first time has helped me realize the amount of work, effort, and support needed to get a book to print. I could not have done it without the supporting team working behind the scenes to help me.

First, I thank Sondra Webber at Microsoft and Katie Mohr at Wiley for making this book possible. I thank William Bridges at Wiley for reviewing my writing, providing valuable input, and helping correct many of the mistakes I made. I thank Todd Meister and Dan Francis for reviewing the technical contents.

Without the hard work of the Windows Embedded team at Microsoft, the Windows Embedded CE product would not be where it is today. My thanks to Mike Hall, Susan Loh, Gabriel Spil, Travis Hobrla, Riki June, and the Windows Embedded CE development team for posting useful information and answering my questions over the years. I also recognize James Y. Wilson, Avi Kcholi, Steve Maillet, Chris Tacke, Alex Feinman, Maarten Struys, David Heil, Bill Ma, Richard Lee, Paul Yao, Paul Tobey, Douglas Boling, and other Windows Embedded MVPs who contributed their time and knowledge to the news group and posted a large pool of technical resources online to benefit others. The base provided by this group of MVPs helped me gain valuable knowledge and resolved countless problems.

I also thank the following individuals who went out of their way and provided help beyond what was expected:

Ratheesh Rajan with the Windows Embedded CE BSP team

Jason Summerour from Robotics Connection

Chester Fitchett and Don Ha from Phidgets, Inc.

Most of all, I thank my wife, Ann, for her understanding, patience, and support while I took time away from the family to work on the book.

Introduction

Windows Embedded CE is a 32-bit, native, hard, real-time, small-footprint operating system developed by Microsoft to address the needs of handheld, mobile, and embedded devices. With support for multiple processor architectures, Windows Embedded CE can be adapted to a variety of devices like Smartphones, PocketPCs, set-top boxes, thin-client terminals, digital cameras, DVRs, VoIP, point-of-sale, point-of-information, network routers, wireless projectors, industrial automation, home and building automation, robotics, data acquisition, and human–machine interfaces.

In today’s fast-paced, unforgiving technology market, rapid application development, fast time-to-market, manageable development risks, and cost are key factors contributing to the success of any product development project. With its low-cost licenses, along with the developer-friendly Visual Studio environment and large pool of professional Visual Studio developers, Windows Embedded CE is an attractive operating system for developing a new generation of intelligent, multimedia, connected, and service-oriented embedded devices.

Views differ on likely market size and opportunities for Windows Embedded CE technology. While some CE-enabled products have strong visibility, such as the Windows Mobile Smartphone, Pocket PC, GPS navigation device, Zune media player, and Windows CE Thin Client terminal, many other devices are not visible to end-users, even though they may be using the devices daily. These devices are built to provide a set of designated functions, such as test instrument, data acquisition device, industrial automation controller, digital video recorder, printer, human–machine interface terminal, self-serve kiosk, and multimedia appliance. The companies building these devices use the Windows Embedded CE kernel technology and develop their own applications and appropriate user interfaces for the particular device. When the device powers on, it displays a splash screen with information to identify the device and the company while booting. After the boot process is completed, the device displays the application’s user interface, specifically designed for the device.

In the past, when referring to embedded development, many developers were thinking of low-cost 8-bit and 16-bit microcontrollers, with limited functionality, requiring the use of low-level, difficult-to-master programming languages and a user-unfriendly development environment. Rapidly evolving silicon technology, delivering faster and smaller processors, makes it possible to build smaller-footprint embedded controllers with faster processors while lowering the cost.

A new generation of 32-bit, high-performance, low-power, and small-footprint computing hardware is now readily available at low cost. These, coupled with Windows Embedded CE, provide the platform to develop a new breed of products. Companies can develop new products with additional features while lowering development time, maintenance, and product cost. This has changed the development landscape for the embedded-device market by enabling the Visual Studio developer, using Visual Basic, Visual C++, or C#, to develop new kinds of embedded devices. Embedded development is tightly coupled with writing software code and developing or finding appropriate hardware. The growing availability of embedded hardware, with support for Windows Embedded CE, helps expand the market and opportunities for CE.

Here are some of the new 32-bit embedded controllers built with the Vortex86 family of x86 processors, with costs ranging from under $100 to $200.

The Vortex86SX-6117 (shown in Figure I-1) is an embedded controller, built with a 300-MHz x86 processor, 128 MB RAM, 10/100 Mbps Ethernet, USB 2.0, RS-232, 16-bit GPIO, 2 MB SPI flash to emulate bootable floppy drive, and IDE interface to support bootable IDE flash storage. This embedded controller requires +5 V DC and 240 mA to operate, measures 1.96 × 3.14 inches, and costs less than $100.

Figure I-1

The Vortex86SX-6115 (Figure I-2) is an embedded controller, built with a 300-MHz x86 processor, 128 MB RAM, 10/100 Mbps Ethernet, two USB 2.0 host interfaces, three RS-232 serial ports, one RS-232/485 serial port, parallel port, 16-bit GPIO, 2 MB SPI flash to emulate bootable floppy drive, and IDE interface to support bootable IDE flash storage. This embedded controller requires +5 V DC and 360 mA to operate, measures 2.6 × 3.94 inches, and costs less than $150.

Figure I-2

The Vortex86SX-6150E (Figure I-3) is an embedded controller in PC/104 format, built with a 300-MHz x86 processor, 128 MB RAM, 10/100 Mbps Ethernet, USB 2.0, RS-232, 16-bit GPIO, 2 MB SPI flash to emulate bootable floppy drive, and IDE interface to support bootable IDE flash storage. This embedded controller requires +5 V DC and 360 mA to operate, measures 3.54 × 3.77 inches, and costs less than $150.

Figure I-3

The PDX-057T (Figure I-4) is a compact industrial panel PC with a 5.7-inch touch screen, providing 640 × 480 VGA display resolution. It’s powered by a 600-MHz Vortex86DX processor with 256 MB RAM, integrated 10/100 Mbps Ethernet, USB 2.0, RS-232, Compact Flash, and Ultra-DMA IDE. This device measures 5.98 × 4.41 × 1.3 inches and requires +5 V DC at 1.04 A to operate.

Figure I-4

The eBox-2300SX (Figure I-5) is a compact computing device, built with a 300-MHz x86 processor, 128 MB RAM, 10/100 Mbps Ethernet, three USB 2.0 host interfaces, two RS-232 serial ports, 24-bit GPIO, CompactFlash, and Ultra-DMA IDE interface to support bootable IDE flash storage. The eBox-2300SX is also available with an optional Wi-Fi 802.11 b/g wireless network interface. Measuring 4.5 × 4.5 × 1.375 inches, the basic version of eBox-2300SX, without wireless network and RS-232 ports, costs less than $100.

Figure I-5

The above five embedded devices represent a small sampling of the new breed of high-performance, small-footprint, and low-cost controllers available today. They are available from ICOP Technology and DMP Electronics. Additional product information is available from these web sites:

www.icoptech.com

www.compactpc.com.tw

In addition to supporting the x86 processor, Windows Embedded CE also supports the ARM, MIPS, and SH4 processors.

The combination of this embedded hardware and CE provides the development platform to support application development using Visual C++, C#, and Visual Basic. The Windows Embedded application development platform enables Visual Studio developers to adapt their existing skills with ease to developing a new breed of embedded device.

For the embedded developer new to this environment, the Windows Embedded CE and Visual Studio environment is efficient, developer-friendly, and easy to master. It’s definitely a good investment, with strong ROI, to adopt Windows Embedded CE for your embedded development project.

Whom This Book Is For

This book is suitable for all developers new to the Windows Embedded CE development environment. It does not cover operating system architecture, programming concepts, or how to write efficient code or develop real-time applications.

This book’s primary objective is to show you what resources are available as part of the Windows Embedded CE tool chains, where these resources are located, and how to use them. A series of exercises is provided, using simple and short examples.

If you are an embedded developer evaluating Windows Embedded CE, the information in this book will help shorten the time needed to go through the tool chains and set up the development environment.

If you are an existing Visual Studio developer programming in Visual C++, C#, or Visual Basic, this book will help broaden your opportunities and provide information to help you develop Windows Embedded CE applications quickly, using the skills you already have.

If you are a casual programmer or hobbyist, this book is definitely for you. We all like to tinker with toys (hardware). The CE development environment combines writing software code and developing or integrating embedded hardware, such as robotic and home automation projects. Whatever your programming skills may be, you can develop intriguing CE devices, using Visual C++, C#, or Visual Basic programming languages. With the help from this book, you’ll be doing mostly fun stuff rather than pulling your hair out, trying to figure out how things should work.

What This Book Covers

This book talks about the Windows Embedded CE development environment and uses simple exercises to show how to perform different development tasks. These exercises are created with Windows Embedded CE 6.0 Platform Builder and Visual Studio 2005. Following is a list of the covered subjects:

Windows Embedded CE Operating System overview

Windows Embedded CE development environment overview

Board Support Package

Building customized runtime image

Target device connectivity for image download

Debugging and debugging tools

Developing managed-code applications for Windows Embedded CE using Visual Studio

Developing native-code applications for Windows Embedded CE using Visual Studio

Autolaunch applications when Windows Embedded CE starts

Deploying a Windows Embedded CE 6.0 device with BIOS Loader

How This Book Is Structured

Each chapter in this book is written with minimal dependency on the other chapters. Although it’s recommended that you go through the chapters in order, the material in each chapter is self-contained. Following are brief descriptions of what’s covered in each chapter:

Chapter 1: Windows Embedded CE

Overview information about CE 6.0 shows the timeline for different releases of earlier CE versions and information about differences between Windows Mobile and Windows Embedded CE.

Chapter 2: Development Environment and Tools

As part of learning new technology, it’s important to understand the overall picture, related technologies, and development tools. This chapter provides information about the development environment and tools, focused for developers with different interests.

Chapter 3: Board Support Package

The board support package (BSP) is one of the critical components of CE, needed to develop the OS design, which, in turn, generates the runtime image. This chapter provides information about BSPs and shows how to create a customized one by cloning and modifying BSPs provided by Microsoft and third-party companies.

Chapter 4: Building a Customized CE 6.0 Runtime Image

This chapter provides information and samples showing how to use the Platform Builder tool to create a custom OS design project and compile a CE 6.0 OS runtime image from the OS design project.

Chapter 5: Connecting to Target Device

In this chapter, you’ll learn how to configure target connectivity between the development workstation and the target device to download the runtime image to the target device.

Chapter 6: Debugging and Debugging Tools

Debugging and tracing potential problems are important for every development project. This chapter provides information showing how to debug a CE 6.0 runtime image running on a target device and provides information showing the tools that are available to help carry out the debugging function.

Chapter 7: Boot Loader Overview

After the CE runtime image is created, a boot loader is needed to launch the runtime image on the target device. This chapter provides an overview of the boot loader and shows how to use the BIOS Loader, the boot loader for devices built with the x86 processor.

Chapter 8: The Registry

The registry is another critical component for a CE device. This chapter provides information about the registry and using hive-based registry implementation for persisting registry settings.

Chapter 9: Testing with CETK

The CE Test Kit (CETK) is a useful tool provided as part of the Platform Builder installation. The CETK tool is used to test BSPs, device drivers, and applications. This chapter shows how to set up and use the CETK.

Chapter 10: Application Development

This chapter provides general application development information for CE.

Chapter 11: Visual C# 2005 Applications

This chapter steps through an exercise showing how to develop a C# managed-code application using the Visual Studio 2005 IDE and the emulator as the target device.

Chapter 12: VB 2005 Applications

This chapter steps through exercises to show how to develop VB 2005 managed-code applications using the Visual Studio 2005 IDE and the eBox-4300-MSJK, a compact computing device as the target device. It also covers using the CoreCon connection framework to establish a connection between the Visual Studio 2005 development workstation and the eBox-4300-MSJK target device to deploy the VB 2005 application to the target device. This chapter works through the process and creates a complete serial port communication program using VB 2005 and the .NET Compact Framework.

Chapter 13: Native-Code Applications

In Chapter 13, you’ll step through exercises showing how to develop Visual C++ native-code applications using the Visual Studio 2005 IDE, and how to use the Platform Builder IDE to develop Win32 native-code applications.

Chapter 14: Autolaunch Applications

A CE device is designed to perform designated functions and launches a custom application designed for the device when powered on. This chapter provides information showing different methods available to launch an application when CE starts.

Chapter 15: Customizing the UI

This chapter provides examples showing how to launch the custom user interface (UI) when CE starts, to replace the standard Explorer shell.

Chapter 16: Thin-Client Applications

This chapter works through the process of creating thin-client applications using the provided design templates and takes you through simple exercises showing how to generate customized versions of thin-client applications that can be adopted and used for different kinds of information appliance applications.

Chapter 17: Home Automation Applications

Using the home automation application as an example, this chapter works through an exercise using the eBox-4300-MSJK and Phidget devices to develop a managed-code application, interacting with the hardware to read sensor data and turn external devices on and off.

Chapter 18: RFID Security Access Control Applications

Continuing from Chapter 17, using the eBox-4300-MSJK and Phidgets RFID reader, this chapter works through a simple exercise showing how to interact with the RFID reader to read data from RFID tags.

Chapter 19: Robotic Applications

This chapter works through two simple robotic applications using the eBox-4300-MSJK as the target device and the Serializer Robot Controller to provide robotic control.

Chapter 20: Deploying a CE 6.0 Device

During the development phase, the target device, boot loader, and runtime image were configured for development purposes. This chapter steps through the process to deploy a CE 6.0 device, using the eBox-4300-MSJK as the target device. The exercise in this chapter steps through the process to develop an OS design using the Windows Network Projector design template, generates the runtime image, and configures the eBox-4300-MSJK with the BIOS Loader. When completed, the exercise in this chapter transforms the eBox-4300-MSJK device into a Windows Network Projector system, capable of upgrading the existing computer projector to become a Windows Network Projector.

Appendix A: Windows Embedded CE References

There is a large pool of information resources available for Windows Embedded CE. This appendix provides references to some of these resources.

Appendix B: Installation and Software

The Windows Embedded CE 6.0 R2 development environment requires multiple pieces of software and updates for the software. Improper installation and missing software are the two major causes for many of the problems encountered by developers new to the CE development environment. This appendix provides information regarding installation and the software needed to work through the exercises in the book.

Appendix C: Sample Applications and OS Design Projects

A series of OS design and application development exercises is provided throughout this book. Some of these projects require certain versions of the programming library and BSP to function. When attempting to compile and build the sample project files provided as part of the software for this book, using mismatched versions of libraries and BSPs will generate errors. This appendix provides more detailed information about the sample projects provided with this book and shows how to modify the projects to support different versions of the libraries or BSPs, when possible. This appendix also provides information about additional sample projects.

What You Need to Use This Book

To work through the exercises in this book, you will need to have the following software installed:

Visual Studio 2005

Visual Studio 2005 Service Pack 1

Visual Studio 2005 sp1 upgrade for Vista (only needed for Windows Vista machine)

Windows Embedded CE 6.0

Windows Embedded CE 6.0 Service Pack 1

Windows Embedded CE 6.0 R2

ICOP_eBox4300_60E_BSP.msi board support package

VS2005_CoreCon_X86_WINCE600.msi CoreCon component for x86 processor

VS2005_CoreCon_ARMV4I_WINCE600.msi CoreCon component for ARMV4I processor

To work through the exercises in some of the chapters involving hardware, you’ll need the following hardware:

eBox-4300-MSJK

www.embeddedpc.net/ebox4300/

Phidget devices

www.phidgets.com

Stinger CE Robot

www.roboticsconnection.com/p-78-stinger-windowsce-kit.aspx

Conventions

To help you get the most from the text and keep track of what’s happening, I’ve used several conventions throughout the book.

Notes, tips, hints, tricks, and asides to the current discussion are offset and placed in italics like this.

As for styles in the text:

I show URLs and code within the text like so: persistence.properties.

I present code in two different ways:

I use a monofont type with no highlighting for most code examples.

I use gray highlighting to emphasize code that's particularly important in the

present context.

Source Code

As you work through the examples in this book, you may choose either to type in all the code manually or to use the source code files that accompany the book. All of the source code used in this book is available for download at www.wrox.com. Once at the site, simply locate the book’s title (either by using the Search box or by using one of the title lists) and click the Download Code link on the book’s detail page to obtain all the source code for the book.

Because many books have similar titles, you may find it easiest to search by ISBN; this book’s ISBN is 978-0-470-37733-8.

Once you download the code, just decompress it with your favorite compression tool. Alternately, you can go to the main Wrox code download page at www.wrox.com/dynamic/books/download.aspx to see the code available for this book and all other Wrox books.

Errata

We make every effort to ensure that there are no errors in the text or in the code. However, no one is perfect, and mistakes do occur. If you find an error in one of our books, like a spelling mistake or faulty piece of code, we would be very grateful for your feedback. By sending in errata, you may save another reader hours of frustration, and at the same time, you will be helping us provide even higher-quality information.

To find the errata page for this book, go to www.wrox.com and locate the title using the Search box or one of the title lists. Then, on the Book Details page, click the Book Errata link. On this page, you can view all errata that have been submitted for this book and posted by Wrox editors. A complete book list including links to each book’s errata is also available at www.wrox.com/misc-pages/booklist.shtml.

If you don’t spot “your” error on the Book Errata page, go to www.wrox.com/contact/techsupport.shtml and complete the form there to send us the error you have found. We’ll check the information and, if appropriate, post a message to the book’s Errata page and fix the problem in subsequent editions of the book.

p2p.wrox.com

For author and peer discussion, join the P2P forums at p2p.wrox.com. The forums are a Web-based system for you to post messages relating to Wrox books and related technologies and interact with other readers and technology users. The forums offer a subscription feature to e-mail you topics of interest of your choosing when new posts are made to the forums. Wrox authors, editors, other industry experts, and your fellow readers are present on these forums.

At http://p2p.wrox.com, you will find a number of different forums that will help you not only as you read this book, but also as you develop your own applications. To join the forums, just follow these steps:

1. Go to p2p.wrox.com and click the Register link.

2. Read the terms of use and click Agree.

3. Complete the required information to join as well as any optional information you wish to provide, and click Submit.

4. You will receive an e-mail with information describing how to verify your account and complete the joining process.

You can read messages in the forums without joining P2P, but in order to post your own messages, you must join.

Once you join, you can post new messages and respond to messages other users post. You can read messages at any time on the Web. If you would like to have new messages from a particular forum e-mailed to you, click the “Subscribe to this Forum” icon by the forum name in the forum listing.

For more information about how to use the Wrox P2P, be sure to read the P2P FAQs for answers to questions about how the forum software works as well as many common questions specific to P2P and Wrox books. To read the FAQs, click the FAQ link on any P2P page.

Chapter 1

Windows Embedded CE

While the traditional Windows desktop operating system (OS) developed by Microsoft was designed to run on well-defined and standardized computing hardware built with the x86 processor, Windows Embedded CE was designed to support multiple families of processors.

This chapter provides an overview of CE and improvements for the latest Windows Embedded CE 6.0 R2 release. Multiple Windows Embedded products, including Windows Embedded CE, are being promoted and supported by the same business unit within Microsoft, the Windows Embedded Product group.

What Is Embedded?

Embedded is an industry buzz word that’s been in use for many years. Although it’s common for us to hear terms like embedded system, embedded software, embedded computer, embedded controller, and the like, most developers as well as business and teaching professionals have mixed views about the embedded market.

To fully understand the potential offered by the Windows Embedded product family, we need to have good understanding about what’s considered an embedded device and embedded software.

Before getting into talking about Windows Embedded products, let’s take a brief look at what embedded hardware and software are.

Embedded Devices

A computer is an electronic, digital device that can store and process information. In a similar fashion, an embedded device has a processor and memory and runs software.

While a computer is designed for general computing purposes, allowing the user to install different operating systems and applications to perform different tasks, an embedded device is generally developed with a single purpose and provides certain designated functions. Often the embedded device is designed as a closed system and does not allow applications from other developers to run on the system.

Throughout our daily lives, each of us interacts with multiple embedded devices. Here’s a listing of some of the more common ones:

Telephone, car phone, and mobile phone

VCR, video CD player, DVD player/recorder, digital video recorder/player

Remote control for TV, audio system, DVD player, garage door opener, security systems for automobiles and other devices

Credit card reader, cash register, and self-service kiosk

Digital camera, camcorder, digital photo frame, and gaming console

Fax machine, copy machine, and printer

The above list contains only a few of the more common devices. It would take a much longer list to cover all embedded devices.

Embedded Software

Many software development projects use similar programming languages, such as the C language, with different operating systems and running on different types of hardware.

Fundamentally, the overall software development process should be the same regardless of the type of project. In an ideal situation, a competent project manager should evaluate the project thoroughly and establish the best possible development process to accomplish the tasks. Developers should use due diligence and apply their best efforts to reduce development time and to develop efficient code that can run on computing hardware in a way that minimizes resources used and cost of the product.

In the real world, it’s the business manager’s responsibility to deliver more profit while lowering costs. To the development team, this translates into having to solve more difficult problems with fewer resources.

The key difference between developing an embedded application and developing an application for the desktop computer has to do with the specifications for the application.

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!