building embedded systems with windows ® ce platform builder 3.0 david streams lead program manager...
TRANSCRIPT
Building Embedded Building Embedded Systems With WindowsSystems With Windows®® CE CE Platform Builder 3.0Platform Builder 3.0
David StreamsDavid StreamsLead Program ManagerLead Program ManagerWindows CE ToolsWindows CE ToolsMicrosoft CorporationMicrosoft Corporation
8-3048-304
AgendaAgenda
IntroductionIntroduction Feature overviewFeature overview
Using the Integrated Development Using the Integrated Development Environment (IDE) to configure the OSEnvironment (IDE) to configure the OS
New Platform Builder 3.0 featuresNew Platform Builder 3.0 features IDE kernel debugging, HW IDE kernel debugging, HW
assisted debugging assisted debugging Platform Builder 3.0 walkthrough Platform Builder 3.0 walkthrough
and demonstrationand demonstration Questions and answersQuestions and answers
Platform Builder Integrated Platform Builder Integrated Development EnvironmentDevelopment EnvironmentPlatform pane (component tab)Platform pane (component tab)
Component viewComponent view Used toUsed to
configure your configure your platform componentsplatform components
IDE saves your IDE saves your platform stateplatform state .wce workspace.wce workspace
ComponentsComponents Build rulesBuild rules Platform settingsPlatform settings
Platform Builder IDEPlatform Builder IDEProject paneProject pane
Configure\build Configure\build user apps and user apps and componentscomponents
Project Pane Project Pane parallels parallels Visual C++Visual C++®®
Class, file and Class, file and resource viewsresource views
Project state Project state saved as .pbp saved as .pbp (~VC++ .dsp)(~VC++ .dsp)
Build against Build against Sysgen’d Sysgen’d platform .h .libsplatform .h .libs
Configuring Your Platform Configuring Your Platform
Configuring existing componentsConfiguring existing components New Platform WizardNew Platform Wizard Platform Builder CatalogPlatform Builder Catalog Import from sources\dirsImport from sources\dirs
Creating new platform componentsCreating new platform components Create .exe, .dll, console apps, etcCreate .exe, .dll, console apps, etc Platform Builder Projects (.pbp)Platform Builder Projects (.pbp)
Platform Builder CatalogPlatform Builder Catalog
Catalog –Catalog –Contains superset of Contains superset of available componentsavailable components
Logical abstraction –Logical abstraction – Choose logical type Choose logical type groupings and resolvegroupings and resolveto components in to components in Platform PanePlatform Pane
Extensible –Extensible –Add new components to Add new components to catalog via .cec filescatalog via .cec files
Windows CE Build ProcessWindows CE Build Process
Sysgen – generates system headers Sysgen – generates system headers and librariesand libraries
Build – application and board support Build – application and board support components are built components are built
BuildRel – Copies sysgen and build BuildRel – Copies sysgen and build files to release directoryfiles to release directory
MakeImg – Packages all files into MakeImg – Packages all files into single binary file NK.binsingle binary file NK.bin
Sysgen Build ProcessSysgen Build Process
Command Line BuildCommand Line Build Developers modify cesysgen.bat and the Developers modify cesysgen.bat and the
sysgen process builds the OS modules sysgen process builds the OS modules referenced in the batch filereferenced in the batch file
Platform Builder IDE Platform Builder IDE Core OS is bundled in IDE as a single Core OS is bundled in IDE as a single
component consisting of many component consisting of many child componentschild components
Core OS (sysgen) components are Core OS (sysgen) components are configured using platform settingsconfigured using platform settings
Sysgen IDE Build SettingsSysgen IDE Build Settings
Use the IDE to configure core Use the IDE to configure core OS componentOS component
Building Individual Building Individual ComponentsComponents User components and driversUser components and drivers
Any user components included in the Any user components included in the Platform pane will be built individuallyPlatform pane will be built individually
IDE supports custom build methodsIDE supports custom build methods Platform Builder Projects (pbp)Platform Builder Projects (pbp) Dirs\SourcesDirs\Sources File copyFile copy Custom build commandCustom build command
MakeImg IDE Build ProcessMakeImg IDE Build ProcessPlatform Pane\Parameter ViewPlatform Pane\Parameter View
Modify settings that Modify settings that are consumed by are consumed by MakeImg build toolMakeImg build tool
*.bib files – add files to *.bib files – add files to binary image (NK.bin)binary image (NK.bin)
*.reg files – Used to set *.reg files – Used to set registry keys registry keys
*.dat files – define dir *.dat files – define dir and file location of CE and file location of CE OSOS
*.db files – defines *.db files – defines databasedatabase
MakeImg IDE Build ProcessMakeImg IDE Build Process
Platform\Settings MenuPlatform\Settings Menu Easily edit global environment variables Easily edit global environment variables Simply click Build\Build Platform menu to Simply click Build\Build Platform menu to
refresh NK.binrefresh NK.bin
Creating CustomCreating CustomPlatform SDKsPlatform SDKs Why?Why?
Enable team collaborationEnable team collaboration Application and component developers Application and component developers
can target their embedded platform from can target their embedded platform from Windows CE toolsWindows CE tools
Easily create an open platformEasily create an open platform Allow third party developers to build Allow third party developers to build
value-added components and value-added components and applications after their platform shipsapplications after their platform ships
How?How? Use the Platform BuilderUse the Platform Builder
‘Export SDK’ feature‘Export SDK’ feature
Creating Platform SDKs Creating Platform SDKs
What does ‘Export SDK’ do?What does ‘Export SDK’ do? Packages all pertinent files into a single Packages all pertinent files into a single
installable .EXE fileinstallable .EXE file Platform\Runtime include files and librariesPlatform\Runtime include files and libraries Pertinent sourcesPertinent sources Default and custom host\target Default and custom host\target
communication transportscommunication transports
New PB 3.0 Tools FeaturesNew PB 3.0 Tools Features
Usability/ease of useUsability/ease of use Configuration improvementsConfiguration improvements Connectivity/download integrationConnectivity/download integration
IDE manages/communicates state of toolsIDE manages/communicates state of tools
Debugger integrationDebugger integration CPU add-in modelCPU add-in model
Entire product (IDE, Wizards, Debugger, etc) Entire product (IDE, Wizards, Debugger, etc) capable of supporting a new CPU that ships capable of supporting a new CPU that ships after PB releasesafter PB releases
ExtensibilityExtensibility New hardware debug APIsNew hardware debug APIs Tools plug-in modelTools plug-in model
Configuration AndConfiguration AndBuild ImprovementsBuild Improvements Better support for custom configs Better support for custom configs
IDE displays custom coreIDE displays custom coreOS configurations OS configurations
Platform settings are dynamically Platform settings are dynamically generated from data in the .CEC filegenerated from data in the .CEC file
Data-driven wizards and settingsData-driven wizards and settings More granular control overMore granular control over
build settingsbuild settings
Connectivity IntegrationConnectivity Integration
PB 3.0 incorporates connectivity settings into the PB 3.0 incorporates connectivity settings into the integrated development environmentintegrated development environment
Users select and configure transports used by Users select and configure transports used by embedded toolsembedded tools
Connectivity IntegrationConnectivity Integration
Users can then configure their specific Users can then configure their specific transport settings in the appropriate tabtransport settings in the appropriate tab
Download And Boot Now Download And Boot Now Integrated Into IDEIntegrated Into IDE
Target Menu utilizes settings defined in Target Menu utilizes settings defined in connectivity settings dialogconnectivity settings dialog
CESH (Target Control)CESH (Target Control)Now IntegratedNow Integrated Process and Thread Windows now serve Process and Thread Windows now serve
dual purposesdual purposes Debugger populates windows during break stateDebugger populates windows during break state Shell.exe (CESH) populates windows duringShell.exe (CESH) populates windows during
run staterun state Ability to refresh views after state changeAbility to refresh views after state change
CESH commands now integrated as features CESH commands now integrated as features in the IDEin the IDE Ability to start and stop processes, view process\Ability to start and stop processes, view process\
thread info, set debug zones, set debug break, thread info, set debug zones, set debug break, etc.etc.
Platform Builder 2.12 Platform Builder 2.12 Debugger ExperienceDebugger Experience Good newsGood news
Integrated the kernel debugger into the IDEIntegrated the kernel debugger into the IDE Supported many windbg debugger Supported many windbg debugger
commands in the IDEcommands in the IDE !Process!Process !thread stack!thread stack
Brought the benefits ofBrought the benefits ofintegrated application debugging to integrated application debugging to embedded developmentembedded development
PB 3.0 Debugger PB 3.0 Debugger EnhancementsEnhancements Continuity: Intuitive work flow Continuity: Intuitive work flow
Debugger no longer tied to projectsDebugger no longer tied to projects Build from IDE:Build from IDE:
Debug seamlessly from platform Debug seamlessly from platform Build from Command: Target nk.binBuild from Command: Target nk.bin
Enable kernel debugger with theEnable kernel debugger with theclick of a buttonclick of a button 3.0 gives the developer a checkbox to 3.0 gives the developer a checkbox to
enable debugging + adds debugger stub enable debugging + adds debugger stub by default for debug configurationby default for debug configuration
(More) Debugger (More) Debugger EnhancementsEnhancements Communication and controlCommunication and control
Status Monitor, Status StringsStatus Monitor, Status Strings IDE is State-AwareIDE is State-Aware New UI: Processes, Threads, Call-stack, New UI: Processes, Threads, Call-stack,
and more…and more… New Manual/Auto Logging functionalityNew Manual/Auto Logging functionality
DemoDemo
Platform Builder 3.0 Platform Builder 3.0 Integration of Host/Target ConnectivityIntegration of Host/Target Connectivity Integrated Download and BootIntegrated Download and Boot CESH IntegrationCESH Integration Kernel DebuggerKernel Debugger
Hardware Assist: MotivationHardware Assist: Motivation
OEM Challenge: Building and debugging OEM Challenge: Building and debugging the OALthe OAL OAL code executed prior to KDInitOAL code executed prior to KDInit PB 2.12 KDBG insufficientPB 2.12 KDBG insufficient
Hardware Debugging is an essential part of Hardware Debugging is an essential part of the embedded tool chainthe embedded tool chain
Existing tools (Probes, ICE, associated SW)Existing tools (Probes, ICE, associated SW) Ad Hoc tool chainsAd Hoc tool chains Proprietary interfacesProprietary interfaces ExpensiveExpensive Very difficult to useVery difficult to use
Hardware Assist: SolutionHardware Assist: Solution
Embedded Extended Embedded Extended Debugging Interface Debugging Interface API sits between our debugger andAPI sits between our debugger and
third party driversthird party drivers Drivers communicate with existing Drivers communicate with existing
hardware tools and proprietary interfaceshardware tools and proprietary interfaces IDE does not need to know probe detailsIDE does not need to know probe details
Third-party tools plug-in modelThird-party tools plug-in model Port existing and new probe software Port existing and new probe software
and toolsand tools These tools integrate with PB IDEThese tools integrate with PB IDE Currently: AMC, Microtek Int’l, MacraigorCurrently: AMC, Microtek Int’l, Macraigor
Hardware Assist: ClosureHardware Assist: Closure Debugging capability is extensibleDebugging capability is extensible
Third parties can write tools to interface with HW Third parties can write tools to interface with HW through eXDI and plug-in modelthrough eXDI and plug-in model
Debugging functionality is expandedDebugging functionality is expanded Debug where we never have before:Debug where we never have before:
prior to Kernel Initprior to Kernel Init True HW BPs, true Target halt, Run controlTrue HW BPs, true Target halt, Run control Aids OEMs in debugging the OAL more effectively Aids OEMs in debugging the OAL more effectively
Debugging experience is uniqueDebugging experience is unique In the IDE, HW debugging is transparent to the userIn the IDE, HW debugging is transparent to the user Never before has the power of HW debuggingNever before has the power of HW debugging
been combined with the ease of use of ourbeen combined with the ease of use of ourdesktop experiencedesktop experience
Data Visualization ToolsData Visualization Tools
Target information drivesTarget information drivesHost-Side ToolsHost-Side Tools
Third-party plug-in supportThird-party plug-in support Viewer/Collector ModelViewer/Collector Model
Flagship: Kernel Event Viewer (KEV)Flagship: Kernel Event Viewer (KEV) Time-based linear display ofTime-based linear display of
system and custom eventssystem and custom events Event-sensitive Search capabilitiesEvent-sensitive Search capabilities
SummarySummary
Platform Builder 3.0 now supports fullPlatform Builder 3.0 now supports fullend-to-end platform developmentend-to-end platform development From an integrated development From an integrated development
environmentenvironment Final PB 3.0 product available soon!Final PB 3.0 product available soon!
Product and availability information at Product and availability information at http://www.microsoft.com/windowsce/http://www.microsoft.com/windowsce/embeddedembedded
Questions?Questions?