WinCE BSP工程文件pbcxml分析

news/2024/7/10 17:08:48 标签: wince, module, audio, 三星, exe, dll

一.pbcxml分析

 

 

 

每一个BSP都有一个工程文件,里面描述了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)/PLATFORM/EP94XX/SRC/DRIVERS/WAV</Title>

         <Path>$(_WINCEROOT)/PLATFORM/EP94XX/SRC/DRIVERS/WAV</Path>

     </SourceCode>

</Item>

 

在向BSP中添加驱动或者删除驱动的时候,可以直接用记事本打开该文件,然后在里面编辑就可以了。

 


http://www.niftyadmin.cn/n/1516672.html

相关文章

NYOJ-452 ShippingCubes【数学】

题目链接&#xff1a;http://acm.nyist.net/JudgeOnline/problem.php?pid452 解题思路&#xff1a; 这道题是topcoder的一次比赛题目&#xff0c;但是数据太水&#xff0c;暴力可过。3层循环无压力。 但是如果是正规做法&#xff0c;应该是先将n开3次方&#xff0c;因为要3…

基于WinCE的嵌入式系统注册表的研究

http://www.51kaifa.com/html/jswz/200806/read-10147.htm 摘要&#xff1a;本文首先讲述了Windows CE注册表的重要性&#xff0c;它对整个嵌入式系统的正常运行起着关键性作用。然后又介绍了两种注册表存储方式&#xff0c;并着重讲述了基于HIVE的注册表。详细阐述了基于HIVE…

我们的未来在哪里?

相对同时刚出校门同学从事其它行业而言优厚的薪水&#xff0c;以及不断学习更新的专业知识不仅仅让你感到生活的充实&#xff0c;更满足了你那不让外人知的虚荣心。在刚出校门的几年中&#xff0c;你经常回头看看被你落在后面的同学们&#xff0c;在内心怜悯他们的同时&#xf…

input 赋值_Python的print(),变量和赋值,input()

什么是print&#xff08;&#xff09;&#xff1f;什么是变量和赋值&#xff1f;什么是input&#xff08;&#xff09;&#xff1f;&#xff08;一&#xff09;print&#xff08;&#xff09;print()函数将括号内的字符串显示在屏幕上。Python 调用 print()函数&#xff0c;并将…

深入剖析windows mobile启动过程

深入剖析windows mobile启动过程 深入剖析windows mobile启动过程转自winbile.net介绍一下mobile系统的启动流程&#xff0c;仅供大家学习之用:硬件平台:TI omap软件平台&#xff1a;WM5.0相关术语&#xff1a;RTOS Real-time Operating SystemEBOOT …

mysql将一个表的数据更新到另一个表_Oracle触发器案例--当一个表更新或插入时将数据同步至某个表中...

概述最近有个业务需求&#xff1a;需要对某些接口表有插入操作时自动同步到另外一张表&#xff0c;这里计划用触发器实现。实现过程比较简单&#xff0c;仅供参考。1、创建表结构create table sap_interface_data_prod_mid as select * from sap_interface_data_prod where 12;…

NYOJ-32 组合数【DFS】

题目链接&#xff1a;http://acm.nyist.net/JudgeOnline/problem.php?pid32 解题思路&#xff1a; 其实就是写一个全排列&#xff0c;原来是用STL的next_permutation写的&#xff0c;昨天看了一下深搜&#xff0c;就用深搜写了下。不过没怎么写过深搜&#xff0c;以后多写吧…

ARM与嵌入式linux入门的建议

由于很多人总问这个问题&#xff0c;所以这里做一个总结文档供大家参考。这里必须先说明&#xff0c;以下的步骤都是针对Linux系统的&#xff0c;并不面向WinCE。也许你会注意到&#xff0c;现在做嵌入式的人中&#xff0c;做linux研究的人远比做WinCE的人多&#xff0c;很多产…