/* Project: Socrates */
Learning Embedded Systems With Windows CE
 
Blog Entries    Windows Mobile    Socrates    
Login
Register



Home

Blog Archives

Socrates?

Chapters

Best Practices

Discuss

Open Editing

Pocket PC

Downloads

Favorite Links

Biography

About Web Site


Home > Best Practices

Adding the headless (command line) version of the CAB Installer to your platform.

Posted by on Wednesday, November 30, 2005 (PST)

The “CAB File Installer/Uninstaller” component in the catalog builds display-based tools. This article will show you how to add the command line tools to your platform.

For the experts who just want to cut to the chase; you can add the command line version of these tools by setting the SYSGEN_WCELDCMD variable. You do not need to include the standard versions of the tools for this to work.

The remainder of the article will walk you through a build of a basic x86 Emulator platform and compares the size difference between a platform built with the command line tools and one with the standard, display-based, tools. First start by opening Platform Builder and starting the New Platform wizard (File|New Platform…, Ctrl+N).

 

Click “Next” and name the workspace “WCELDCMD_HOWTO”.

 

Click “Next” and select the “EMULATOR: X86” board support package as a basis for this platform.

Click “Next” and select the “Custom Device” template.

Click “Next” and do not check any “Applications and Services Development” options.

Click “Next” and check only the “CAB File Installer/Uninstaller component.

You can click “Finish” now or browse the remaining options by clicking “Next” until you get to the last page of the wizard.

Click “Finish” and look at the OSDesignView tab of the new workspace. The only user-specified catalog item (items with the little red arrow) is the “CAB File Installer/Uninstaller” component.

 

The standard CAB tools are dependent on every thing else as shown by the dependency analyzer.

 

At this point go ahead and sysgen (Build OS:Sysgen) the release version of this platform. Note the build log output. There are 30 modules in the build and the image is 2,331,336 bytes in size.

Writing C:\WINCE500\PBWorkspaces\WCELDCMD_HOWTO\RelDir\Emulator_x86_Release\NK.binTable of contents 803a08a4 000004f4 ( 1268)
Writing ROM signature and TOC pointer at 80240040
Kernel data copy section 80447ad0 00000010 ( 16)
ROM Header 803a0850 00000054 ( 84)
First DLL code Address: 03da0000
Last DLL code Address: 04000000
First DLL Address: 01fa01fa
Last DLL Address: 02000000
Physical Start Address: 80240000
Physical End Address: 804792c8
Start RAM: 8047a000
Start of free RAM: 804ca000
End of RAM: 81c00000
Number of Modules: 30
Number of Copy Sections: 1
Copy Section Offset: 80447ad0
FileSys 4K Chunks/Mbyte: 128 <2Mbyte 128 2-4Mbyte 0 4-6Mbyte 0 >6Mbyte
CPU Type: 014ch
Miscellaneous Flags: 0002h
Extensions Pointer: 80242a04
Total ROM size: 002392c8 ( 2331336)
Starting ip: 80245278
Raw files size: 0002c191
Compressed files size: 00022acf
Compacting bin file...
Done!

Go ahead and launch the platform now. The emulator should come up with a black screen since now shell was chosen for this platform. Try running WCELOAD.EXE from the Target|Run Programs… menu. You should see and error dialog from WCELOAD as show below.

Now remove the “CAB File Installer/Uninstaller” component from the workspace by right clicking it and choosing “Remove Item from User-specified Catalog Item(s)”.

The OSDesignView should show a much leaner workspace.

Now add the SYSGEN_WCELDCMD variable in the Platform Settings dialog (Platform|Settings…) on the Environment tab.

Go ahead and sysgen the platform again with “Clean Before Building” enabled. Note the build log output. There are 10 modules in the build and the image is 643,028 bytes in size.

Writing C:\WINCE500\PBWorkspaces\WCELDCMD_HOWTO\RelDir\Emulator_x86_Release\NK.bin
Table of contents 802c2874 00000194 ( 404)
Writing ROM signature and TOC pointer at 80240040
Kernel data copy section 802b1e9c 00000010 ( 16)
ROM Header 802c2820 00000054 ( 84)
First DLL code Address: 03f90000
Last DLL code Address: 04000000
First DLL Address: 01ff01ff
Last DLL Address: 02000000
Physical Start Address: 80240000
Physical End Address: 802dcfd4
Start RAM: 802dd000
Start of free RAM: 8032a000
End of RAM: 81c00000
Number of Modules: 10
Number of Copy Sections: 1
Copy Section Offset: 802b1e9c
FileSys 4K Chunks/Mbyte: 128 <2Mbyte 128 2-4Mbyte 0 4-6Mbyte 0 >6Mbyte
CPU Type: 014ch
Miscellaneous Flags: 0002h
Extensions Pointer: 80242a04
Total ROM size: 0009cfd4 ( 643028)
Starting ip: 80245278
Raw files size: 00005982
Compressed files size: 0000132b
Compacting bin file...
Done!

Using the command-line version of the CAB tools saved 1,688,308 bytes of space in this platform. If you need to use the CAB tools in your headless device, there is no need to include the NULL display driver and the entire windowing environment. Just include the undocumented SYSGEN_WCELDCMD variable in your workspace and you can save 1.5 MB of Flash or RAM.


 





New Articles
  • Velma And Windows Mobile
    Introducing Velma the Windows Mobile equipped trike!

  • The Microsoft Store
    Of the two Microsoft Stores in the entire U.S., one is right in my backyard.

  • Wearable Camera Prototype Video
    This video depicts the current state of my wearable camera prototype.

  •  

    New Posts

  • Windows CE 5.0 Vs 6.0
    Posted by vsanghi@e-consystems.com on Tuesday, June 12, 2007 (PST)

  • Access to Data Rates Beyond 115.2 Kbps From .NET CF
    Posted by jadams on Thursday, November 16, 2006 (PST)

  • Getting Started With BSP Migration
    Posted by jywilson on Tuesday, October 24, 2006 (PST)

  •  

    New Downloads

  • AutoLaunch V1.0.zip
    This file contains the AutoLaunch CE 6.0 subproject.

  • PhidgetsDrivers-CE60 Project Files.zip
    The CE 6.0 project files and latest release from CodePlex of the Phidgets drivers.

  • PhidgetDrivers-PB Project Files.zip
    This file contains the Platform Builder 5.0 project files to include the Phidgets drivers in your OS image.


  •  

    Home   |   Blog Archives   |   Socrates?   |   Chapters   |   Best Practices   |   Discuss   |   Open Editing   |   Pocket PC   |   Downloads   |   Favorite Links   |   Biography   |   About Web Site