Build in Windows Mobile
2010-05-13 11:29
381 查看
1 Build System
Windows Mobile下的编译分为四个阶段:1. The Compile Phase
2. The Sysgen Phase
3. The Release Copy Phase
4. The Make Run-Time Image Phase
在不同的阶段,它们分别调用不同的工具(.bat文件或.exe文件)完成不同的工作,如图1.1所示:图1.1
Compile Phase
1. 编译器(Build.exe)和连接器(Linker)利用源代码文件生成静态库文件。2. 一些本地化的工作(Localization tasks)把resource script. (.rc)文件编译成binary resource (.res)文件。
Sysgen phase
1. 运行Cecysgen.bat来确定应该设置或清除哪些变量。2. 编译系统过虑头文件,根据OS已导出(exported)的函数原型生成新的头文件。
3. 生成模块(modules)需要导入(Import libraries)的库。
4. 系统的配置文件经过虑后生成一个新的配置文件。
Release Copy phase
1. 把生成OS image需要的所有文件都拷贝到Release目录下。Make Run-Time Image phase
1.用Release目录下的文件生成OS image。2 Build in WindowsMobile
2.1初次编译整个BSP
利用New Build Window Wizard,可以在桌面上建立三个命令行的快捷方式:Update Loader -×××、Base OS -×××、Build All -×××,分别对应于三个批处理文件UpdateLoaderEnv.bat
、
BaseOSEnv.bat
、
BuildAll.bat
。
Update Loader Shortcut:
Update Loader Shortcut对应于Update Loader的编译。双击该快捷方式,运行UpdateLoaderEnv.bat
对编译环境进行设置后,在命令行提示符中输入:
blddemo clean –q
,再敲回车即可编译整个
Update Loader
。如图
2.1
图
2.1.1
Base OS Shortcut:
Base OS Shortcut对应于operating system的编译。双击该快捷方式,运行BaseOSEnv.bat
对编译环境进行设置后,在命令行提示符中输入:
blddemo clean –q
,再敲回车即可编译整个operating system
。但完成这个命令的前提是%_PLATFORMROOT%/%_TGTPLAT%/Files目录下存在uldr.nb0文件。
如图
2.2
图2.1.2
Build All Shortcut:
Build All Shortcut对应于整个代码的编译,双击该快捷方式后,自动完成整个代码的编译,它先编译Update Loader,然后再编译Operating System,是上述两部分工作的总和。通常,初次Rebase一个BSP后,都应该运行该快捷方式,对整个代码进行编译。但如果初次Rebase后的代码中%_PLATFORMROOT%/%_TGTPLAT%/Files目录下已经存在uldr.nb0文件,而又不需要对Update Loader进行调试,这是就可以运行Base OS Shortcut,中命令行中输入blddemo clean –q,再敲回车即可,这样就可以节省编译Update Loader的时间。
2.2 Rebase新基线后Operating System的编译
因为通常我们都是对Operating System部分进行调试,所以以下的讨论都是针对Operating System的编译,Update Loader部分的编译是类似的。新的基线生成时,大部分模块的代码都做了根新。Rebase一条新基线后,我们需要在新的基线上工作,这时就要重新生成OS image。双击Base OS Shortcut,在命令行提示符下输入blddemo clean –q,再敲回车。下面对blddemo.bat这个批处理文件的参数做一点说明。
blddemo.bat有两个常用的参数:clean和-q
clean
使用这个参数会清除Cesysgen目录,它们是%_PROJECTROOT%/Cesysgen and %_PLATFORMROOT%/Cesysgen。
以下两种情况需要使用这个参数:
1. 修改了%_WINCEROOT%/Public/CEBASE/OAK/Misc目录下的Cesysgen.bat文件。
2. 修改了会影响到Cesysgen.bat的环境变量,如以SYSGEN或BSP为前缀的变量。
如果确定以上两种情况都不存在,可以去掉clean这个参数,这样可以节省清除和重建Cesysgen目录的时间。
-q
使用这个参数表示编译系统不会编译Public目录下的代码,这样可以节省编译Public目录的时间。
一般情况下这个参数都会被使用,除非你修改了Public目录下的代码。
当然,blddemo.bat还有其它的可选参数,关于这些参数的说明可在Windows Mobile的帮助文档中找到,地址:
Adaptation Kit User's Guide > Build System Overview > Build System Tools
2.3模块调试过程中的编译
模块调试过程中的编译有两种情况,一是源代码修改后,需要重新编译;二是相关的配置文件(如.reg文件)修改后,需要重新生成OS image。2.3.1源代码的修改
Microsoft Platform. Builder for Windows Mobile 5.0提供了一个功能,使得我们在调试时,可以用新生成的模块代替旧的模块而不需要重新生成OS image,而且可以用新的debug版的模块代替旧的retail版的模块,这样可以节省大量的时间。下面以IMPACE的Camera Driver模块为例,说明如何操作:
1. 双击Base OS Shortcut,在命令行提示符下用cd命令进入到需要编译的模块的目录。
在命令行提示符下输入以下命令,敲回车。
cd PLATFORM/IMPCE/SRC/DRIVERS/CAMERA
图2.3.1
2. 如果需要生成一个debug版本的模块,执行这一步,否则,跳过。
在命令行提示符下输入以下命令,敲回车。
set WINCEDEBUG=debug // WINCEDEBUG和=之间不能有空格
图2.3.2
3. 在命令行提示符下输入以下命令,敲回车,使编译完成后把相关的文件拷贝到Release目录下。
set WINCEREL=1 //一般可省略,WINCERE在%_TGTPLAT%.bat会设置为1
图2.3.3
4. 在命令行提示符下输入以下命令,敲回车,编译当前模块。
Build //如果要清除旧的.obj文件,可加参数–c,但会多费点时间
Build.exe也有其它的一些可选参数,常用的一般是-c ,关于Build.exe其它参数的说明,在Windows Mobile的帮助文档上有详细的说明,地址:
Adaptation Kit User's Guide > Build System Overview > Build System Tools
图2.3.4
5. 在Platform. Builder的File菜单中,选择Open。
图2.3.5
6. 选择BSP的Release目录,打开相应的文件,如FLASH.bin。
图2.3.6
7. 在Platform. Builder的Target菜单中,选择Release Directory Modules。
图2.3.7
8. 在弹出的菜单中,选择Add,再在弹出的菜单中输入或选择模块相应的模块,点OK。
图2.3.8
9. 运行系统,开始调试。
2.3.2配置文件的修改
在调试过程中,如果需要对配置文件做修改,来改善系统的性能,增加或减少OS image中模块,则可以直接在Release目录下修改经过虑后的该配置文件,然后双击Base OS Shortcut,在命令行提示符下输入makeimg,敲回车。图2.3.9
例如:
需要修改.reg文件,在Release目录下打开platform.reg,找到相应的项,修改完成后makeimg。
调试成功后,再在这些配置文件的原文件上做修改。
相关文章推荐
- Build in Windows Mobile
- Build process in Windows Mobile
- Build process in Windows Mobile
- Build openh323 in Windows using …
- Build Native Mobile Apps in HTML5: PhoneGap from Start to Finish
- Windows Mobile Device Emulator In-Depth
- build-qt.sh(Cross compile in Linux for Windows)
- New Virtual Key to Unlock the Keypad in Windows Mobile 6 AKU 1.3
- Linking different libraries for Debug and Release builds in Cmake on windows?
- run Windows Mobile connecting in…
- post-receive in Windows---git hooks trigger Jenkins to build artifcat
- How to sync all tasks information from desktop to device in Windows Mobile 5
- How to set connections in windows mobile emulator?
- How to build the environment of XPCOM in Windows XP
- vs2005 build the wxwidgets for wince with windows mobile 6 sdk
- build iPhone toolchain for 3.0 in windows via CYGWIN
- calling the OPENSSL libs in windows mobile
- Latest SVN Windows build is always available at: http://www.xverve.com in the downloads section
- VS2005 build for Windows Mobile 6 SDK Samples
- How to use the Windows Azure Mobile Services (WAMS). With WAMS, signing in via Microsoft, Facebook, Twitter, and Google