Title: Windows CE.NET Version 4.2
1Windows CE.NET Version 4.2
For Israeli Embedded User Group Avi Kcholi
2Windows CE .NET Design Goals
- Modular and compact operating system
- Wireless and wired connectivity
- Robust real-time capabilities
- Rich multimedia and multilingual support
- Strong development tool support
3What Is New in Windows CE .NET 4.2?
- Internet Explorer 6.0 for CE
- Base configurations
- Digital Media Receiver
- Enterprise Terminal
- Gateway
- Internet Protocol (IP) Phone
- Display driver enhancements
- Improved Windows CE .NET Test Kit (CETK) features
- IP Firewall
- Four pre-qualified Bluetooth profiles
- Dial-up Networking Profile
- LAN Access Profile
- Object Push Profile
- File Transfer Profile
4Basic Configurations
- PDA or mobile handheld device
- Variants with our without applications, such as
WordPad - Cell phone/smart phone
- 160x220 nominal display resolution
- Enterprise Web Pad
- Touch-screen user interface and 640x480 or larger
display - Internet appliance
- Browser-based with a fixed (CRT or LCD) display
and a keyboard. - Digital Media Receiver
- Playback or store music, video, and other
electronic media
5Basic Configurations
- Digital imaging device
- Camera, projector, and printer
- Enterprise Terminal
- Point of sale, self service kiosks
- Gateway
- Connects to the Internet and shares that
connection with a wired or wireless home network - Internet Protocol (IP) Phone
- VOIP
- Industrial controller
- Human Machine Interface (HMI) or Programmable
Logic Controller (PLC) variants
6Basic Configurations
- Tiny Kernel
- Smallest functional Windows CE image
- Starting point for the most compact, headless
devices - Custom Device
- The most fully customizable configuration
- Allows you to choose from all operating system
features - Also a variant for devices without displays
7Target Hardware Support
8Core Operating System Architecture
Applications
Programming Interfaces (Win32, COM, MFC, ATL)
Communications interfaces (Winsock, RAS, TAPI)
GWES
Kernel
Filesys
Networking and Communications System
Device Manager
Device Drivers
OAL
Hardware
9The OEM Adaptation Layer
- Layer between the Kernel and the hardware
- Set of functions related to system startup,
interrupt handling, power management, profiling,
timer, and clock - Included in BSPs for supported SDBs
- Coded by OEMs to adapt windows CE to their own
custom platforms - Linked with code provided by Microsoft to build
the Kernel
10The Kernel Module
- Portable across supported processors
- Kernel is portable as most of the operating
system is written in C - NK.EXE, COREDLL.DLL
- NK.EXE contains Kernel code and Coredll.dll is
the operating system core DLL module - Saving system resources
- CE loader is designed to save system resources by
loading application pages as and when needed and
by keeping only one physical copy of a DLL - Demand paging
- Loads virtual memory pages into physical memory
when needed - Multiple execute in place regions
- Allows applications to execute code directly from
read-only memory
11Device Driver System
- Device driver
- Links an operating system and a device
- Built-in Drivers vs. Installable Drivers
- Built-in drivers are installed by the platform
manufacturer - Installable drivers are third-party peripheral
devices that end users can connect to a Windows
CE-based platform - Native Drivers vs. Stream Drivers
- All of the device drivers managed by GWES are
native device drivers - Device manager loads stream interface drivers
when the system boots, if those drivers are
listed in the registry - Monolithic Drivers vs. Layered Drivers
- Monolithic drivers implement interface directly
in terms of actions on the device they control - Layered drivers separate the implementation into
two layers
12The GWES Module
- Graphics, Windowing, and Event Subsystem
- Graphic output display and printer
- User input keyboard, stylus, and mouse
- Window management message routing
- Graphic Device Interface (GDI)
- Is the drawing subsystem of GWES
- Controls how text and graphics are displayed
- Uses a device context to store drawing attributes
for a specified device
13The Filesys Module
- The Filesys Module
- Implements the object store
- File systems
- Registry
- Property Database
- Substitutes for a hard drive on an embedded drive
- Resides in ROM, RAM, or both
- Can have a maximum size of 256 MB
14The Filesys Module (continued)
- Storage manager
- Is responsible for all external storage items,
including all the file systems and block drivers - Installable file systems
- Can provide access to a floppy diskette, a hard
drive, a flash file system on a PC Card, or to
other external storage devices - File-shadowing mechanism
- Allows a file to be stored both in RAM and ROM.
- Differences from other Windows file systems
- No letters assigned to file systems
- No concept of current directory
- No support for overlapped I/O
- All files stored in RAM are automatically
compressed
15The Filesys Module (continued)
- Registry
- Provides a common repository for system settings,
application data, and user preferences - Resides in RAM, if not present in RAM, the
registry can be reloaded from persistent storage
or rebuilt from ROM - Registry functions specific to Windows CE
- Property Database
- Provides a lightweight database management system
- Accessible using a new set of Win32 API functions
specific to Windows CE - Data stored in a flat model
- Accessible to ActiveX Data Objects for Windows CE
(ADOCE) - Supports multiple volumes on installable file
systems
16Real Time Operating System
- Bounded interrupt response latency
- Timer precision configurable (1 millisecond
default) - System timer tick independent of thread quantum
- Nested interrupt support
- Priority inheritance
- Protected virtual memory
- Synchronization objects
17Power Management Features
- Power management features respond to system calls
for turning the system off or for idling - Device level power states, DO-D4
- D0 Full on Full power with full functionality
- D1 Low On Slightly reduced functionality,
lower power and/or performance - D2 Standby Partial power with automatic wake
- D3 Sleep Partial power with device initiated
wake - D4 Off Power off
- The only device power state that all devices must
support is D0, full on
18Advanced Features of Windows CE .NET
- Networking and Communications
- Real-Time Communication
- Multimedia
- Security
- Internationalization
19Networking and Communications
- Networking and Communications Architecture
- Wireless Platform Support
- Component Object Model
- Additional Networking Features
- Networking Scenarios
20Networking and Communications Architecture
21Wireless Platform Support
- 802.11 zero configuration and 802.1x
- Enables roaming with minimal configuration and
logon using user/password and certificate - Bluetooth
- Supports dial up networking, WLAN access and
object exchange - NDIS 5.1
- Wireless enhancements, battery status
- MediaSense
- Connect/disconnect, roaming in range/out of range
notifications
22Component Object Model
- COM is a platform-independent object-oriented
system - OEMs can choose from the different levels of
run-time support - Minimal COM (MCOM) provides baseline API set
- COM provides a mid-range implementation of COM
and OLE automation - COM Storage (COM_STG) combines the midrange COM
implementation with structured storage
functionality - DCOM provides full-featured distributed COM
implementation - Marshalling support
23Additional Networking Features
- Object Exchange (OBEX)
- Infrared Data Association IrDA
- IEEE 1394 (Firewire)
- MediaSense
- Media Access Control (MAC) Bridging
- Dynamic Host Configuration Protocol (DHCP)
- Internet Connection Sharing (ICS)
- Virtual Private Networking (VPN)
- Windows Sockets 2 (Winsock)
- Message Queuing (MSMQ)
24Networking Scenarios
- Personal Area Networking (home, office)
- Scenarios PDA, Internet Appliance, Networking
Printer - Features Bluetooth, IrDA, UPnP
- Local Area Networking (office, factory)
- Scenarios Thin Client, Enterprise Web Pad,
Industrial Automation - Features Ethernet, DCOM
- Wireless LAN (office, coffee shop)
- Scenarios Cell Phone, PDA, Web Pad
- Features Ethernet, Zero Configuration
802.11/802.1x - Wide Area Networking (WAN) (home, hotel)
- Scenarios PDA, Internet Appliance, Web Pad,
Residential Gateway - Features TAPI, RAS, PPP, Unimodem, VPN, PPTP
25RTC Support
- Real time Audio Communication (VoIP)
- SIP (Session Initiation Protocol) based
- Between IP devices peer to peer or through
server - Across gateways to PSTN phones
- Instant Messaging
- Presence
- Contacts
- Watchers
26RTC Architecture
27RTC Scenarios
- Connectivity combinations
- CE device-to-CE or XP device
- CE device-to-PSTN phone
- CE device-controlled PSTN Phone-to-CE or XP
device - Application requirements
- Instant Messaging over a Network
- CE-to-CE or CE-to-XP, no SIP server needed
- Monitor a Contact's Presence or Control Presence
Information - CE device on a network with an SIP server
28Multimedia Support
- DirectDraw
- Direct3D
- DirectDVD
- DirectMusic 7
- DirectShow 6.1
- DirectSound 6.1
- Legacy Video Playback
- MIDI Playback
- MP3 Playback
- MPEG-1 Video Playback
- Digital Rights Management (DRM)
29Multimedia Architecture
30Multimedia Scenarios
- Stream or play live or recorded audio and video
media from local or remote locations on mobile or
fixed devices - Possible applications
- Digital media appliances
- Web Pads and Internet portals
- Set-top boxes
- Telecommunications equipment
- Industrial control and medical applications
- Education and training
31Supported Security Features
- Trusted environment
- Certified applications
- CryptoAPI
- Protected registry
- Password control
- Protected store
- LDAP Security Model
- Secure Sockets Layer
- PPTP
- PC/SC
- Secure file system
- DCOM security
- 802.11 security
32SSPI Security Architecture
- SSPI Security Support Provider Interface
- Kerberos protocol
- NTLM protocol
33Security Scenarios
- Control access to the device
- Protect against unauthorized applications
- Secure data storage and file systems
- Secure network and internet connections
34Internationalization
- Platform localization options
- Localization vs. Internationalization
- Changing the language of your operating system
- Adding locales
- Selecting codepages
Dont believe your eyes
35Internationalization (Creating International
Applications)
- Building for a different Locale
- Shared source files
- Understanding Unicode and NLS
36Internationalization (continued)
- Common practice for developing international
software - Use a few target locales for initial development
and testing - Resource Localization Strict or Non-strict
- Translation Tips
- Avoid using vague words, colloquialisms, jargon,
acronyms, and abbreviations - Use good grammar
- Avoid dynamic concatenation of different strings
- Avoid hard-coding file names in a binary file
- Avoid including text in images and icons
- International Conventions
- Locales might have different conventions for
expressing information - Locales might have different keyboard conventions
37The Windows CE Platform Development Cycle
- Getting Started Quickly With Platform Builder
- Taking Advantage of Parallel Development
- Typical Project Timeline
- Moving from SDB to Custom Hardware
- The Iterative Development Process
38Getting Started Quickly with Platform Builder
- New Platform Wizard provides a start
- Select a base configuration for your platform
- Click initial features
- Click preconfigured BSP
- Basic configurations
- Starting point for the creation of an operating
system - Select from New Platform Wizard
39Getting Started Quickly with Platform Builder
(continued)
- CEPC Emulator
- A virtual target hardware platform on the
workstation - Allows system development to begin without any
target hardware attached, including applications
and debugging - SDBs and BSPs in Platform Builder
- Choose the board closest to your own architecture
- Sample board support packages are provided
- Develop for the board until your hardware is ready
40Taking Advantage of Parallel Development
Linear Development Model
Parallel Development Model
41Typical Project Timeline
Project Complete
Porting Complete
Hardware Stable
Complete
Final Validation
Early Testing
QA
App Dev on H/W
App Development on SDB
Apps
OS Optimization on H/W
OS Customization on SDB
OS
Driver N
Driver B
Porting
Driver A
OAL
Boot loader
Time
42Moving from SDB to Custom Hardware
- On a Standard Development Board (SDB) and/or
Emulation - Configure the operating system
- Build the operating system image
- Debug the operating system image
- Generate a Platform SDK
- Develop your applications
- Integrate and test
- On your custom hardware when it is available
- Create the Board Support Package (BSP)
- Bootloader
- OAL
- Device Drivers
- Rebuild the system using your new BSP
- Debug and test on hardware
- Produce and deploy
43The Iterative Development Process
44The Application Development Options
Native Application Model
Managed Application Model
eMbedded Visual Tools
Visual Studio .NETwith Device Extensions
C or C
C or VB .NET
Win32 Applications
Applications for .NET Compact Framework
Compiled
Runtime
Windows CE .NET Operating System
45The Embedded Visual Tools (Native) Application
Model
- Based on Win32 API
- Windows CE subset familiar to Win32 programmers
- Some APIs specific to Windows CE Database and
Thread handling - Visible and non-visible windows with message
processors - WndProc
- WinMain
- When developing a program for Windows CE, you
must first determine the hardware platform and
processor on which your program is going to run
46What is eMbedded Visual C/C?
- Similar to Microsoft Visual C
- Special features specific to Windows CE
- Built in compilers and linkers for supported
processors - Debug tools, remote tools, and platform manager
- Emulation environment to develop without device
- API differences between CE and Desktop
- All redundant WIN32 API functions are removed
- If the function is part of an API that is not
supported by Windows CE, you will have to find
another solution - If Windows CE supports the feature, you must find
functions in Windows CE that can be combined to
support this feature
47The eVC Application Development Environment
- C Run-time Library
- Retail and Debug versions
- Subset of the full C library
- Active Template Library
- Provides a range of ActiveX controls and COM
features - Componentized to be smaller than MFC
- Component Object Model
- Is a fundamental object model on which ActiveX
controls and OLE are built - ActiveX
- Is a dynamic-link library (DLL) or executable
(.exe) that contains one or more COM components - Microsoft Foundation Class Library (MFC)
- Complete object-oriented application framework
48(No Transcript)
49Comparing Native and Managed Applications
- Native Applications
- Must be rebuilt for each new CPU or Platform
- Developer manages system resources
- Can run without extra support files
- Can access all operating system services and APIs
- Must be ported to run on desktop systems
- Support COM, ActiveX programming
- Managed Applications
- Built once for all devices
- Runtime engine manages system resources
- Require runtime support files (.NET CF)
- Applications access only the services exposed by
the CF - Run directly on desktop CF without porting
- Legacy interoperability not supported
50The Managed Application Model
- Smart Device Extensions for Visual Studio .NET
(SDE) - Is a Visual Studio integration package which
plugs into Visual Studio .NET - Includes a set of pre-built device profiles
- Allows you to create applications for Windows CE
devices using WinForms, ADO .NET, and XML Web
services - Languages all Compile to Intermediate Language
format - C application development
- Visual Basic .NET application development
51The Managed Application Model (continued)
- .NET Compact Framework (CF)
- Device-side runtime support package for .NET
application - Common Language Runtime (CLR)
- Execution engine to manage .NET applications
- Just-In-Time compiler for intermediate language
format - Class Library
- Form-related classes, Data and XML classes, and
GDI support - True subset of .NET Framework classes
52Visual Studio .NET
- Visual Studio 2003 has built in wizard for CE
devices - At present only C and VB application available
- Supports Emulator and connection to a CE device
or PocketPC - Has extensions for mobile devices
53Smart Devices Wizard
54PB 4.2 Demo