|
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
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
|