《Windows CE嵌入式开发入门——基于Xscale架构》 第6章 开发平台(Platform Builder和Embedded Visual C++)简介

 

6.1  Platform Builder介绍

Platform Builder是微软公司提供给Windows CE开发人员进行基于Windows CE平台下嵌入式操作系统定制的集成开发环境。它提供了所有进行设计、创建、编译、测试和调试Windows CE操作系统平台的工具。它运行在桌面Windows下,开发人员可以通过交互式的环境来设计和定制内核、选择系统特性,然后进行编译和调试。同时,开发人员还可以利用Platform Builder来进行驱动程序开发和应用程序项目的开发等等。Platform Builder的强大功能,已使其成为Windows CE平台下嵌入式操作系统开发和定制的必备工具。

以下是Platform Builder提供的工具集。

n     使用模版来创建一个新的平台。

n     使用模版来创建一个新的板级支持包。

n     Catalog列表中显示了一系列的系统特性,这些特性可以被选择用于新的平台中。

n     自动检查各个功能模块之间的依赖关系,以确保系统所需要的功能及其子功能,关联的模块都能被包含的定制的目录中。

n     通过输出的模板,将一个系统的功能输出到配置文件,以便其他用户使用。

n     提供基本的默认配置,这为定制具有特定功能的操作系统带来了方便。

n     Windows CE Test Kit提供了测试驱动的一系列工具。

n     内核调试器能调试被定制的操作系统,并且能给用户提供性能上的测试参数。

n     应用程序调试器能在目标机或者虚拟机的操作系统中测试应用程序。

n     远程调试器能通过远程控制来搜集目标机上的信息,比如远程文件监视器、注册表监视器。

n     虚拟器可以在硬件平台未搭建好的时候能调试硬件无关的程序。

n     SDK输出模板可以将特定系统的SDK导出,这可以是应用程序开发人员使用EVC就可以为特定的系统开发软件。EVC调试的是应用程序软件,而Platform Builder往往要编译整个内核再调试,两者的开发效率是不同的。

具体来说,Platform Builder提供的主要开发特性如下。

平台开发向导(Platform Wizard)、BSP(主板支持软件包)和开发向导(BSP Wizard)。开发向导用来引导开发人员去创建一个简单的系统平台或BSP,然后再根据要求作进一步的修改。提高了平台和BSP创建的效率。

基础配置。为各种流行的设备类别预置的可操作系统基础平台,为自定义操作系统的创建提供了一个起点。开发人员可以很容易地定制并编译出一个具备最基本功能的操作系统。然后再在其上做后续的修改。

特性目录(Catalog)。操作系统可选特性均在特性目录(Catalog)中列出,开发人员可以选择相应的特性来定制操作系统。

自动化的依靠性检查。特性(Feature)之间的依赖关系是系统自动维护的。开发人员在选择一个特性时,系统会自动将这一特性所依赖的特性加上;反之,当删除一个特性时,系统会自动检测是否已经选择了依赖于它之上的其他特性,如果有,系统会给出提示,通知开发人员这一特性现在不能删除。

系统为驱动程序开发提供了基本的测试工具集。Windows CE Test Kit(测试工具包).

内核调试器。可以对自定义的操作系统映像进行调试,并且向用户提供有关映像性能的信息。

导出向导(Export Wizard)。可以向其他Platform Builder用户导出自定义的目录(Catalog)特性。

导出SDK向导(Export SDK Wizard)。使用户可以导出一个自定义的软件开发工具包(SDK)。即可以将客户定制的SDK导出到特定的开发环境中(如EVC)去。这样开发人员就可以使用特定的SDK写出符合特定的操作系统平台要求的应用程序。

远程工具。可以执行同基于Windows CE的目标设备有关的各种调试任务和信息收集任务。

仿真器(Emulator)。通过硬件仿真加速和简化了系统的开发,使用户可以在开发工作站上对平台和应用程序进行测试,大大简化了系统开发流程,缩短了开发时间。

 应用程序调试器。可以在自定义的操作系统映像上对应用程序进行调试。

 提供了对NET FrameWork Compact Edition(即.NET平台精简框架)的支持。

Windows CE一般应用于特定的嵌入式系统中,在许多情况下,不但需要向目标平台添加基本的操作系统特性,以使它能够完成基本的控制任务,另外,还要向目标平台中加入外部设备的驱动程序和一些附加的设置。但是,对于一些通用性较强的嵌入式系统,如PDA、机顶盒、智能电话等,微软都为其特别定制了专用的操作系统,如SmartPhonePocket PC等。开发者可以利用这些特定的操作系统,并在此基础上进行调整,从而更快地定制出适合需要的目标操作系统平台。

深刻理解Windows CE的重要组件及系统提供的可选特性,并灵活运用Platform Builder的配置文件.REG.BIB.DAT.DB是定制适合目标平台的Windows CE操作系统的关键。

6.2  Platform Builder的安装

Platform Builder是商用软件,因此要通过正规途径获得。安装Platform Builder至少需要4GB的磁盘空间,建议使用512MB以上的内存,1.8GHz以上主频的处理器。

运行Setup.exe文件后,将出现如图6-1所示的对话框。

6-1  开始安装

选择Install安装,将出现如图6-2所示的对话框。

6-2  安装向导(1

选择next按钮,出现协议许可对话框,选择接受协议,单击next按钮,出现图6-3所示对话框。

6-3  安装向导(2

选择安装CustomTools and OS),将安装工具和系统定制的环境,包括操作系统公开的源代码。单击Next按钮,出现图6-4所示对话框。

6-4  安装向导(3

6-4所示对话框是选择将要安装的处理器种类的支持,这里有Emulatorx86ARMV4ARMV4IIMIPS IIXscale等,建议读者都选上。Shared Source for Windows CE.NET是微软公开的部分Windows CE的源代码,如果读者有需要研究的话,也应该选择。如果安装磁盘的空间足够的话,单击Next>按钮,就可以进入安装阶段。

安装完毕后,单击Finish按钮,此时将打开Platform Builder,界面如图6-5所示。

6-5  Platform Builder主界面

6.3  Windows CE系统的目录结构

Platform Builder 4.2安装以后,在安装的目录下会有以下5个子目录。

n     Public目录

这个目录下存放了和平台硬件无关的组件和配置文件。

n     Private目录

Private包含了Windows CE .NET开放的源代码。

n     Platform目录

这个目录下存放了硬件相关的信息。

n     SDK目录

SDK目录下包含了相关的工具和二进制来支持相关的平台。

n     Others目录

Others目录包含了各种运行时、样例程序和组件。

6.3.1  Public目录

Public存放Windows平台开发工具,包括大量的驱动程序、应用程序开发套件。这个文件夹是所有微软公司提供的配置信息以及样例驱动程序和可裁减代码被存储的地方。可以在这里建立自己的配置文件夹。当然在这个目录下改代码有风险,在修改代码前,建议对原文件做个备份。

对该目录的描述如下。

n     这个目录下存放了和平台硬件无关的组件和Windows CE的配置文件。

n     这个目录位于%_WINCEROOT%/Public

n     Public目录下,有以下子目录:CommonDatasyncDCOMDirectXHlbaseIabaseIeNetcfRDPScriptServersSpeech ViewersWceappsfeWceshellfe

n     以上子目录按照类别分可分为三种子目录:

n     组建和模块子目录:CommonWceshellfeWceappsfeIEMSMQ

n     引用配置文件子目录:IABaseHLBase

n     可定制的配置文件子目录

1.组建和模块子目录

Platform Builder提供了这个目录,其中包含了所有在定制Windows CE过程中可供选择的模块和组件。

n     COMMON子目录:内核的所有组件,可以被用在所有的工程中,例如core operating systemfile systemGWEcommunicationdebugging

n     DATASYNC子目录:和设备端通信的组件。

n     DCOM子目录.Distributednetwork-enabledCOM的组件和模块。

n     DIRECTX子目录:Windows CE DirectX组件。

n     IE子目录.Microsoft Internet Explorer 5.5模块。

n     MSMQ子目录:支持MSMQ的组件和模块。

n     RDP子目录:基于Windows的远程桌面终端模块。

n     SCRIPT子目录:JavaScriptVBScript引擎。

n     SERVERS子目录:Web Server支持。

n     WCEAPPSFE子目录:支持在移动设备中的类似WordoutlookWindows专用程序。

n     WCESHELLFE子目录:包含了组件,这些组件用来支持移动设备中的类似WordOutlookWindows专用程序

n     CESYSGEN子目录:包含了用来编译目录的makefile文件。

n     OAK子目录:包含了OAK设备驱动。

n     SDK子目录:包含了SDK的组件。

2.配置子目录

Platform Builder中包含了两种引用记录。它们是IABaseInternet Appliance Base Config uration)和HLBaseHeadless Base Configuration)。这些配置文件的代码存放在%_WINCE ROOT%/Public/IABase and %_WINCEROOT%/Public/HLBase目录下。

它们都有如下这些类似的内容。

n     在编译操作系统时需要用到的批处理文件(*.bat)。这些文件设置了环境变量来表明系统平台应当包含的内容。

n     一个OAK目录,它包含了两个子目录:
Files
这个子目录包含了配置文件以及该配置文件默认的注册表文件。
Misc
这个子目录包含了CESYSGEN.BAT文件,这个文件列出了要包含在操作系统镜像文件中模块和组件的文件。

3.可定制配置子目录

当定制一个新的配置(即新的具有不同功能的操作系统内核)时,在%_WINCEROOT% /Public/Myplat目录下将生成一个新的目录来代表新的内核。在编译这个内核时,编译器将在这个目录下新建以下目录。

n     RelDir
一个release目录,里面包含了所有在编译选定功能的内核时要用到的文件,包括组件、注册表、数据库以及内存访问设置文件。

n     WINCE400
这是%_WINCEROOT %目录的一个子集,它对应于用户的特定的配置。这个目录中包括CESYSGEN目录和OAK目录。CESYSGEN目录,其中包含了项目的模块和组件,例如WceshellWceappsIE、和MSMQOAK目录包含了一些项目配置文件以及cesysgen.bat文件,它们在sysgen编译阶段将被使用。

6.3.2  Private目录

PrivateWindows CE的共享原始程序代码,主要包括应用服务、资源管理器(开始菜单接口)、通信支持、资料储存管理器、图形使用者接口以及事件系统、操作系统内核程序代码。Private目录下的程序代码一般是不希望开发者修改的,因为这可能会与发布出来的Windows CE产品产生兼容性和稳定性不好的问题。

6.3.3  Platform目录

Platform里面按照不同平台存放的是BSP的代码,例如CEPCARM 9XSCALE平台,BSP中包括平台特定的驱动程序、启动程序、核心HAL驱动程序等。

Platform下的文件是系统开发程序员最关心的,子目录也比较多。

n     ARMINTEGRATOR:针对ARM公司生产的ARMINTEGRATOR处理器的BSP代码包。

n     SMDK2410:是由三星公司开发的S3C2410处理器的BSP包,三星公司为这款处理器设计了demo板,称为SMDK2410

n     XSC1BDXSC1BSP包。

n     SA11X0BDSA1100BSP包。

以及其他处理器的的BSP包。在这些包里,一般都有EBOOT文件夹(启动代码)、DRIVER(驱动代码)和INC(头文件)等。

这个目录包含了一系列子目录。其中有Platform Builder支持的每一种BSP目录和第三方BSP包的目录。一般将和硬件无关的代码存放在系统其他地方,而将与硬件直接相连的程序包集中到一起,这样在开发硬件相关软件的时候,独立的目录能让用户更清晰地理解Windows CE BSP的精髓。同样,用户可以在已经安装的BSP目录中寻找和适合自己开发板的支持包,复制出来后加以修改使用。

6.3.4  SDK目录和Others目录

SDK按照平台的系统结构存放各种开发工具、例如编译器等。

Others目录的内容包括MFCATL的共享程序代码、链接库文件以及.NET的共享函数库。

PLATFORM里面按照不同平台存放的是BSP,例如CEPC平台,包括平台特定的驱动程序、引导程序、图形引擎的部分驱动程序、核心HAL驱动程序等。

6.4  Embedded Visual C++EVC)介绍

Embedded Visual C++EVC)是微软公司提供的开发嵌入式软件的平台,它是Visual C++的子集。EVC自带了标准的Windows CESDK,如果读者有需要,可以从Platform Builder中导出SDK,然后安装在EVC中。

EVCPlatform Builder的不同之处在于:Platform Builder针对的是操作系统的定制,编译目标是整个OS的内核,虽然Platform Builder也能开发应用程序,但是这些应用程序是作为整个系统的一部分而存在,编译时还是以一个操作系统为单位;EVC针对的是应用软件开发,特定操作系统的SDK就已经为它提供了系统的运行环境,因此它编译的单位是一个应用程序,EVC会提供虚拟器加载SDK来运行应用程序。众所周知,编译内核和编译应用程序的时间开销是大不一样的。

6.5  Embedded Visual C++的安装

EVC可以从微软公司的网站上下载,运行Setup.exe以后,将出现如图6-6所示的对话框。

6-6  EVC安装向导(1

单击Next按钮,按照安装向导安装。出现图6-7所示界面时,要注意将EVC平台和Standard SDK都安装上,如果不提供SDKEVC是不能运行的。

6-7  EVC安装向导(2

单击Next按钮,按照安装向导继续安装即可。

安装完毕后启动EVC,将看到如图6-8所示的界面。

6-8  EVC主界面

6.6  如何添加BSP

下面以kaola开发板为例子,首先请从嵌入式研究网下载本书推荐的开发板BSP,下载地址为http://www.cnemb.com/CEbook/kaola.zip。解压文件包,得到kaola文件夹。

1)将此目录复制到%WINDOWS CE420%/PLATFORM下。

2)然后打开Platform Builder,在工具栏中依次选择FileManage Catalog Features

3)在弹出的对话框中单击“Import”按钮。在弹出的文件选择框内,选择kaola目录下的TTI255.cec文件,单击“打开”按钮。

4)在Platform BuilderCatalog目录的ThirdParty中就能看到kaolaBSP树状结构了,如图6-9所示。

6-9  添加后的BSP

6.7  如何定制平台

下面以定制仿真平台的操作系统为例子。首先在Platform Builder主界面中依次单击FileNewPlatform,将出现如图6-10所示的对话框。

6-10  定制平台向导(1

单击Next,出现图6-11所示对话框。

6-11  定制平台向导(2

EMULATOR x86前打勾,表示选用EMULATORBSP包,接下来在对内核提供的功能进行裁减。

Windows CE支持目前流行的多款CPU系统,主要有x86系列、ARM系列、MIPS系列、SH3系列、SH4系列等,每一种系列除了相应的标准开发包外,还带有此系列中较为常用的具体CPU的开发包,如X86系列除标准的CEPC(对应所有的x86系列)开发包,还带有一个NATIONAL GEODE:X86(对应美国国半的SC1200系列)开发包。

如图6-11所示,在选择一种开发包后,在对话框的右半部分会显示相应开发包的说明,表明这个开发包支持哪个公司的产品,相应的芯片是什么。

可以同时选择几种BSP,在编译时在选择相应的开发包进行编译,在此为了讲解方便,只选择x86的仿真器方式(EMULATOR:X86),单击Next按钮,出现图6-12所示的对话框

选择Mobile Handheld,表示手持移动设备,并且填写文件路径。按Next,将如图6-13所示的界面。

这里列出了内核提供的功能以及各重应用程序。按Next,将如图6-14所示的界面。

这里列出了内核提供的网络的设置选项。按Next,将如图6-15所示的界面。

这是对所有功能和BSP的总结列表,按Next,将显示如图6-16所示的Platform Builder开发界面。

 

6-12  定制平台向导(3

6-13  选择内核提供的重要应用程序和多媒体支持

6-14  选择内核提供的网络支持

 

6-15  对所有内核提供功能的总结列表

6-16  Platform Builder开发界面

6.8  生成操作系统镜像

自定义了一个平台之后,可以准备用于生成一个操作系统镜像,在介绍操作步骤之前,先介绍Platform Builder可以生成的两种镜像。

一种是用于发布给用户,被称为Release版,生成后的文件存放在C:/WINCE400/PUBLIC/ Kaola/ RelDir/EMULATOR_X86Release目录下。

另种是用于调试,被称为Debug版,生成后的文件存放在C:/WINCE400/PUBLIC/ Kaola/RelDir/EMULATOR_X86Debug目录下。

如果想选择生成的版本可以单击Platform BuilderBuild工具栏中图6-17所示的下拉选框。

6-17  选择生成版本

在图6-17所示中可以看出,一共有2个版本可以选择,这是因为在图6-11中选择了基于模拟器的BSP开发包,这里为了便于大家进行练习,选择EMULATOR:X86 Win32 [WCE emulator] Debug版本进行讲解。

选择生成版本后,有以下几步还需要进行设置。

n     单击Build菜单,选择Set Active Configuration一项。从显示的列表中选择要编译的版本号。

n     单击Platform菜单,选择Setting一项。在弹出的对话框中选Build Options选项卡,勾选Enable CE Target Control SupportEnable Eboot Space in MemoryEnable Full Kernel ModeEnable Images Larger than 32MBEnable KITL复选框,如图6-18所示。单击“OK”关闭Platform Setting对话框。

6-18  Build Options选项

n     单击Build菜单,选择Build Platform一项,系统开始生成镜像文件。

n     在系统build过程中,有时会出现一些对话框,警告现在准备将Digital Rights Management.NET Compact Framework Beta Release等加到平台,直接单击“OK”按钮就可以。

进行编译的时间要根据考虑PC硬件条件及所定制的操作系统镜像大小,如果定制的是一个较大的操作系统镜像,等待时间可能较长,这段时间读者可以看一下输出窗口(Output Window),它显示的是生成系统的整个过程,这对读者更好地理解系统有很大帮助。

当输出窗口最后显示“TEST - 0 error(s)0 warning(s)”时,表示定制的操作系统镜像已经生成完毕,可以使用了。

在生成的目录下,可以看见很多的文件,这些文件及目录均是在生成操作系统镜像时所需要的文件,Platform Builder就是根据这些文件来生成系统镜像文件。

在这些文件中,有一个NK.BIN文件,这个文件就是适用于本例设备的操作系统镜像文件,也就是设备最终要用的Windows CE.NET内核,用BootLoader程序加载这个文件就可以启动Windows CE.NET操作系统。

 

注意

开发者最终提供给用户的应该是基于硬件BSP的发布版本目录下的NK.BIN文件。

 

6.9  Windows CE .NET编译的内部结构和步骤

1.编辑阶段

Windows CE .NET的编译分为4个阶段。

1CESYSGEN编译阶段

这是编译的第一阶段,由sysgen.bat完成。这部分首先将用户在定制平台时排除在外的系统功能所对应的文件从编译的列表中剔除,保留和定制功能相关的头文件、def文件以及.lib文件,这些文件将被用来编译成DLL以及在后续编译过程中所产生的其他文件。此外,被处理过的头文件和库文件可以被用来导出平台SDK

IDE集成开发环境中,这个部分有两个名称:generate system headersre-generate system headers。实际上它们的功能是一样的。re-generate system headers首先把已经存在的头文件等全部删除,然后在重新过滤文件,再进行处理。re-generate system headers将花去很多时间,但是当用户重新配置了系统结构后,这样做还是有必要的。当用户已经设置完系统配置后,本阶段编译并不是每次编译操作系统时都需要进行的。

6-19是本阶段编译的示意图。

6-19  CESYSGEN编译阶段示意图

2BSP编译阶段

这个阶段的编译由Build.exe完成。此阶段以后的编译过程将占据绝大部分的编译时间。编译器将编译内核、图形界面模块、事件子系统、OEM适配层的源代码,并且将这些部分和BSP编译出的文件链接在一起。这些模块是和硬件平台息息相关的,因此必须得到BSP的支持。内核模块和OAL相链接,产生nk.exe。在本阶段中将使用到一组特殊的文件,这些文件将指导如何进行编译,并且决定哪些文件是需要被编译和链接的。DIRS将指示从哪些路径寻找需要编译的文件。SOURCES文件定义了那些文件是需要被编译,如何被编译的。这两个文件都只是文本文件,但是它们描述了大量编译过程的信息。这两个文件的格式都是基于makefile文件的。DIRS文件可以简单地等同于类似Visual C++环境中的workspace。而SOURCES文件可以看作是工程文件。SOURCES文件相对比较复杂,但是它基本上设置了各模块的编译和链接顺序以及所要包含和编译的源文件。

下面是kaola BSPDIR文件的内容:

 

DIRS= /

    drivers/

    gwe/

    kernel /

pmu

 

以上列出了在本阶段编译时,要扫描的目录项。在编译器进入这些目录后,再扫描这些目录中的DIR文件或者是SOURCES文件(两者选其一),从而进行递归扫描所有的目录。

3BUILDREL编译阶段

这个阶段主要由BuildRel.BAT文件完成。它将前两个阶段编译生成的目标文件、EXE或者DLL文件,从它们各自的目录中复制到为编译image而准备的release_FLATRELEASEDIR)目录中。BSP下的目标文件和子目录将被复制的目标文件夹下以获得前一阶段编译的各模块的中间文件。在集成开发环境中,操作系统的整体编译将在所有需要的文件被复制到_FLATRELEASEDIR目录后执行。

4MAKEIMG编译阶段

这个阶段由makeimg.exe文件执行,这是最终的编译阶段,它将所有的二进制文件链接到一起,生成适合特定平台的操作系统镜像文件。本阶段根据配置处理所有release目录下的文件。同样它还要寻找处理所有模块中XIP的问题。

本编译阶段主要由3个子阶段组成。

第一阶段将各种的配置文件整合到一起,比如BIBDATREGDB等,针对每种配置文件,整合的信息将存放到一个master文件中。表6-1显示了这些文件和对应的master文件。

6-1                                          各种配置文件和相应的master文件

   

Merged master文件

Description

Common.bib,
Config.bib,
Project.bib,
latform.bib

Ce.bib

描述了将要被链接到操作系统镜像文件中的Windows CE文件

Common.reg,
Project.reg,
Platform.reg

Reginit.ini

提供了操作系统镜像文件的注册表入口点

Common.dat,
Project.dat,
Platform.dat

Initobj.dat

提供了对操作系统镜像文件以及各种目录的描述

续表

   

Merged master文件

Description

Common.db,
Project.db,
Platform.db

Initdb.ini

定义了Windows CE对象存储

 

在第二个子阶段中,makeimg将用LOC文件中指定的EXEDLL模块来替换当前指定的模块。在资源被更新以后,makeimg将启动RomImage进入第三个编译子阶段。

在第三个子阶段中将链接并且定位所有XIP文件。同时建立ROM文件系统的镜像文件。这个文件系统将最终被整合到Windows CE的统一文件系统中。在Windows CE启动以后,所有/Windows下的文件都是对应ROM文件系统的。RomImage将最终建立NK.BIN镜像文件。这个镜像文件可以是SRE格式或者BIN格式,它们都能被编程器解释后下载到目标机中运行。SRE是基于ASCII Hex的文件格式,在嵌入式系统中被广泛使用;BIN格式文件是微软公司提供的类似于SRE的二进制文件格式。

2.编译中的配置文件解释

1REG文件

Windows CE .NET编译过程中使用的REG文件和其他Windows系统上的几乎一样。主要的区别在于REG version marker从文件头上被删除了,这样做的理由是防止将默认的REG文件直接整合到定制的平台中。因为如果REG version marker,保留的话,双击REG文件的图标将直接把默认的REG文件直接整合到定制的平台中,而不是编辑这个文件。

下面是注册表文件的内容样例,键被用括弧括起来,其下有子键并且已经被赋值,还有数据类型和默认值。

 

; StrataFlash block driver.

 [HKEY_LOCAL_MACHINE/Drivers/BuiltIn/StrataFMD]

   "MemBase"=dword:b8380000      

   "MemLen"=dword:01f80000

; PCMCIA Driver

 [HKEY_LOCAL_MACHINE/Drivers/BuiltIn/PCMCIA]

   "Dll"="PCMCIA.dll"

   "Order"=dword:0

   "IClass"=multi_sz:"{6BEAB08A-8914-42fd-B33F-61968B9AAB32}=PCMCIA Card Services"

 

以上是节选自平台的注册表文件内容。在这段代码中定义了两种设备的驱动信息:FlashPCMCIA设备驱动。

Flash的键下是MemBaseMemLen子键。MemBase代表Flash的物理起始地址8380000MemLen定义了Flash的容量,1f80000也就是32MBPCMCIA驱动中,驱动程序位于PCMCIA.dll的动态链接库中,并且定义了代表该设备的ICLASSGUID

2BIB文件

ROMIMAGE使用Binary Image BuilderBIB)文件来配置ROM文件系统。BIB文件是文本格式的文件,其中使用了不同的关键词来定义不同的section

以关键词MODULES开头的是模块section,其中列出了XIP的可执行文件。

以关键词FILE开头的是其他需要被加入镜像的文件section。这些文件包括bitmapsdata fileHTML pages)。同时也可以描述非XIP的可执行模块。在FILE中罗列的文件,默认是被压缩的,以减少空间占用。

下面是对BIB文件结构的描述:

 

 

是将在ROM文件系统也就是/Windows下将出现的文件名。指在开发环境中这些文件的路径。一般为“NK”。

可以使用表6-2中所列的值。

6-2                                                        flags的值及其说明

flags

   

C

Compressed加密的(文件section默认加密节省空间)

U

Uncompressed未加密(modules section默认)

R

只加密资源

H

把文件隐藏

S

系统文件

 

BIB文件中还有两个section,它们一般出现在Config.bib文件中。它们都是:

memory section,它定义了目标系统的内存分布。它使用如下的格式标记:

 

 

可以使用表6-3中的值:

6-3                                              memory sectionTYPE描述

   

RAM

此项描述可用的RAM区,RAM区用来运行进程和文件系统。这个RAM区必须是连续的。

RAMIMAGE

此项描述的区域将被视作ROM

RESERVED

此项范围内的内存区域是被保留的。这个区域的内存可能被用来当作video frame buffer或者direct memory access(DMA) buffer

6.10  调试仿真(EMULATOR)操作系统镜像

仿真是用与开发工具(Platform Builder)所在的相同PC上,用软件的方式来模拟Windows CE运行,主要用来进行调试。

在使用仿真调试前需要进行设置,在Platform Builder主界面单击Target菜单,选择Configure Remote Connection命令,系统将启动如图6-20所示界面。由于是进行访真调试,所以在“Download:”处选择Emulator,在“Kernel:”处也选择Emulator

6-20  设置远程连接

单击“Download:”下拉框后面的“Configure...”按钮,可以打开设置仿真环境的对话框,这时可以看到缺省的Memory值为48,需要改为64,如图6-21所示。

在这个对话框中,可做如表6-4所示的修改:

6-4                                               设置仿真环境的各项功能说明

Video

设置仿真程序的屏幕分辨率和颜色深度

Memory

仿真程序必须使用的内存量

Ethernet

PC的以太网连接

Serial Ports 1

PC机的哪一个串口来模拟串口一

Serial Ports 2

PC机的哪一个串口来模拟串口二

Parallel Port

使用PC的并行端口

 

那么,为什么要使用仿真程序来进行操作系统镜像的调试呢?

首先是并行开发需要,开发桌面或嵌入式产品的一个关键问题是进入市场的时间。没有仿真,就必须使用硬件参考平台(它可能与最终的硬件配置有很大的差别),或者需要等到硬件开发部门完成参考电路板的开发。而使用仿真开发的话,应用程序开发团队就能与硬件开发并行地开发和测试应用程序。

6-21  设置仿真环境

其次是产品测试需要,使用仿真的另一个好处是能够将操作系统映像交付给客户(或内部测试人员),让他们进行测试。

再次就是对系统进行跟硬件无关的修改时,不需要下载到目标机就可以观察到修改后的结果。

配置完成远程服务后,单击Target菜单,单击Download/Initialize,系统开始运行仿真程序,稍等一下后出现如图6-22所示画面。

6-22  镜像文件下载成功

直接单击图6-22所示“Close”就可以了,过几秒后(根据内核大小及PC硬件性能时间差别较大)屏幕显示仿真界面(如图6-23所示),可以在此对仿真的Windows CE进行各种操作。

6-23  仿真界面

6.11  导出SDK

下面介绍使用Platform Builder来建立这个平台的SDK,这样就可以把这个SDK提供给相应的软件开发组,这样他们就可以使用这个SDK为专门为这个平台开发应用程序。

1)首先停止与目标设备的连接(或是仿真),停止调试工作。

2)单击Platform菜单,选择Configure SDK,启动SDK配置向导程序。

3)首先是欢迎画面,单击“Next”按钮下一步即可。

4)在Product name for MSI installation输入框中输入“MyCEPCTestSDK”,在Manufacturer name输入框中输入制造厂商名字,我们这里输入“Test,单击“Next”按钮。

5一步是让选择这个SDK准备支持的开发语言特性,一共有两个选择,一个是EVC、另一个是.NET,这里选择EVC,然后单击“Next”。

6)单击“done”,退出配置程序,本例中,这时可以到C:/WINCE410/PUBLIC/Kaola/ MakeSdk(具体目录与建工程时的目录有关)下查看,可以看到一个Platform.ini文件。

7)单击Platform菜单,选择Build SDK菜单项,开始生成SDK,需要等待一会儿。

8)等完成所有过程后单击“done”按钮,在C:/WINCE410/PUBLIC/Kaola/SDK目录下的文件就是最后生成的SDK文件,此时就可以将这几个文件提供给应用程序开发人员进行安装了。

6.12  标准SDK简介

Windows CE.NET的标准SDK提供了一组公用子集特性,这个子集使编写的应用程序符合标准SDK,以运行在基于显示的Windows CE.NET平台上。为了保证与标准SDK的兼容,应用程序只能使用标准SDK提供的特性。使用附加的特性会使应用程序与标准SDK不兼容。

为了在Windows CE .NET平台上实现标准SDKWindows CE .NET标准SDK这一特性必须加入到基于显示器的内核镜像中。标准SDK限于用在基于显示器的设备中。当将标准SDK添加到一个操作系统内核镜像时,它会自动将与它相关的特性和依赖的特性一起添加进来。同时它还会添加一个注册表标识到内核镜像中,它标志着内核已经实现了标准SDK。这确保任何利用标准SDK编写的应用程序都能运行在支持标准SDKWindows CE .NET平台上。

下面是标准SDK中所包含的组件:

n     AYG Shell

n     Authentication Services

n     Waveform Audio

n     Windows Internet Services (WinInet)

n     Gradient Fill Support

n     C++ Exception Handling (SEH)

n     Active Template Library (ATL)

n     Windows Networking API/Redirector

n     XML Core Services and Document Object Model

n     Printing

n     URL Moniker Services

n     SOAP Toolkit

n     Message Queuing

n     LDAP Client

n     Object Exchange Protocol

n     Component Services (COM and DCOM)

 

 

你可能感兴趣的:(《Windows CE嵌入式开发入门——基于Xscale架构》 第6章 开发平台(Platform Builder和Embedded Visual C++)简介)