About Apex InfoTech Information Services Products Consulting Online Courses Certifications Course Schedule Reserve your seat Search Apex InfoTech Home Page
Course ScheduleSearch by Course NumberPrint this documentEmail this documentRegister for this course

Building Embedded Solutions using Windows CE 5.0

Course 25401 Also Known as (2540N): 5 days; Instructor-Led

Introduction

The goal of this course is to provide developers and system integrators the solid foundation they need to develop high-quality embedded solutions using Microsoft Windows CE 5.0.

Audience
This course is intended for system integrators and system administrators within OEM organizations who are responsible for building and configuring the Microsoft Windows CE 5.0 platform.

At Course Completion
After completing the course, students will be able to:

Create an advanced build of Windows CE image.
Describe the concepts of advanced debugging.
Describe the Windows CE kernel features.
Provide an overview of driver development in Windows CE 5.0.
Describe the networking and communications technologies used in Windows CE 5.0.
Learn about the shell options included in Windows CE 5.0.
Describe the application development environment for building a Windows CE 5.0 operating system image.

Prerequisites

Course attendees should have working knowledge of C/C++ and experience in developing Embedded Systems, including interrupt handling and hardware programming. No prior knowledge of Windows CE or Platform Builder is required.

Microsoft Certified Professional Exams
There are no Microsoft Certified Professional exams associated with this course.

Student Materials
The student kit includes a comprehensive workbook and other necessary materials for this class.

Course Outline

Day1: Overview and Architecture

Module 1-1: OS Architecture
The following topics are covered in this module:

  • What is Windows CE?
  • What's New in Windows CE 5.0?
  • Terminology
  • Platform Builder and Tools
  • OS Build System
  • Windows CE SDKs
  • Application Development Tools

After completing this module, you will be able to:

  • Understand OS Architechture
  • Understand the role of OAL
  • How to perform basic Build of the OS
  • How to add an Application into the build
  • Understand the difference between the development tools. (Platform Builder, eVC4++SP4, VS.NET 2003 and 2005)

After completing this lab, you will be able to:

  • Create a new Board Support Package from exisiting BSP
  • Create a new OS design from a template
  • Add components from the catalog to customize your OS Design
  • Configure and build a run-time image

Module 1-2: Overview of OS Build Steps and Phases
The following topics are covered in this module:

  • Directory Structure of Platform Builder
  • Environment Variables in the Build
  • The Build Process

After completing this module, you will be able to:

  • Windows CE Build system folder structure
  • Build system (IDE and Command Line)
  • SYSGEN
  • Build Release
  • Makeimg

After completing this lab, you will be able to:

  • Discover the location of the build system files
  • Understand the general flow of the build system
  • Gain a solid basis for further independent discovery

Module 1-3: Overview of Application Development Tools
The following topics are covered in this module:

  • Application development options
  • Platform Builder
  • eVC++
  • Visual Studio .NET 2003 and 2005

After completing this module, you will be able to:

  • Managed Code vs. Native Code
  • the concept of SDK

After completing this lab, you will be able to:

  • Create a distributable SDK for your OS Design
  • Use Visual Studio to develop a managed code application
  • Use eVC++ to develop an unmanaged code (Native code) application

Module 1-4: OS Architecture
The following topics are covered in this module:

  • System Architecture
  • NK.EXE
  • FILESYS.EXE
  • DEVICE.EXE
  • GWES.EXE
  • SERVICES.EXE
  • Thread Migration

After completing this module, you will be able to:

  • Micro Kernel Architechture
  • Thread Migration between processes for system calls

After completing this lab, you will be able to:

  • Disable kernel debugging and update run-time image
  • Create new headless platform
  • Build and download Windows CE image to target device
  • Launch Platform Builder target tools
  • Configure and launch platform Manager remote tools
    • Use Remote Process Viewer
    • Use Remote File Viewer
    • Use Remote Registery Editor
    • Use Remote Zoom-in Editor
    • Use Remote System Information
    • Use Remote Spy
    • Use Remote Performance Monitor
    • Use Remote Heap Walker

Day2: System Programming

Module 2-1: Memory Architecture
The following topics are covered in this module:

  • Virtual Memory Model
  • Static Mapped Virtual Addresses
  • Process Model
  • Process Memory
  • Processes
  • Modules
  • Heaps
  • Stack

After completing this lab, you will be able to:

  • Create new application using new project wizard
  • Build and download Debug application into target device
  • Familiarity with windows CE process and memory models

Module 2-2: Kernel Core
The following topics are covered in this module:

  • Scheduler
  • Thread Priority Map
  • Priority Inversion
  • Thread API
  • WatchDog Timers
  • Access Permission

After completing this lab, you will be able to:

  • Add profiling support
  • Locate files associated with profiling
  • Operate windows CE Remote Kernel Tracker

Module 2-3: Synchronization Objects
The following topics are covered in this module:

  • Synchronization Objects
  • Interlocked Functions
  • Critical Sections
  • Mutexes
  • Semaphores
  • Events
  • Point to Point Message Queues

After completing this lab, you will be able to:

  • Explain the different types of synchronization available in windows CE
  • Understand differences between Synchronization objects

Module 2-4: Windows CE Interrupt Model
The following topics are covered in this module:

  • Interrupt Model
  • Interrupt Processing
  • Interrupt API
  • Installable ISRs

After completing this lab, you will be able to:

  • Use Kernel Tracker to monitor interrupt behavior in Windows CE devices
  • Understand and describe the Windows CE interrupt architechture.

Module 2-5: Exploring Debug Zones
The following topics are covered in this module:

  • What are Debug Zones
  • Defining Debug Zones
  • Declaring Debug Zones
  • Registring Debug Zones
  • Using Debug Zones

After completing this lab, you will be able to:

  • Create application and Dlls that use Debug Zones.
  • Use Debug Zone filtering in platform builder

Day3: Build System Under the Hood

Module 3-1: Building with DIRS and SOURCES
The following topics are covered in this module:

  • Build.EXE
  • DIRS Files
  • SOURCES Files
  • SOURCES and the IDE
  • SOURCES.CMN

After completing this lab, you will be able to:

  • Use DIRS and SOURCES files to build modules (EXE, DLL, LIB)
  • Explain the role of the public folders in the build process
  • Set up a basic custom public folder for use in multiple BSPs and OS Design

Module 3-2: The Catalog, CEC Files, and SYSGEN variables
The following topics are covered in this module:

  • Windows CE Catalog
  • New Role of catalog in V5.0
  • Catalog View
  • CEC File

After completing this lab, you will be able to:

  • Create and import CEC files for custom modules and components
  • Understand the role of the CEC file in the catalog

Module 3-3: Deep Into SYSGEN
The following topics are covered in this module:

  • Build Tools
  • Phases of the Build
    • Pre-Sysgen
    • SYSGEN

After completing this lab, you will be able to:

  • Create Public projects that utilize sysgen filtering
  • Explain the difference between modules and components
  • Understand the role of sysgen filtering in the OS build process

Module 3-4: Using the Private Branch
The following topics are covered in this module:

  • Why Private Source?
  • The Private Folder
  • Private Build Output Locations
  • Making a project Private
  • Building private code

After completing this lab, you will be able to:

  • Make your code source private
  • Understand the build process of the Microsoft Shared Source

Module 3-5: Understanding PBPXML Projects
The following topics are covered in this module:

  • PBPXML Files
  • Sample PBPXML File
  • PBProject

After completing this lab, you will be able to:

  • Create and use PBPXML projects
  • Add OS Dependencies for a PBPXML project

Day4: System Initialization and Startup

Module 4-1: System Initialization and Startup
The following topics are covered in this module:

  • Bootleader
  • Startup()
  • OAL
  • Kernel
  • FileSys
  • Launching Applications at Boot
  • Boot Process Big Picture

After completing this lab, you will be able to:

  • Replace the Windows CE Shell with a custom HTML based Shell
  • Clone a feature from the public folder

Module 4-2: Driver Loading and the Registry
The following topics are covered in this module:

  • ActivateDeviceEx()
  • DeactivateDevice()
  • Driver Registery Settings

After completing this lab, you will be able to:

  • Use ActivateDeviceEx() and DeactivateDevice() to load and unload device drivers at runtime
  • Programmatically add values to the registry

Module 4-3: Loading Drivers at Boot Time
The following topics are covered in this module:

  • Device Manager
  • Bus Enumerator (BusEnum)
  • Sample Registry

After completing this lab, you will be able to:

  • Avoid load order dependency issues
  • Setup registry keys so device drivers load at boot time.

Module 4-4: PnP Notification System
The following topics are covered in this module:

  • Plug and play notification System
  • Point to point Message Queues
  • Device Interface Class Identifiers
  • Receiving Notifications

After completing this lab, you will be able to:

  • Create a Device Driver that utilizes File System Notifications
  • Use Message Queues

Module 4-5: Using Standard Shell Startup Application Folder
The following topics are covered in this module:

  • Standard Shell
  • Shell Shortcut
  • Startup folder
  • Typical Application

After completing this lab, you will be able to:

  • Create an Application that runs at startup

Module 4-6: Using the Standard CETK Tests
The following topics are covered in this module:

  • Windows CE Test kit(CETK)
  • Tux "server"
  • Kato Logging Engine
  • Device Driver Loader and Tux Extender
  • Custom TUX Tests

After completing this lab, you will be able to:

  • Run automated tests using the windows CE Test Kit
  • Modify the default behavior of the standard tests

Day5: Advanced Configuration

Module 5-1: Headless Devices and PnP
The following topics are covered in this module:

  • Windows CE Myths
  • Example headless Scenario
  • Networking
  • Other connectivity options
  • minimal GWES
  • No GWES
  • UPnP

After completing this lab, you will be able to:

  • Create a custom new platform wizard to support creating headless devices
  • Build a headless device with the emulator
  • Run the web server on a Windows CE based Device
  • Use PnP as a control interface for a headless device

Module 5-2: Source Control
The following topics are covered in this module:

  • Selecting BSP and OS Design for Source Control
  • Cleaning intermediate files
  • Scripting the build Process
  • Fresh Code from Source Control
  • Building from Command Line
  • Saving Logs and results
  • Detecting Build errors
  • Adding Automation labels to run time image

After completing this lab, you will be able to:

  • Seperate BSP and project source from intermediate and build output files
  • Use Visual Source Safe 6.0
  • Create a command-line build environment
  • Create a simple build automation script.

For more information or to give feedback, send e-mail to info@OneApex.com or call 949-597-2100