1. say any project change u could build selected project and then makeimg.
make sure ur WINCEREL=1
2. use command prompt.
set WINCEREL=1---> to make sure that whatever u build is copied to release
directory.
go to the target directory and run build -c
and then do makeimg
for platform.bib etc files..just do the changes and copy paste in ur release
directory. and then run makeimage..this will save enough time.
The batch file "blddemo" does a lot of things to build a final image. It
also has a number of shortcuts to speed things up.
Simplified overview of what blddemo does
* SYSGEN Phase
This phase builds the CE kernel based on your selected SYSGEN variables and
BSP variables
- Build anything in Private if needed
- Build everything in Public
- Build your BSP under the Platform directory
* Buildrel Phase
- Copies your built files to the _FLATRELEASEDIR
* Makeimg Phase
- Creates the final NK.BIN based on stuff in the _FLATRELEASEDIR and your
IMG flags
*** Tricks to Speed things up ***
blddemo -q
This will skip building the Private directory. Normally, you never
change anything here anyway so you are just wasting time calculating
dependecies.
blddemo -qbsp
This is new in 5.0 and skips both Private and Public and only builds
your BSP platform. This is common when you are developing device drivers
for a BSP and didn't change the features you bring into your OS Design (no
SYSGEN or BSP variable changes)
WINCEREL=1
When you are building something in PUBLIC and then run makeimg, you
won't see the DLL in you Flat Release DIr (FRD) because it wasn't copied
there. The build system only does that in the buildrel phase which you
skipped. By setting WINCEREL=1 you get the DLL copied to the FRD as the
last step
Targeted Builds (5.0 using the IDE for your builds)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceo...
tml/wce50tskrunningtargetedbuild.asp
Skipping makeimg by using Release Directory Modules list
If you are debugging an image already flashed to the device, you can
tell the CE filesystem loader to grab your DLL from your PC (in the FRD)
rather than use the one built inside the NK.BIN. This means you can skip
the makeimg step if your newly-built DLL is in the FRD. To do this, go to
the Menu Target \ Release Directory Modules. This will pop-up a dialog that
lets you add your DLL to the list. Now, when you reboot and debug, your DLL
will come from your FRD and not the one in NK.BIN. Combined with Targeted
Builds, this should speed you up a lot.
I use the official PB defined methods to do my building. When you change
something in the registry files the method described below takes less
than 2 minutes.
Here's my when-to-build-what "build shortcut" list:
Change something in Platform Settings: do a makeimg
Change something in a driver in the BSP: Build the driver, do makeimg
Change several things in the BSP: Build the BSP, do makeimg
Change something in the BSP and/or the config files (eg platform.reg):
Build & sysgen the BSP, then Copy Files to RelDir, then Build All
Projects and Makeimg.
Change something in the workspace configuration (add or delete a
component): Sysgen the platform (and sometimes a clean sysgen is needed,
eg when changing from RAM based registry to Hive based Registry).
...and since we can't seem to repeat this enough...
*Never ever* do a build and sysgen on the build menu. Better yet, right
click the menu bar, choose Customize, then click the Build OS menu,
select Build & sysgen and *delete* that option from the build menu.
Hope this helps,
Michel Verhagen, eMVP
EmbeddedFusion
www.EmbeddedFusion.com
mverhagen at embeddedfusion dot com
No comments:
Post a Comment