Module 2: Configuring Windows CE
description
Transcript of Module 2: Configuring Windows CE
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