Platform Builder

qemuTOPPERS/JSPとgdbstubの翌日は,Platform Builderとアドエス.私の低容量なTCB*1は,もう破裂寸前.


たぶん数ヶ月以内に燃え尽きるね.「目標に向かってひた走りましょう。」とMSNの星占いが言っていても,間違いないね.

冗談はさておき.


直面した問題は,割とシンプル.守秘とか自社の知財とか省いて簡単に書くと,

  • CypressのPSOCを使ってHIDに見えるデバイスがある.
  • このデバイスをWM6に繋いでデモしたい.やっぱケータイってビジネスの匂いするじゃん? (謎)
  • アドエス(だけでなくWM5/6全般?)のusbhid.dll は,CreateFileはサポートするが ReadFileはサポートしない.DeviceIoControlもサポートしない.
  • バイスを挿すと usbhid.dll が読まれるが,それ以上手も足も出ない.
  • 今日もオレのOK負け see you next fight!

勝つ為には,HIDドライバ書けってことですよ.


WinCEのドライバ書きの間では老舗なページでは,eVC++ でもUSBドライバは書けることになっている.おそらく記述は古くはなっていないのだとおもうのだけれど,HIDデバイスは Platform Builder が無いとダメかも.windev.h やHIDデバイスに必須のいくつかのインクルードが,STANDARD SDKでは足りないっぽい.


ソースコード公開のもので何か転がっていないかなぁと思ってみていたら,幸い,WM6携帯の方々の間では常備品らしい(?) ゲームパッドドライバのソースコードが参考になりそうな感じ.
mouhid.dll や kbdhid.dll も参考にならなくはないのだけれど.


で,Platform Builder.会社的には,臨席の同僚(id:mitsu48)が確か案件をこなしていたはずなのだけれども,彼も別件で…というか,私がオーバーフローしたせいで…死に気味なので,捕まえて個人レッスンというわけにもいかず.


そんなこんなでeVC++とPBのインストール/アンインストールに膨大な待ち時間を費やしたけれど,とりあえず,なんとかなった.まだよく判らないのだけれど,最初にOSのビルドをしておくのが肝で*2,それを乗り越えれば,出来の悪いアプリ開発環境として,batファイルを駆使してインストーラ cab を作れるっぽい…のかな?? 手元に cab があるから,たぶんそういうことなのだろう.


アプリ開発環境*3としてはアレだけれど,カーネルコンフィギュレーション環境としては,ツボが押さえてあるのかな.TOPPERS/JSPTOPPERS/OSEKの前世代的で悲惨なカーネルコンフィギュレーションに慣れていると,ちょっとした安堵感がある.
せめて,これくらいの環境ができないと,使う気にならないよね.国産の Autosar OS の開発が,私が知る限りで数社トライ中なのだけれど,TOPPERSを超えるくらいの完成度はあると期待しちゃおう.

*1:Task Control Block

*2:そうしないと,ロケール周りと思われる問題でプロジェクトのビルドができない

*3:今回はアプリではなくて,device.exeに喰わせるDLL