WinCE配置文件详解之(五)--工程文件pbcxml
WinCE BSP工程文件pbcxml分析
本文详细介绍WinCE BSP工程文件pbcxml分析
每一个BSP 都有一个工程文件,比如MyBSP.pbcxml,里面描述了BSP 的信息。下面就来介绍一下BSP 的pbcxml 文件。
文件的大致格式应该是这样的:
<CatalogFile …>
<FileInformation ….>
….
</FileInformation>
<BSP …>
…
</BSP>
<Item …>
…
</Item>
<Item …>
…
</Item>
<Item …>
…
</Item>
<Item …>
…
</Item>
</CatalogFile>
实际上<CatalogFile>…</CatalogFile>相当于一个入口,在这里面包含的就是WinCE BSP的所有内容了,里面包含几个部分,下面分别介绍每个部分。
1. <FileInformation>…</FileInformation>项:这里面包含了BSP的基本信息,比如BSP的名字,描述,厂家等。下面是一个模板:
<FileInformation Id="FileInformation: VENDOR:CATALOGFILENAME ">
<Title>Title Name</Title>
<Description>BSP Description</Description>
<Vendor>Vendor Name</Vendor>
<OSVersion>WinCE Version</OSVersion>
<FileVersion>File Version</FileVersion>
</FileInformation>
这里不做过多介绍了,一看就应该明白,下面给个实际BSP中的用到该项描述的例子:
<FileInformation Id="FileInformation:Cirrus Logic:EP94xx">
<Title>EP94xx</Title>
<Description>EP94xx BSP Catalog Items</Description>
<Vendor>Cirrus Logic</Vendor>
<OSVersion>6.00</OSVersion>
<FileVersion>1.0.0</FileVersion>
</FileInformation>
2. <BSP>…</BSP>项:该项一般在<FileInformation>项后面,用来描述当前的BSP 中都有哪些组件,或者说有哪些Items。具体模板如下:
<Bsp Id="Bsp: VENDOR: BSPDIR: CPU">
<Title>BSP Title</Title>
<Description>BSP Description</Description>
<PlatformDirectory>Platform Directory</PlatformDirectory>
<CpuId>Cpu:CPU ID</CpuId>
<BspItemId>Item: VENDOR: VARIABLE</BspItemId>
<BspItemId>Item: VENDOR: VARIABLE</BspItemId>
…
</Bsp>
这里需要做一下解释:
VENDOR:厂家名称,比如三星提供的BSP,那么就应该是SAMSUNG。
BSPDIR:指该BSP 在”/Platform”文件夹下的路径。
CPU:指该BSP 所支持的CPU,比如ARMV4I。
MODULE:指BSP中的各个模块被编译后所生成的dll或者exe的名字,比如audio.dll,那么这里就应该是audio。
VARIABLE:指BSP中和某个模块相关的环境变量。
<Title>…</Title>:指BSP 的标题
<Description>…</Description>:指BSP的一些描述
<PlatformDirectory>…</PlatformDirectory>:指该BSP在”/Platform”目录下的路径。
<CpuId>…</CpuId>:指所支持的CPU,比如ARMV4I。
<BspItemId>…</BspItemId>:指BSP 中都包含了哪些模块。
这里要注意的是,<BspItemId>…</BspItemId>有两种表示方法如下:
Method 1:<BspItemId>Item: VENDOR: VARIABLE</BspItemId>
Method 2:<BspItemId>Item: VENDOR: MODULE: BSPDIR</BspItemId>
可以看一下WinCE6.0中Platform 目录下的一些微软提供的BSP的pbcxml 文件,大多采用第二种方法,我个人更喜欢第一种方法,简单。
下面也给个例子:
<Bsp Id="Bsp:Cirrus Logic:EP94xx:ARMV4I">
<Title>EP94xx: ARMV4I</Title>
<Description>Cirrus EP94xx BSP for WinCE 6.0</Description>
<PlatformDirectory>EP94xx</PlatformDirectory>
<CpuId>Cpu:ARMV4I</CpuId>
<BspItemId>Item: Cirrus Logic: bsp_ep94xx_i2s_audio</BspItemId>
<BspItemId>Item: Cirrus Logic: bsp_ep94xx_flash</BspItemId>
<BspItemId>Item: Cirrus Logic: bsp_ep94xx_nandflash</BspItemId>
<BspItemId>Item: Cirrus Logic: bsp_ep94xx_ethernet</BspItemId>
<BspItemId>Item: Cirrus Logic: bsp_ep94xx_serial</BspItemId>
<BspItemId>Item: Cirrus Logic: bsp_ep94xx_usb</BspItemId>
<BspItemId>Item: Cirrus Logic: bsp_ep94xx_touch</BspItemId>
<BspItemId>Item: Cirrus Logic: bsp_ep94xx_rtc</BspItemId>
</Bsp>
3. <Item>…</Item>项:它会在<BSP>项后面,详细描述<BSP>项中的每一个模块,也就是描述BSP 中的每一个驱动的相关信息。模板如下:
<Item Id="Item: VENDOR: VARIABLE">
<Title>Driver Title</Title>
<Description>Driver Description</Description>
<Type>BspSpecific</Type>
<Variable>Variable</Variable>
<Location>Device Drivers</Location>
<SourceCode>
<Title>Source Code Title</Title>
<Path>Source Code Path</Path>
</SourceCode>
</Item>
前面我们提到了<BSP>项中的<BspItemId>…</BspItemId>有两种表示方法,那么实际上和这里的每一个模块的<Item>项是对应的,上面的用哪种方法表示,这里也同样要用相同的方法如下:
Method 1:<Item Id=”Item: VENDOR: VARIABLE”> …… </Item>
Method 2:<Item Id=”Item: VENDOR: MODULE: BSPDIR”> …… </Item>
这里再对一些定义作个解释:
VENDOR:厂家名称,比如三星提供的BSP,那么就应该是SAMSUNG。
CPU:指该BSP 所支持的CPU,比如ARMV4I。
VARIABLE:指BSP中和该模块相关的环境变量。
<Title>…</Title>:该驱动的标题。
<Description>…</Description>:该驱动的描述。
<Type>…</Type>:对于BSP中的Item 来说,这里必须是”BSPSpecific”。
<Variable>…</Variable>:该驱动用到的环境变量,可以不止一个。
<Location>…</Location>:指在PB 中的Catalog Items View 中的位置。
<SourceCode>…</SourceCode>:描述该驱动的源代码。
<Path>…</Path>:指向该驱动的源代码的路径。
<HelpLink>…</HelpLink>:描述一个帮助链接链接到帮助页。
下面举个例子:
<Item Id="Item:Cirrus Logic:bsp_ep94xx_i2s_audio">
<Title>Audio I2S</Title>
<Description>Audio Driver for I2S</Description>
<Type>BspSpecific</Type>
<Variable>BSP_EP94XX_AUDIO</Variable>
<Variable>BSP_EP94XX_I2S_AUDIO</Variable>
<Location>Device Drivers</Location>
<SourceCode>
<Title>$(_WINCEROOT)PLATFORMEP94XXSRCDRIVERSWAV</Title>
<Path>$(_WINCEROOT)PLATFORMEP94XXSRCDRIVERSWAV</Path>
</SourceCode>
</Item>
上面对WinCE中的BSP 的工程文件pbcxml 做了个介绍,相信有点描述语言基础,了解一些WinCE 知识的看懂绝对没有问题了。很多时候,在向BSP 中添加驱动或者删除驱动的时候,我们就可以直接用记事本打开该文件,然后在里面编辑就可以了,这样很方便。