Module 2: Configuring Windows CE

57
Module 2: Configuring Windows CE

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

Transcript of Module 2: Configuring Windows CE

Page 1: Module 2:  Configuring Windows CE

Module 2: Configuring Windows CE

Page 2: 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

Page 3: Module 2:  Configuring Windows CE

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

Page 4: Module 2:  Configuring Windows CE

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

Page 5: Module 2:  Configuring Windows CE

Creating a Platform

C B D

Page 6: Module 2:  Configuring Windows CE

Creating a Platform (continued)

C B D

Page 7: Module 2:  Configuring Windows CE

Creating a Platform (continued)

C B D

Page 8: Module 2:  Configuring Windows CE

Creating a Platform (continued)

C B D

Page 9: Module 2:  Configuring Windows CE

Building a Platform

C B D

Page 10: Module 2:  Configuring Windows CE

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

Page 11: Module 2:  Configuring Windows CE

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

Page 12: Module 2:  Configuring Windows CE

Setup Device

Cables Connecting Dev Workstation Download Adapter Settings Video Adapter Settings Device-Specific Configuration Issues

Page 13: Module 2:  Configuring Windows CE

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

Page 14: Module 2:  Configuring Windows CE

Set up Download Services

C B D

Page 15: Module 2:  Configuring Windows CE

Ethernet Settings

C B D

Page 16: Module 2:  Configuring Windows CE

BOOTME Record

C B D

Page 17: Module 2:  Configuring Windows CE

Set Current Device

C B D

Page 18: Module 2:  Configuring Windows CE

Download From Platform Builder to a Windows CE Device

C B D

Page 19: Module 2:  Configuring Windows CE

Demonstration: Configuration, Build and Download

Page 20: Module 2:  Configuring Windows CE

LabA: Configuring, Building and Downloading Windows CE

Page 21: Module 2:  Configuring Windows CE

Modifying a Platform

Choosing a Reference Configuration Directory Structure of Platform Builder Platform Settings Modifying Configuration Files Building a Selected Component

Page 22: Module 2:  Configuring Windows CE

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)

Page 23: Module 2:  Configuring Windows CE

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

Page 24: Module 2:  Configuring Windows CE

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

Page 25: Module 2:  Configuring Windows CE

Directory Structure of Platform Builder

The Platform Directory The Public Directory The SDK Directory The Others Directory

Page 26: Module 2:  Configuring Windows CE

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

Page 27: Module 2:  Configuring Windows CE

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

Page 28: Module 2:  Configuring Windows CE

The SDK Directory

Location: %_WINCEROOT%\SDK Contains tools and library to support Platform Builder

Processor compilers (x86, SH3, Arm, MIPS)

Development tools

Remote tools

Page 29: Module 2:  Configuring Windows CE

The Others Directory

Location: %_WINCEROOT%\OTHERS Contains:

Run-time libraries (VB, MFC, ATL)

Platform Manager component

ATL and MFC Samples

Device driver test tools

Page 30: Module 2:  Configuring Windows CE

Platform Settings

Page 31: Module 2:  Configuring Windows CE

Modifying Configuration Files

.BIB files .REG files .DAT files .DB files

Page 32: Module 2:  Configuring Windows CE

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

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

Page 33: Module 2:  Configuring Windows CE

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

Page 34: Module 2:  Configuring Windows CE

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”

Page 35: Module 2:  Configuring Windows CE

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

Page 36: Module 2:  Configuring Windows CE

The Configuration Files: .DB Files

Define default image databases COMMON.DB, WCEAPPS.DB, WCESHELL.DB PLATFORM.DB PROJECT.DB

Page 37: Module 2:  Configuring Windows CE

Building a Selected Component

Page 38: Module 2:  Configuring Windows CE

Lab B: Fine -Tuning the Build Process

Page 39: Module 2:  Configuring Windows CE

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

Page 40: Module 2:  Configuring Windows CE

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>

Page 41: Module 2:  Configuring Windows CE

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

Page 42: Module 2:  Configuring Windows CE

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)

Page 43: Module 2:  Configuring Windows CE

Step 2: Compile and Link Phase (continued)

DIRS file Lists subdirectories to build

Subdirectories can contain DIRS files

Example :

DIRS =\Display \Mouse \Keyboard \Ethernet

Page 44: Module 2:  Configuring Windows CE

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 \

Page 45: Module 2:  Configuring Windows CE

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

Page 46: Module 2:  Configuring Windows CE

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)

Page 47: Module 2:  Configuring Windows CE

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

Page 48: Module 2:  Configuring Windows CE

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

Page 49: Module 2:  Configuring Windows CE

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

Page 50: Module 2:  Configuring Windows CE

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

)

Page 51: Module 2:  Configuring Windows CE

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

)

Page 52: Module 2:  Configuring Windows CE

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")')

Page 53: Module 2:  Configuring Windows CE

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

Page 54: Module 2:  Configuring Windows CE

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(PBP,”$(_WINCEROOT)\Public\Myplat\Mycomp\Simple.pbp”)

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

Page 55: Module 2:  Configuring Windows CE

Adding a Component File to the Catalog

Page 56: Module 2:  Configuring Windows CE

Lab C: Customizing the Platform Builder Catalog

Page 57: Module 2:  Configuring Windows CE

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