Making%20Windows%20CE.net%20Work%20With%20Custom%20Platforms%20%20James%20Y.%20Wilson - PowerPoint PPT Presentation

About This Presentation
Title:

Making%20Windows%20CE.net%20Work%20With%20Custom%20Platforms%20%20James%20Y.%20Wilson

Description:

Free download status of eVC in question ... Windows CE Royalty begins at $3. Shared Source Licensing. Allows non commercial derivatives ... – PowerPoint PPT presentation

Number of Views:376
Avg rating:3.0/5.0
Slides: 43
Provided by: jamesy4
Learn more at: http://occs.ieee.org
Category:

less

Transcript and Presenter's Notes

Title: Making%20Windows%20CE.net%20Work%20With%20Custom%20Platforms%20%20James%20Y.%20Wilson


1
Making Windows CE.net Work With Custom Platforms
James Y. Wilson
2
Brief Biography
  • Lead software engineer for integration of CE on
    various custom platforms
  • Various publications on Windows CE system
    development
  • Coauthor of Building Powerful Platforms With
    Windows CE published by Addison-Wesley in Q4
    1999
  • Microsoft Embedded MVP
  • Developer of Windows 3.x/9x/NT device drivers

3
Agenda
  • Introduction to CE
  • OS Architecture
  • Steps to adaptation for custom platforms
  • Tool-chain
  • Real-time capabilities and limitations
  • Licensing options

4
Windows CE (In a Nut Shell)
  • 32 bit, preemptive, multithreaded
  • Real-Time
  • Used for implementation of PocketPC devices
    (PDAs, Phone Edition, SmartPhone devices)
  • Platform configurations for

Industrial controllers Web pads
Gateways Internet appliances
PDAs Mobile/IP Phones
Set top boxes
5
Available Apps and Services
  • End user apps
  • Viewers (Excel, Word, PowerPoint, Image, and PDF)
  • Inbox
  • Pocket Internet Explorer (PIE)
  • Internet Explorer (based on IE 6.0)
  • Remote Desktop
  • Terminal Emulation
  • VoIP
  • Windows Messenger
  • WordPad
  • MediaPlayer
  • Installers
  • More!
  • Service components
  • C/C libraries and runtime (exception handling,
    RTTI)
  • COM/DCOM
  • Active Template Library
  • .NET CF
  • SNMP
  • LDAP
  • Microsoft Message Queuing
  • MFC
  • OBEX
  • SOAP, XML (HTTP, XQL, XSLT, SAX)
  • SQL Server CE
  • Shells (console, graphical, skinnable, speech)

6
Windows CE Versions
  • Windows CE 1.0
  • Released fall 1996
  • Windows CE 2.0
  • Released 1997
  • 2.01 (service pack for 2.0)
  • Windows CE 2.1 Upgrade from Windows CE 2.0
  • 2.11 Introduced in 1998
  • Windows CE 3.0
  • Released 2000
  • Windows CE.net 4.0
  • Released 2002
  • Windows CE.net 4.2
  • Released 2003

7
Target Hardware
  • Minimum hardware requirements
  • Memory Management Unit for paged virtual memory
  • Timer
  • Certified 32 bit processor (ARM cores, MIPS, PPC,
    SH, x86)
  • Reference Platforms
  • Priced from 200 for x86 platform
  • Provides Board Support Package
  • Many single board computers and reference designs

8
OS Architecture
OEM
ISV, OEM
Microsoft
Applications
Embedded Shell
OEM Hardware
9
Modular OS
  • OS divided into .exe/.dll modules (NK.exe
    contains kernel)
  • Modules further divided using .lib files
  • Modules run in Flash (uncompressed) or RAM
    (compressed in Flash, uncompressed in RAM)
  • ROM image sizes
  • 400K minimum executive and file system
  • 1200K networking (IPv6, RTP, SMB/CIFS, RAS/PPP,
    WLAN, BT), no graphics
  • 4MB graphics, basic shell
  • 6MB hand writing recognition, etc.

10
Virtual Address Space
FFFF FFFF
03FF FFFF
COREDLL.DLL
Other ROM DLLs
NK Slot
C200 0000
Kernel Space
XIP DLL space
8000 0000
Large Memory Area (memory mapped files)
0200 0000
non-ROM DLLs
4200 0000
Slot 32
Process 32
4000 0000
Process 31
Slot 31
3E00 0000
. . .
Free virtual space
Stack (reserved space)
Heap (reserved space)
Resources
Read write data
0800 0000
Read only data
Slot 3
Process 3
0600 0000
Slot 2
Process 2
Code
0400 0000
DLLs
Slot 1 Slot 0
0001 0000
0200 0000
Act. Process
0000 0000
reserved
0000 0000
11
Steps for Adaptation to a Custom Platform
  1. Boot loader development
  2. OEM Adaptation Layer (OAL)
  3. Device driver development
  4. Selection/development of application suite
  5. Test and validation
  6. Platform SDK generation

12
Bootloader
  • Technically not required for production build
  • Performs minimal processor and memory
    initialization
  • Configures debug ports
  • Downloads OS image into RAM if debug (from TFTP
    server, serial, or parallel ports)
  • Vector to ROM if production or disconnected,
    otherwise RAM
  • Optionally provide OS update utility
  • Many examples provided in Platform Builder
    (dialup bootloader with security)

13
OEM Adaptation Layer
  • Contains platform specific code
  • Performs platform initialization
  • ISR (support for nested interrupts)
  • Implements power management
  • Provides specified services called by Kernel
  • Statically linked at build time to kernel
    (NK.exe)

14
OEM Adaptation Layer (2/2)
  • Source examples provided for various reference
    platforms
  • Available from 3rd parties in Board Support
    Package (BSP)

15
Device Classes
  • Defined Devices which share common attributes
    grouped to form a category or class
  • Enables congregation of common driver code
    (class/miniport model)
  • New device classes defined by Microsoft
  • Because primary calling module, GWES, not
    provided in source form

16
Device Classes (continued)
17
Device Driver Models
  • Defined Common mechanism for constructing
    interfaces between identified driver layers
  • Not an API, but a mechanism supported by a
    defined API
  • CE supports certain Windows 9x/NT driver models,
    other driver models unique to CE
  • ISVs and IHVs may define new driver models

18
Device Driver Models(continued)
  • Windows CE supported driver models
  • Stream-interface
  • NDIS 4.0
  • Printer Miniport (partial)
  • Native
  • Windows NT ACM
  • USB

19
Device Driver Architecture
Device Manager
Stream-interface
Stream-interface
Stream-interfaceDriver
MDD
Native Driver
DDSI
Card Services
PDD
Stream-interface
USB Interface
Stream-interface
NDIS Wrapper
USBD
USB Driver
NDIS
NDIS Miniport
HCD
Card Services
NDIS Wrapper
20
Device Driver Architecture(Continued)
GWE Subsystem
DDI
DDI
MDD
Monolithic Device Driver
Native Driver
Defined by Microsoft
DDSI
PDD
21
Device Driver Architecture(Continued)
  • Consists of DLLs and object module libraries
  • Drivers run in user mode
  • Allows access to application level resources
    (MFC, COM, ATL, etc.)
  • Prevents kernel crashes due to driver exceptions
  • Supports software assisted driver debugging

22
Device Manager
  • Primarily dedicated to Stream-interface Drivers
  • Loading and unloading
  • Translation of application level calls
  • Power management notifications
  • Enumeration of PC Card devices
  • Exists in a separate process space
  • Implications for buffer pointers
  • Single driver instance shared by all calling
    applications

23
Stream-interface Driver Model
  • Used most commonly
  • Basis of certain driver models (ex. USB and
    NDIS)
  • Supports installable devices
  • Standard Win32 file I/O interface
  • Exposed only through the Device Manager
  • Often used in combination with the Native Driver
    Model

24
Stream-interface Driver Model(Continued)
  • Required entry points (XXX Device File Name) in
    approximate order of initialization
  • XXX_Init
  • XXX_IoControl
  • XXX_Open
  • XXX_Read
  • XXX_Write
  • XXX_Seek
  • XXX_PowerUp
  • XXX_Deinit
  • XXX_Close
  • XXX_PowerDown

25
Native Driver Model
  • Supports onboard devices only
  • Provides class/miniport layering
  • Model Device Driver (MDD) layer
  • Provided by Microsoft
  • Communicates with GWES and kernel
  • Handles interrupts
  • Platform Dependent Driver (PDD) layer
  • Contains code to access the hardware
  • Focus of changes for integration of CE with a
    custom platform

26
Other Device Driver Models
  • Services.exe, intended for non-device related
    modules
  • USB Driver Model
  • NDIS 4.0 miniport
  • Printer miniport
  • Audio Compression Manager
  • Many drivers implemented using a hybrid driver
    model (ex. RS-232 serial driver)
  • Implementation of custom driver models possible
  • Driver Control Program (DCP) must be defined
    (ex. USBD.dll)

27
Processing Interrupts
  • Different for installable devices (ex. PC Card
    and USB)
  • For onboard devices, first processed by an ISR in
    the OAL
  • Lower priority interrupts disabled while in ISR,
    with nesting of higher priority interrupts
  • Interrupt Service Thread (IST) is signaled
  • IST generally running at high priority, do not
    block on resources in lower priority threads

28
Processing Interrupts
29
Accessing Physical Resources
  • Must request user mode address mapped to physical
    memory
  • May use functions available in CEDDK.LIB
  • Other driver models provide similar functions
  • Example source...

30
Accessing Physical Resources
define UNCACHED_OFFSET 0x80000000 define
UNCACHEDMEMORY(address) (address \
UNCACHED_OFFSET) define
MY_DEVICE_FRAME_BUFFER 0xB0000 define
MY_DEVICE_FRAME_BUFFER_LENGTH 0x20000 PVOID
pMappedMemory MmMapIoSpace((PHYSICAL_ADDRESS)
UNCACHEDOFFSET(MY_DEVICE_FRAME_BUFFER),
(ULONG)MY_DEVICE_FRAME_BUFFER_LENGTH, FALSE)
ASSERT(pMappedMemory !
NULL) ... MmUnmapIoSpace(pMappedMemory,
(ULONG)MY_DEVICE_FRAME_BUFFER_LENGTH)
31
Platform Builder
  • Platform Configuration
  • Used to select modules in OS image
  • Configures link and locate
  • Wizard provided to begin with reference platform
  • Module Development
  • Supports device driver and application
    development
  • Built separately from OS image

32
Platform Builder (2/3)
  • Debugging
  • Configurable connections to platform (TCP/IP,
    ActiveSync, Serial, or custom)
  • Single step and conditional break points
  • Support for hardware-assisted debugging (useful
    for OAL)
  • Process, thread, module, and memory windows
  • Tracking of kernel state
  • Call profiling

33
Platform Builder (3/3)
  • Builds ROMable OS image
  • Provides emulation to load and test OS image
  • Supports creation of custom Platform SDK
  • Demo Emulator, Break point, process viewer,
    Kernel Tracker, call profiling

34
Platform Builder Demo
35
Other Tools
  • eMbedded Visual C 3.0
  • Used for Pocket PC 2002 (CE 3.0 devices) and
    earlier
  • eMbedded Visual C 4.0
  • Used for Pocket PC 2003 (CE 4.0 devices) and
    later
  • Visual Studio.net
  • Used for managed code development (.net Compact
    Framework)
  • Both eVC products to be merged with Visual Studio
  • Free download status of eVC in question
  • Windows CE Test Kit (CETK, see downloads) for
    scriptable application and system testing

36
Real Time Capabilities
  • 256 priority levels
  • Scheduler granularity of 1 millisecond
  • Thread Quantum defined independent of timer tick
    (set to 0 for run to completion)
  • Decouples thread quantum (time slice) from timer
    tick
  • Nested interrupts
  • ROM compression optional (avoids page faults)
  • Multiple XIP regions
  • Full kernel mode supported
  • Priority Boosting

37
Real-Time Capabilities (2/2)
SH4 198MHz Windows CE 3.0 Pentium 100 MHzWindows CE 3.0 Pentium 100 MHzWindows CE 3.0QFE
ISR Min us 0.9 1.9 1.9
ISR Max 9.1 5.7 5.7
ISR Average 2.9 2.8 2.8
IST Min 14.8 12.9 9.6
IST Max 54.3 163.3 55.6
IST Average 38.2 28.7 26.4
Jitter Max 40 150 46
Source http//msdn.microsoft.com/library/defaul
t.asp?url/library/en-us/dnce30/html/realtimecapab
ilities.asp
38
Licensing Options
  • Platform Builder cost 995/seat
  • Windows CE Royalty begins at 3
  • Shared Source Licensing
  • Allows non commercial derivatives
  • Allows debugging commercial products
  • Redistribution program available CE devices
  • See Web Sites for additional reference

39
Downloads
  • Platform Builder Evaluation Kithttp//www.microso
    ft.com/windows/Embedded/ce.NET/evaluation/trial/ev
    alkit.asp
  • eMbedded Visual C 3.0eMbedded Visual C
    4.0http//msdn.microsoft.com/vstudio/device/embed
    ded/download.aspx
  • All other downloads (including CETK)http//www.mi
    crosoft.com/windows/embedded/ce.net/downloads/defa
    ult.asp

40
Documents
  • CE Real Time research docs
  • Real-Time Evaluation by Dedicated Systems
    http//www.microsoft.com/windows/embedded/ce.net/e
    valuation/performance/dedicatedsys.asp
  • Real-Time and Windows Embeddedhttp//www.microso
    ft.com/windows/Embedded/community/experto/july2002
    /nframpton.asp
  • Windows Embedded Real-Timehttp//www.microsoft.c
    om/windows/Embedded/community/experto/july2002/jao
    keefe.asp
  • Performance Test Methodologies for Windows CE
    .NEThttp//msdn.microsoft.com/library/default.asp
    ?url/library/en-us/dncenet/html/perfmethod.asp?fr
    ametrue
  • Designing and Optimizing Microsoft Windows CE
    .NET for Real-Time Performance http//msdn.micros
    oft.com/library/default.asp?url/library/en-us/dnc
    enet/html/rtnetdesigning.asp

41
Web Sites
  • Product Overview
  • http//www.microsoft.com/windows/embedded/ce.net/e
    valuation/overview/default.asp
  • Shared Source License Information
  • http//www.microsoft.com/windows/embedded/ce.net/e
    valuation/sharedsource/default.asp
  • Runtime Licensing Model for CE .NET 4.2
  • http//www.microsoft.com/windows/Embedded/ce.NET/h
    owtobuy/sku.asp
  • Development Community Web Sites
  • WindowsForDevices.com http//www.windowsfordevice
    s.com/
  • Pocket PC Developer Network http//www.pocketpcdn
    .com
  • The Code Project http//www.codeproject.com/ce/
  • Evangelist Web Sites
  • Pocket PC Passion http//www.pocketpcpassion.com/
  • CE Windows.NET http//www.cewindows.net

42
Conclusion
  • Modular operating system
  • Various driver models with nested interrupts
  • Custom Kernel Image through PB
  • Flexible Real-Time performance characteristics
  • Low cost licensing
  • CEs total integration advantage
Write a Comment
User Comments (0)
About PowerShow.com