1 finding hidden gold in the wince600 folder tree olivier bloch technical evangelist microsoft...
TRANSCRIPT
1
Finding Hidden Gold in the WINCE600 Folder Tree
Olivier BlochTechnical EvangelistMicrosoft Corporation
EMB301
2
Agenda
Platform Builder Build ProcessOSDesigns vs. PlatformsThe Build Tree
OrganizationOthersPlatformPublicPrivateOISDesign
3
Let’s build somethin'!
demo
4
Platform Builder Build Process
Configuration of the operating systemCompilation of the Board Support PackageCreation of the “Flat Release Directory”Creation of the runtime image
5
OSDesign vs. Platform
OSDesign: Hardware-neutral configuration of the OS
Defines components of Windows CE usedDefines included applicationsMicrosoft-provided code
Platform: The OEM adaptation layer codeHardware-specific OS configuration-neutral OEM-provided codePlatforms defined under \WinCE\Platform directory
6
The Build Tree
Discussion based on current Platform Builder tree
Evolutionary difference between this and earlier trees
WINCE600 renamed PBWorkspaces to OSDesigns
Build tree amazingly consistent since PegasusPegasus was the code name for CE 1.0
7
WINCExx\Others
Contains CE implementations of run-time librariesDirectories
ATL ATL for Windows CEDOTNETVx .NET Compact FrameworksEDB Embedded database runtimeSLQCE20 SQL Server Mobile runtimeVisual Studio Device-side code for Visual Studio .NET 2003
8
Platform
Source code for board support package (BSP)Arubaboard XScale 270-based demo boardCEPC BSP for standard PC hardwareCommon “Common” code used across BSPsDeviceEmulator BSP for ARM-based emulatorH4Sample OMAP 2420-based boardMainstoneIII Classic Intel eval board
for Xscale
9
Platform\Catalog
Provides information about BSP to IDENew to CE 6
Configuration files in XML format
10
Platform\Files
Location of ROM and file system configuration filesAnything not compliable
FilesPlatform.bib BIB file specifying driver files for imagePlatform.reg Platform-specific registry entriesPlatform.dat Platform-specific additions to the
directory structurePlatform.db Platform-specific database
initializationsPlatform.loc Platform-specific localization
11
Platform\SRC
Source code for BSPDirectories under specific platform
Bootloader Contains boot loader codeDrivers Device driver PPD codeOAL Contains HAL codeKITL Contains KITL support codeInc Contains platform include filesCommon Shared routines used by multiple
parts of the BSP
12
Platform\SRC\drivers
Place for PDD part of driversMany BSPs reference as generic drivers as possible
This reduces the number of drivers on the BSP side
Directorieskeybd Keyboard driverTouch Touch-panel driverWavedev Audio driverxxxx Your drivers (backlight,
system drivers, …)
13
Platform\SRC\OAL
Location of HAL codeDirectories
OALLib HAL code here[cpu] CPU-specific assembler code
OALEXE Used by build tools
14
Public SideDirectories for projects that make up the major parts of the operating system:
Common Common OS code and MDD driver sourceDCOM COM support MSMQ Microsoft Message Queuing supportSCRIPT JScript and VBScript supportSERVERS HTTP/FTP/Telnet server supportWCEAPPSFE Applications (PWord, Mail, etc)WCESHELLFE “Explorer” Shell, control panel source
Other major subprojects
15
Public\Common
Location of common code shared across all configurations:Directories
Cesysgen Contains basic configuration filesOAK OS files and MDD driver source DDK Include files for PCMCIA, NDIS
miniport, SDIO, and USB driversSDK Include and library files for
application development
16
Public\Common\OAK
Location of “public half” of operating system before parsed into a specific projectDirectories
Drivers Source code for MDD side of driversDemos Demonstration appsFiles Common configuration, font and
localization files Bin Build tools but not compiler or linkerMisc Batch files for environment setup Inc OAK include files
17
Public\Common\SDK
Location of template for include and lib files for application development:Directories
Inc SDK include filesLib SDK library files Samples IM example
18
Private sideDirectories containing the private source codeWhen installing the tools, select “Source Code”List of source code available there
http://www.microsoft.com/windows/embedded/products/windowsce/shared-source-licensing.mspx
19
Private
DIRECTX DirectShow source codeOSTESTS Stressmod test for the OSSERVERS ASP, HTTP, MSMQ,…SHELL Shell APIsTEST CETK tests sourceWCEAPPSFE …WCESHELLFE not much…WINCEOS 100% of the OS
20
OSDesigns\[your project]
Initially: Location of template for your project
After system built:.\WinCExx – Contains the customized OS files
BSP directoryCesysgen
OAKDDKSDK
RelDir – Contains the code to be downloaded to the device
21
…\[YourProj]\Reldir\...
The release directory holds the files created by the build processLocation of final build step that turns separate files into ROM imageLocation of download stepDefined by _FLATRELEASEDIR environment variable
22
Summary
Know OSDesign vs. ProjectLearn the source
23
On The Road Home
Explore
Stay Connected
SPARK You Imagination
windowsembedded.com/SPARK
Windows Embedded CE 6.0 R2
Visual Studio 2005 Professional
An embedded board at a hobbyist price
No time bombs and full functionality
24
Q & A
www.microsoft.com/teched Tech·Talks Tech·Ed BloggersLive Simulcasts Virtual Labs
http://microsoft.com/msdn
Developer’s Kit, Licenses, and MORE!
Resources for Developers
Complete anevaluation onCommNet andenter to win!
1 Year Subscription!
27
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this
presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.