Module 2: Configuring Windows CE

Preview:

DESCRIPTION

Module 2: Configuring Windows CE. Overview. Introduction to Platform Builder Platform Development Life Cycle Setting up the CE Device Modifying a Platform Understanding the Build Process Adding Components to the Platform Builder Catalog. Introduction to Platform Builder. - PowerPoint PPT Presentation

Citation preview

Module 2: Configuring Windows CE

Overview

Introduction to Platform Builder

Platform Development Life Cycle

Setting up the CE Device

Modifying a Platform

Understanding the Build Process

Adding Components to the Platform Builder Catalog

Introduction to Platform Builder

Windows CE OS Configurations

Embedded Windows CE Development Tools

Compilers IDE-based debugger Windows CE remote tools Export SDK

Integrated Development Environment (IDE)

Run-Time Libraries

Sample Code

Platform Development Life Cycle

Configure Platform•Create Platform•Modify Platform

•Modify OAL•Modify Configuration Files•Bootloader•Device Drivers•Applications•Export SDK•Add components to catalog

Build•Make Platform Headers•Compiling•Linking•Make NK.BIN Image

Download•Connect via Ethernet, Parallel, or JTAG•Copy NK.BIN to device•Start Windows CE Debug Monitor

Iterative Process

Creating a Platform

C B D

Creating a Platform (continued)

C B D

Creating a Platform (continued)

C B D

Creating a Platform (continued)

C B D

Building a Platform

C B D

Making an Image

All .BIB Files

All .REG Files

FileSystem(.DAT) Files

All Default Database (.DB) Files

CompressREGINIT.INI

NK.BIN

Language Strings

DLLs and EXEs as per CE.BIB

CE.BIB

REGINIT.INI

INITOBJ.DAT

INITDB.INI

DEFAULT .FDF

C B D

Merge

Setting up the CE Device

Setup Device

The Board Support Package (BSP)

Set up Download Services

Ethernet Settings

BOOTME Record

Set Current Device

Download From Platform Builder to a CE Device

Setup Device

Cables Connecting Dev Workstation

Download Adapter Settings

Video Adapter Settings

Device-Specific Configuration Issues

The Board Support Package (BSP)

Device-Specific Files

Boot Loader

OEM Adaptation Layer (OAL)

Device Drivers

Platform Builder Includes Some BSPs

CEPC

ODO

BSP Location:

\wince300\platform

Set up Download Services

C B D

Ethernet Settings

C B D

BOOTME Record

C B D

Set Current Device

C B D

Download From Platform Builder to a Windows CE Device

C B D

Demonstration: Configuration, Build and Download

LabA: Configuring, Building and Downloading Windows CE

Modifying a Platform

Choosing a Reference Configuration

Directory Structure of Platform Builder

Platform Settings

Modifying Configuration Files

Building a Selected Component

Choosing a Reference Configuration

Microsoft provides eight reference configurations

MINKERN: Memory-minimal version of Windows CE

Memory, process, and file management

Heap and memory allocation

Registry and databases

MININPUT: Minimal version of Windows CE

User input

Native driver support (keyboard, display)

Choosing a Reference Configuration (continued)

MINCOMM: Minimal version of Windows CE with communications Data communication : IRDA, Serial, TAPI, Networking: TCP/IP, PPP, WinInet, Secure Socket

MINGDI: Minimal version of Windows CE with graphical device interface support

MINWMGR: Includes most of the main modules and components Window management, graphics, and drawing support COM support Communication

Choosing a Reference Configuration (continued)

MINSHELL: Nearly complete version of Windows CE

Command processor (similar to CMD.EXE) Task manager

MAXALL: Includes most modules and components

Microsoft Message Queue (MSMQ) Pocket Word, Pocket Internet Explorer

IESAMPLE: Sample version with Internet Explorer 4

MAXDX: DirectX

Directory Structure of Platform Builder

The Platform Directory

The Public Directory

The SDK Directory

The Others Directory

The Platform Directory

Hardware-specific files

Location: %_WINCEROOT%\Platform

Each directory represents a Windows CE–specific platform adaptation

CEPC for x86 reference platform

ODO for Hitachi reference platform

ODODub for ODO with dial-up boot loader

SDB8XX for Blue Planet reference platform

Place your platform-specific files in this directory

The Public Directory

Platform-independent set of components and configurations

Location: %_WINCEROOT%\Public

Three types of subdirectories:

Module and component subdirectories (Common, Wceshellfe, Wceappsfe, IE, MSMQ)

Reference configuration subdirectories (Minshell, Maxall, etc.)

Custom configuration subdirectories

The SDK Directory

Location: %_WINCEROOT%\SDK

Contains tools and library to support Platform Builder

Processor compilers (x86, SH3, Arm, MIPS)

Development tools

Remote tools

The Others Directory

Location: %_WINCEROOT%\OTHERS

Contains:

Run-time libraries (VB, MFC, ATL)

Platform Manager component

ATL and MFC Samples

Device driver test tools

Platform Settings

Modifying Configuration Files

.BIB files

.REG files

.DAT files

.DB files

The Configuration Files: .BIB Files

Indicate module/component to be included in the image

Text files with four types of sections:

The FILES section: Memory reservation for static data files

The MODULES section: Specifies object module to be loaded in memory

;Name Path Memory Type-----------------------------------------------------Tahoma.ttf $(_FLATRELEASEDIR)\Tahoma.ttf NK SHU

;Name Path Memory Type-----------------------------------------------------Tahoma.ttf $(_FLATRELEASEDIR)\Tahoma.ttf NK SHU

Taskman.exe $(_FLATRELEASEDIR)\Taskman.exe NK Taskman.exe $(_FLATRELEASEDIR)\Taskman.exe NK

The Configuration Files: .BIB Files (continued)

The MEMORY section: Platform memory information

The CONFIG section: Define other image information (compression, ROM size)

Name Start address Size(bytes) Type-----------------------------------------------NK 8C800000 00800000 RAMIMAGERAM 8C050000 007AFFFF RAM

Name Start address Size(bytes) Type-----------------------------------------------NK 8C800000 00800000 RAMIMAGERAM 8C050000 007AFFFF RAM

The Configuration Files: .REG Files

Define default registry settings

COMMON.REG, IE.REG, MSMQ.REG, WCEAPPS.REG, WCESHELL.REG - registry settings for Windows CE modules

PLATFORM.REG: platform-dependent registry settings (device drivers entries)

PROJECT.REG: Application entries, autolaunch

As a .reg file in Windows NT

[HKEY_LOCAL_MACHINE]\Init“Launch10”=“shell.exe”“Launch20”=“device.exe”

[HKEY_LOCAL_MACHINE]\Init“Launch10”=“shell.exe”“Launch20”=“device.exe”

The Configuration Files: .DAT Files

Define folder structures of your image

COMMON.DAT, IE.DAT, MSMQ.DAT, WCEAPPS.DAT, WCESHELL.DAT

PLATFORM.DAT

PROJECT.DAT

Example:

Root:-Directory(“Program Files”)Directory(“\Program Files”):-Directory(“My Projects”)

Root:-Directory(“My Documents”)Directory(“\My Documents”):-File(“MyFile.doc”)

Root:-Directory(“Program Files”)Directory(“\Program Files”):-Directory(“My Projects”)

Root:-Directory(“My Documents”)Directory(“\My Documents”):-File(“MyFile.doc”)

The Configuration Files: .DB Files

Define default image databases

COMMON.DB, WCEAPPS.DB, WCESHELL.DB

PLATFORM.DB

PROJECT.DB

Building a Selected Component

Lab B: Fine -Tuning the Build Process

Understanding the Build Process

Overview of the Build Process

Step 1: System Generation

Step 2: Compile and Link Phase

Step 3: Building the Flat Release Directory

Step 4: Making an (NK.BIN) Image

Overview of the Build Process

COMMONDCOM

DIRECTXIE

MSMQSCRIPT

SERVERSWCEAPPSFE

WCESHELLFE

..\cesysgen\ddk

..\cesysgen\oak

..\cesysgen\sdk

Step 1. System Generation

Step 2. Compile & Link

Step 3. Build Release Directory

Step 4. Make Image NK.BIN

..\platform\..

C:\WINCE300\PUBLIC\pc2MinKern\RelDir\

X86_Debug>

Step 1: System Generation (CESYSGEN.BAT)

Complete header files (.h)

Complete system libraries

Module definitions (.def)

Cesysgen.bat

System-specific header files

Linked libraries

Specific .def files

SYSGEN.BAT

Step 2: Compile and Link Phase

Compile source code (directories and subdirectories)

Process

Uses DIRS files to determine which subdir to compile

Uses SOURCES files to determine which files to compile

Calls NMAKE.EXE to compile and link object modules

Creates a binary file into a “target” folder for .exe, .dll (ex : Target\Shx\Sh3\CE\Debug)

Creates a binary file into a “lib” folder for .lib(ex : Lib\Shx\Sh3\CE\Debug)

Step 2: Compile and Link Phase (continued)

DIRS file

Lists subdirectories to build

Subdirectories can contain DIRS files

Example :

DIRS =\Display \Mouse \Keyboard \Ethernet

DIRS =\Display \Mouse \Keyboard \Ethernet

Step 2: Compile and Link Phase (continued) SOURCES file

Provides build.exe information, i.e., which file to compile, which type of module to build (.exe, .dll, .lib)

Example:

TARGETNAME = KbdmouseTARGETTYPE = DynalinkDLLENTRY = DllMainTARGETLIBS = \$(_COMMONSDKROOT)\Lib\$(_CPUINDPATH)\Coredll.libINCLUDES = $(_COMMONSDKROOT)\IncSOURCES = \

ioport.cpp \vgaports.cpp \

TARGETNAME = KbdmouseTARGETTYPE = DynalinkDLLENTRY = DllMainTARGETLIBS = \$(_COMMONSDKROOT)\Lib\$(_CPUINDPATH)\Coredll.libINCLUDES = $(_COMMONSDKROOT)\IncSOURCES = \

ioport.cpp \vgaports.cpp \

Step 3: Building the Flat Release Directory

Copies all platform files in the release directory

Copies all binaries in the release directory

Build all Platform Builder Projects (pbp) at the end of this step

Step 4: Making an (NK.BIN) Image

Merges release folder files to make the Windows CE image

Process

Merge configuration files:All .bib files => CE.BIB (Windows CE files to be combined)All .reg files => REGINIT.INI (entire default registry)All .dat files => INITOBJ.DAT (directories, file location)All .db files => INITDB.INI (default databases)

Compress reginit.ini in a binary registry file (DEFAULT.FDF)

Replace resources in .exe and .dll for language adaptation

From ce.bib, combine binaries and files into a Windows CE image (NK.BIN)

Adding Components to the Platform Builder Catalog

Creating a Component File

The CECInfo Block

The ComponentType Block

The Implementation Block

The BuildMethod Block

Adding a Component File to the Catalog

Creating a Component File

List of blocks in a text file that describes components to be included in the catalog

Four types of blocks:

CECInfo Block

ComponentType block

Implementation block

BuildMethod block

The CECInfo Block

Information about CEC file

Example:

CECInfo (

Name(cepc)

GUID({1850C9B1-98A2-11d3-993F-00105AC7264F})

CECVersion(3.00)

Vendor("Microsoft")

Description("CEPC components")

)

The ComponentType Block

Component information to be associated with it

Example:

ComponentType (Name (“OAL”) Description(“OEM Adaptation Layer”)Vendor (“Vendor name”) GUID( “{B3509B44-F1E4-11D2-85F6-004005365450}”)Implementations(Implementation(…

)

ComponentType (Name (“OAL”) Description(“OEM Adaptation Layer”)Vendor (“Vendor name”) GUID( “{B3509B44-F1E4-11D2-85F6-004005365450}”)Implementations(Implementation(…

)

The Implementation Block

Defines implementation for a component

Example:

Implementation (Name (“Keyboard”) Description(“Keyboard Driver Tests”)Vendor (“Vendor name”) Date( “2000-10-31” )GUID( {B45875B0-C958-4288-9139-0589CAD59E6C} )CPU("default")Children ()BuildMethods(BuildMethod(…

)

Implementation (Name (“Keyboard”) Description(“Keyboard Driver Tests”)Vendor (“Vendor name”) Date( “2000-10-31” )GUID( {B45875B0-C958-4288-9139-0589CAD59E6C} )CPU("default")Children ()BuildMethods(BuildMethod(…

)

The BuildMethod Block

Provides information needed to build the component

Example:

BuildMethod(Step( “BSP” )GUID( {EE70A156-867F-4ba7-993F-2D04D98F47EF} )InputFiles()OutputFiles()Action('#BUILD(SOURCES,

"$(_WINCEROOT)\others\ddtk30\testsrc\realtime")')

BuildMethod(Step( “BSP” )GUID( {EE70A156-867F-4ba7-993F-2D04D98F47EF} )InputFiles()OutputFiles()Action('#BUILD(SOURCES,

"$(_WINCEROOT)\others\ddtk30\testsrc\realtime")')

Valid Actions

Actions Cesysgen Step

BSP Step

Buildrel step

MakeImg Step

#BUILD(DIR,…) NO YES NO NO

#BUILD(SOURCES,…)

NO YES NO NO

#BUILD(MAK, …) NO YES NO NO

#CUSTOM(…,…) NO YES YES NO

#COPY(…,…) YES NO YES NO

#ENV(…,…) NO YES NO YES

The BuildMethod Block (continued) Three types of build methods:

Build projects defined by DIRS or SOURCES files:

Build projects defined by a platform builder project:

Copy the module directly in the $_FLATRELEASEDIR:

#BUILD(SOURCES,“$(_WINCEROOT)\Platform\Cepc\Drivers\Pcmcia”)

#BUILD(DIRS,”$(_WINCEROOT)\Platform\Sherry\Kernel”)

#BUILD(SOURCES,“$(_WINCEROOT)\Platform\Cepc\Drivers\Pcmcia”)

#BUILD(DIRS,”$(_WINCEROOT)\Platform\Sherry\Kernel”)

#BUILD(PBP,”$(_WINCEROOT)\Public\Myplat\Mycomp\Simple.pbp”)#BUILD(PBP,”$(_WINCEROOT)\Public\Myplat\Mycomp\Simple.pbp”)

#COPY(“$(_TARGETPLATROOT)\Drivers\Mouse)”,“$(_FLATRELEASEDIR)”)

#COPY(“$(_TARGETPLATROOT)\Drivers\Mouse)”,“$(_FLATRELEASEDIR)”)

Adding a Component File to the Catalog

Lab C: Customizing the Platform Builder Catalog

Review

Introduction to Platform Builder

Platform Development Life Cycle

Setting up the CE Device

Modifying a Platform

Understanding the Build Process

Adding Components to the Platform Builder Catalog

Recommended