PB6.0のcecファイルがちょっと変?
Platform Builder 6.0からはカタログファイル(cecファイル)がこれまでとその記述方法が変更となっています。カタログファイルは%_TARGETPLATROOT%\Catalogフォルダに含まれる*.pbcxmlファイルとなっています。例えば標準でインストールされるデバイスエミュレータではdeviceemulator.pbcxmlがそのカタログファイルです。
このカタログファイルはBSPの構成を示すものですが、ファイルをダブルクリックしてPB6.0日本語版のカタログエディタでのぞいてみると変な事に気がつきます。下図のように「デバイス ドライ」と「デバイス ドライバ」という形でフォルダが分かれています。
これはcecファイルの記述が変だということはすぐにわかりますが、どう変なのかはよくわかりません。それではPB6.0英語版ではどうかというと、こちらはきちんと「Device Drivers」と表示されます。
実はこのcecファイルは日本語版、英語版とも同じです。USB HostドライバとUSB Functionドライバの記述を抜き出してみます。
<Item Id="Item:MS:usb:DeviceEmulator">
<Title>#MS:Deviceemulator:USBHost(OHCI):Title</Title>
<Description>#MS:Deviceemulator:USBHost(OHCI)Description</Description>
<HelpLink Action="WceHelpCollection">pb.catalogitem.DeviceEmulator:sysgen_usb</HelpLink>
<Type>BspSpecific</Type>
<Module>ohci2.dll</Module>
<Location>#MS:Deviceemulator:DeviceDrivers_USBHost_USBHostControllers:Location</Location>
</Item>
<Item Id="Item:MS:usbfn:DeviceEmulator">
<Title>#MS:Deviceemulator:USBFunction:Title</Title>
<Description>#MS:Deviceemulator:USBFunction:Description</Description>
<HelpLink Action="WceHelpCollection">pb.catalogitem.DeviceEmulator:sysgen_usbfn</HelpLink>
<Type>BspSpecific</Type>
<Module>ms2_usbfn.dll</Module>
<CloneModule>
<Module>ms2_usbfn</Module>
<DepTree>common</DepTree>
</CloneModule>
<Location>#MS:Deviceemulator:DeviceDrivers_U.ctionBusDrivers:Location</Location>
</Item>
実はここで興味深いのは、どうもUSB Hostドライバではなく、USB Functionドライバの記述が間違っているらしいことが挙げられます。すなわちUSB Functionドライバの<Location>での記述が変なのですが、表示はUSB Hostドライバに問題があるように見えます。私の想像では本来は次のようにあるべきだと思うのです。
<Location>#MS:Deviceemulator:DeviceDrivers_USBFunction_USBFunctionBusDrivers:Location</Location>
でもこのカタログエディタではUSB Functionはきちんと表示されてしまうのはとても不思議です。ちなみに上記のようにcecファイルを修正すると、USB Functionドライバも表示が変になります。
そして「デバイスドライバ」サブフォルダを右クリックしてUSBホストドライバを追加していくときちんと表示されるのです。(と思ったのですが、それができたのはPB6.0英語版でした。PB6.0日本語版ではエラーが出てうまくいかないため、直接ソースコードを変更しました。)
そしてこのときのcecファイルの記述は以下の通りです。
<Item Id="Item:既定の製造元:DefaultCatalogItemName">
<Title>USB ホスト(OHCI)</Title>
<Type>BspSpecific</Type>
<Location>デバイス ドライバ\USB ホスト\USB ホスト コントローラ</Location>
</Item>
ここからは推測なのですが、どうもカタログエディタはcecファイルの記述を決め打ちで解釈して、特定の設定だけを見やすい形で表示しているようなのです。そしてPB6.0英語版でも間違えていた記述をそのまま継承し、かつ日本語化で間違ったのだと思います。それだけのようなので、気にしなければそれでいいのですが...
# それにしても「USB機能」って...
« JustSystems xfy Blog Editorを使ってみました | Main | イベント駆動によるデバイスドライバ - その1 »
The comments to this entry are closed.
« JustSystems xfy Blog Editorを使ってみました | Main | イベント駆動によるデバイスドライバ - その1 »
Comments