Embedded System
Development Real Project with WinCE
Course Introduction:
- Customizing WinCE 4.2/5.0/6.0 OS design and deploying run-time image
- WinCE system application programming
- Hand-on experience in debugging and testing the System
- Board Support Package (BSP) development
- WinCE device driver experience (I2C, Serial port, USB)
- ARM9 microcontroller experience
- WDM device driver design experience under windows embedded (PCI, etc)
- Real project with IP communication product
Prerequisite:
- Electronic, computer, automation, control related Bachelor degree or higher
- Knowledge of micro controller/processor
- Knowledge of the C programming language
- Working knowledge of Windows
- Experience with Win32/MFC/.NET CF programming interface will be plus
- Good English for read and writing
Job Targets:
- Quality Technician or specialist
- Quality Assurance Engineer
- PV&V (verification and validation)
- Testing Engineer
- Windows CE application developer
- Windows CE device driver developer
- Windows CE BSP developer
- Windows CE software Engineer
- Windows device driver developer
- Windows software Engineer
- Embedded Software Engineer
Open Course: (2 hours)
Introduction of Embedded system development with WinCE
I Introduction of WinCE (Windows Embedded CE)
a what is WINCE?
b WinCE history
c What WinCE can do?
d Difference between Windows CE and Embedded Linux or others?
e Windows CE features
II WinCE job categories in embedded system development filed
a device driver and kernel development
b board support package (BSP)
c WinCE/Windows mobile application development
III WinCE system development job market analysis
a WinCE market shares in whole embedded OS market
b WinCE development job positions and required skills
- WinCE Testing Engineer
- Windows CE application developer
- Windows CE device driver developer
- Windows CE BSP developer
- Windows CE software Engineer
- Windows device driver developer
- Windows software Engineer
- Embedded software Engineer
IV WinCE learning tree
a Prerequisite for this course
- Electronic, computer, automation, control related Bachelor degree or higher
- Knowledge of micro controller/processor
- Knowledge of the C programming language
- Working knowledge of Windows
- Experience with Win32/MFC/.NET CF programming interface will be plus
- Good English for read and writing
b Course content (theory, lab, goals)
c Development environment (hardware and software)
d Real project introduction
Course outline: (total 40 hours)
Part I: Windows CE Development 7-course (28 hours)
1 Customizing the Operating System Design
■ Creating and customizing OS designs
■ Configuring Windows Embedded CE subprojects
■ Cloning components
■ Managing catalog items
■ Generating a Software Development Kit (SDK)
Lab 1: Creating, Configuring, and Building an OS Design
2 Building and Deploying the Run-Time Image
■ Building run-time images
■ Analyzing build results and build files
■ Deploying a run-time image on a target device
Lab 2: Building and Deploying a Run-Time Image
3 Performing System Programming
■ Monitoring and optimizing system performance
■ Implementing system applications
■ Programming with threads and thread synchronization objects
■ Implementing exception handling in drivers and applications
■ Supporting power management at the system level
Lab 3: Kiosk Mode, Threads, and Power Management
4 Debugging and Testing the System
■ Identifying requirements for debugging a run-time image
■ Using debugger features to analyze code execution
■ Understanding debug zones to manage the output of debug messages
■ Utilizing the CETK tool to run default and user-defined tests
■ Debugging the boot loader and operating system (OS)
Lab 4: System Debugging and Testing based on KITL, Debug Zones, and CETK Tools
5 Customizing a Board Support Package
■ Understanding the BSP architecture of Windows Embedded CE
■ Modifying and adapting BSPs and boot loaders for specific target devices
■ Understanding memory management and layout
■ Enabling power management in a BSP
Lab 5: Adapting a Board Support Package (BSP)
6 Developing Device Drivers
■ Understanding Device Driver
■ Implementing a Stream Interface Driver
■ Configuring and Loading a Driver
■ Implementing an Interrupt Mechanism in a Device Driver
■ Implementing Power Management for a Device Driver
■ Marshaling Data across Boundaries
■ Enhancing Driver Portability
Lab 6: Developing Stream Device Drivers
7 Complex Device Driver Development
■ USB Driver Stack
■ USB Protocol
■ USB Device driver Development
Lab 7: Developing WinCE USB driver
Part II: Windows XP Embedded Device Driver 3-course (12 hours)
8 Windows Driver Model (WDM) Basic
■ Overview of NT-based Operating Systems
■ Windows Driver Model and driver stack and type of device driver
■ Building and installing a driver
■ Debugging Kernel Mode Drivers Using SoftICE
■ Debugging Kernel Mode Drivers Using WinDBG
Lab 8: Debug WDM device driver
9 Simple WDM Driver Design
■ Driver Routines(DriverEntry, AddDevice, Dispatch Plug And Play, File I/O and Device I/O)
■ Data Structures(Driver Object, Device Object)
■ Driver Calling context -- Arbitrary vs. Non-Arbitrary
■ Enumerating device and building the driver stack
■ Removing device and tearing down the driver stack
■ PCI bus introduction and PCI interface driver design
Lab 9: Implement a PCI Scope Device Driver
10 Complex WDM Driver Design
■ Exceptions Software interrupts and hardware interrupt
■ Interrupt Request Level (IRQL)
■ Dispatching and Deferred Procedure Call (DPC)
■ Synchronization in KMDs
■ Servicing Interrupts
■ Synchronize with ISR in driver routines
Lab 10: Implement a simulation device driver
Project: WINCE-based IP communicator design in home automation
Instructor Name: Mr. Lu
Embedded Engineer Instructor’s Profile
- Over 15 years embedded system/software engineering development experience in different industry (Nuclear power plant, submarine/underwater robot, humanoid walking robot, digital TV, SDH/SONET telecommunication, security system/home automation)
- Senior embedded software engineer for 5 different companies (ZTE, Dr Robot, Tyco, etc)
- Strong experience in Embedded OS (Embedded Linux, WinCE, and VxWorks) and device driver development
- Master and Phd in automation control theory and engineering

(Let someone contact you)