工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛
您的位置:软件 > 开发者网络 > 开发工具 > 移动开发 > 正文
Platform Builder实践之编译
[文章信息]
作者:付林林
时间:2004-10-02
出处:天极网
责任编辑:方舟
[文章导读]
当用PB的“定制平台向导”选取了一个平台的所有特征后,接下来的工作就是编译了
advertisement
热点推荐
· 真没想到VB也可以这样用之指针技术
· 禁止QQ登录的方法
· 给你的XML文件做个数字签名
· ImageReady制作“焰火”小动画
· Java加密和数字签名编程快速入门
[正文]

  接上一章所说,当用PB的“定制平台向导”选取了一个平台的所有特征(feature)后,接下来的工作就是编译了。即使你从来未曾编译过,你也能想象得到编译的时间一定很长。因为PB是在编译一个操作系统,而非一个应用程序。当然,越快的硬件环境编译的速度就越快。一般我编译一个内核需要5分钟到10分钟之间。

  在编译之前你可能还要对这个CE平台的某些特征进行修改。为此,你必须熟悉PB的操作环境。下面图1是PB打开一个平台工程文件的界面。


图1 PB主界面

  图1中数字所指示的内容描述如下:

  1、“Build”工具栏。此工具栏上按钮、下拉框都用于编译、调试。数字1指向的下拉框是编译指令集,可以指定不同的指令集来编译CE平台或者应用程序。

  2、“Workspace”窗口。此窗口有三个子视图,分别为FeatureView、ParameterView、FileView。当打开一个平台工程文件后,FeatureView显示这个平台所有的特征。如设备驱动程序、各个软件组件等。ParameterView显示所有平台通用的配置文件和当前平台的配置文件,这些配置文件扩展名为*.bib、*.reg、*.db、*.dat。FileView显示在当前CE平台上建立的应用程序源码文件、资源文件、资源脚本文件等。也就是说如果在当前CE平台上建立一个应用程序工程,那么所有的文件都在FileView中显示出来。类似EVC、VC的“Workspace”窗口中的“FileView”。注:关于FeatureView和ParameterView包含的内容在以后的文章中讲解。

  3、“Output”窗口。用于显示输出信息。类似EVC、VC的“Output”。

  4、“Target”窗口。此工具栏上按钮分别用于下载内核文件到模拟器或实际平台、连接、断开。当一个CE平台编译好了之后,就可以按下载按钮将平台(nk,bin)文件下载到模拟器上运行。

  5、“Catalog”窗口。这个窗口包含所有的CE支持的特征。

  6、状态栏图标。位于状态栏最右端的四个图标中,最左边的图标表示当前下载状态。另外三个表示三种服务状态,这三种服务运行在目标机(target device)上。在这里就是模拟器。

  要向当前CE平台添加特征,首先在右边“Catalog”窗口中找到要添加的特征,找到后移动鼠标光标到此特征上,然后单击右键,在弹出的菜单中单击“Add to Platform”,PB就将此特征添加到左边当前CE平台中。如果无反应说明此特征已经被添加进去了。要删除当前CE平台中某一个特征,移动鼠标光标到此特征上,单击右键,在弹出的菜单中选择“Delete”。并非所有的特征都可以任意删除,因为有些特征是彼此关联的。这部分将在以后的文章中讲述。

  对平台进行一些基本的设置,打开菜单“platform”-“Settings”,检查“Locale”选项卡中地区和语言设置。这一点很重要,它决定着编译的平台采用的语言种类。再在“Environment”选项卡中添加“IMGRAM64”环境变量,值设置为1。单击“OK”,PB开始将此环境变量加入到平台中。单击工具栏上“Build Platform”按钮开始编译。

  在讲述编译过程前必须先了解环境变量以及如何读取和设置环境变量。一个环境变量包含了一个CE操作系统某一方面的信息。例如一个驱动程序、一个路径、一个配置文件、一个特征等。当PB编译CE平台时,先做的工作就是收集所有的环境变量供编译器使用。读取和设置环境变量的最好方法是单击PB菜单“Build”-“Open Build Release Directory”,PB会弹出一个控制台窗口,也就是命令行外壳。键入“set”命令,当前平台所有的环境变量就显示出来了,不过要多屏显示。为了看清楚每个变量的值,可以键入“set |more”,这样就可以分屏查看了。还可以将所有环境变量信息保存到硬盘上,比如键入“set >C:\envi.txt”。要查看单个环境变量值,键入“set 环境变量名”。要修改原环境变量的值键入“set 环境变量名=值”。

  有些环境变量无需键入值就可以达到修改目的。比如前缀为“BSP_”和“SYSGEN_”的变量,键入“set 环境变量名=”就取消了这个环境变量。在IDE中也可以修改环境变量,如上面所说的设置“IMGRAM64”的值,就是在IDE中修改的。利用环境变量也可以添加和删除特征,如BSP变量。BSP变量分两种,一种以BSP_NO为为前缀,一种以BSP为前缀。以BSP_NO为前缀表示当前平台不支持某一特征,以BSP为前缀表示支持这一特征。例如BSP_SERIAL2表示此CE平台支持串口2;BSP_NOSERIAL表示此CE平台不支持串口。如果在PB的“catalog”中找不到要添加的特征,可以通过设置BSP变量来实现。具体BSP环境变量参见CE帮助文档。

  下面讲述整个编译过程中PB所做的工作:

   执行cebuild.bat批处理文件。

   cebuild.bat调用sysgen.bat批处理文件。

   sysgen.bat调用cesysgen.bat批处理文件,cesysgen.bat负责在*.wce文件中搜索用户选择的特征,然后形成一系列环境变量。之后PB会显示这些变量,下面几个步骤就是显示收集的变量。

   产生SYSGEN变量。每个SYSGEN变量对应一个特征。

   产生CE_MODULE、COREDLL_COMPONENTS、FILESYS_COMPONENTS、DEVICE_COMPONENTS、GWE*_COMPONENTS、DCOM_MODULES、FONTS_COMPONENTS等环境变量。其中每个环境变量包含某一个特征具体的内容。从环境变量名称就可以看出来是哪种特征。

   对_DEPTREES环境变量指定的每个目录分别执行sysgen.bat批处理。_DEPTREES这个变量的值是一些目录名(例如DCOM、IE、SERVERS、DIRECTX、WCESHELLFE等),这些目录名位于%WINCEROOT%\public。如果安装PB v4.1时默认安装路径,那么此目录路径为C:\WINCE410\Public。

   编译BSP。因为我们采用的BSP是Emulator,所以PB会编译%WINCEROOT%\Platform\Emulator目录下三个子目录KERNEL、DRIVERS、GWE中的源码文件。

   清除_FLATRELEASEDIR环境变量指定的目录下的所有文件、子目录。假如我们定制的平台路径为C:\Emulator,那么这个环境变量的值为C:\Emulator\RelDir\Emulator_X86Release。

   复制%_PROJECTROOT%\所有文件到_FLATRELEASEDIR。

   根据本地地区环境变量,寻找所有与本地语言相关的*.str文件复制到_FLATRELEASEDIR中。*.str文件中包含了字符串资源,将字符串与ID关联。在_FLATRELEASEDIR目录下你可以看到以地区码为目录名的子目录。

   处理NLS(国家语言支持)数据。

   执行fmerge.exe。合并所有*.bib文件为一个文件ce.bib,合并所有*.reg文件为一个文件reginit.ini。

   执行fmerge.exe。合并所有*.db文件为一个文件initdb.int,合并所有*.dat文件为一个文件initobj.dat。

   运行regcomp.exe压缩reginit.ini。

   运行txt2ucde.exe。将整个CE平台涉及到的所有字符串转成unicode码。

   运行res2exe.exe。将所有*.dll、*.exe、*.cpl文件中的资源更新。资源更新部分主要和语言相关。

   运行Romimage.exe。将所有文件合并压缩成一个文件nk.bin(默认文件名)。

  整个编译过程被调用的批处理文件和EXE文件主要包括:cebuild.bat、sysgen.bat、cesysgen.bat、nmake.exe、txt2ucde.exe、makeimg.exe、fmerge.exe、regcomp.exe、res2exe.exe、romimage.exe、build.exe。在这里声明一点,我不保证所讲述的PB的编译过程一定是准确无误的。从总体上讲PB所做的工作就是这样。


发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容焦点新闻
  • 民营家电商排队造手机 设备商全面杀入
  • 英特尔澄清杨旭任职传闻 官方没宣布此消息
  • 国资委河北密制联通拆分方案
  • 垃圾邮件害人害企害国 清除垃圾邮件不手软
  • 中兴携手阿尔卡特 全球逐鹿CDMA
  • 用友总裁王文京:誓将ERP变成“大众消费”
  • 香港消费者委员会:数码相机最贵未必最好
  • 外电称中兴正评估西门子手机业务 或能并购
  • Advertisement

    天极无线


    奇妙科幻|美好风光|清风车影|漫画卡通|星座生肖|明星写真|动物世界
    老鼠爱大米
    挥着翅膀的女孩
    女人味
    栀子花开
    白月光
    刚刚好
    江南
    快乐崇拜
    亲爱的你怎么不在我身边
    小薇
    2002年的第一场雪
    有多少爱可以重来
    我的地盘
    七里香
    情人
     
    老鼠爱大米 老板电话
    冲动的惩罚 七里香
    我不是黄蓉 女生撒娇
    盛夏的果实 坚持到底
    孤单北半球 眉飞色舞
    挪威的森林 可爱女人
    最浪漫的事 老板电话

    CSEEK搜索