WinCE BSP工程文件pbcxml分析

WinCE BSP工程文件pbcxml分析

作者:ARM-WinCE

 

 

每一個BSP都有一個工程文件,比如MyBSP.pbcxml,裏面描述了BSP的信息。下面就來介紹一下BSPpbcxml文件。

 

文件的大致格式應該是這樣的:

<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

    MODULEBSP中的各個模塊被編譯後所生成的dll或者exe的名字,比如audio.dll,那麼這裏就應該是audio

    VARIABLEBSP中和某個模塊相關的環境變量。

 

    <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.0Platform目錄下的一些微軟提供的BSPpbcxml文件,大多采用第二種方法,我個人更喜歡第一種方法,簡單。

 

下面也給個例子:

<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

    VARIABLEBSP中和該模塊相關的環境變量。

 

    <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>

 

 

上面對WinCE中的BSP的工程文件pbcxml做了個介紹,相信有點描述語言基礎,瞭解一些WinCE知識的看懂絕對沒有問題了。很多時候,在向BSP中添加驅動或者刪除驅動的時候,我們就可以直接用記事本打開該文件,然後在裏面編輯就可以了,這樣很方便

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章