My Photo
無料ブログはココログ
September 2019
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

他のアカウント

お気に入りのもの

  • SONY: SONY PHA-2
  • iCOP: VESAPC eBOX3310 VEPCEB31
  • Windows Embedded CE 6.0組み込みOS構築技法入門 (マイクロソフト公式解説書)

Windows CEは終わったOSなのか?

スマートフォンの世界ではすっかりメジャーになったAndroid。そして根強い人気を誇るiPhone。クールなデザインだけど、残念ながらMicrosoft Windows Phoneは今一パッとしません。そのせいというわけでもないのでしょうが、Microsoftの組み込みOS、Windows Embedded Compact(Windows CE)は、組み込み業界においても何となく旗色が悪い感じです。Linuxで開発を始めて、大変な目に遭っている話を聞く度に、なぜWindows Embeddedを使わないのかなぁっていうのは正直な感想なんですが。

特殊な組み込み業界においても、製品のUIはとても大切で、またミドルウェアのオープン化の流れの中で、Windows Embedded Compactは過去のOSと捕らえる向きもあるようです。確かに用途によってはそういう側面があるのは、私も認めます。しかし、本当にWindows Embedded Comapctは過去のOSとして、このまま忘れ去られようとしてもいいものでしょうか?このブログのメインテーマである、この素敵なOSがそういう目に遭うのはしのびないという事で、もう一度、Windows Embedded Compactについて、その特徴から見直してみることが必要だろうと思うのです。

それをどのように示すべきか、なかなか難しいとは思います。ただ一つ言える事。それはWindows Embedded CompactのOSとしてのアーキテクチャは、MMUを必要とする規模の組み込み製品において、きわめて適切なものだという事。この適切なものという部分は、非常にわかりにくいものの、実は製品を構築していく上ではとても大切なものであるという事は、わかる人にはわかってもらえるとは思います。

という事で、Windows Embedded Compact愛護週間に向けて、初心に戻ったつもりで、ちょっとブログを更新したいと思うのです。

# と予告して、更新したためしは無いだろうという突っ込みは勘弁願います()。

Windows Embedded Compact 7の参考書

Windows Embedded Compact 7の参考書が無くて困ったなぁという方は多いかと思います。残念ながら、日本国内で出版の動きは無いようですが、一応、英語版であれば2冊ほどあります。どちらも日本のAmazon.co.jpから購入は出来ますので、興味が有る方はポチってみてください。Amazonの洋書は内外格差が小さくて好きです。

Pc240787
「Pro Windows Embedded Compact 7 Producing Device Drivers」、「Professional Windows Embedded Compact 7」という2冊です。12/24現在、どちらもAmazonには在庫があるようです。

ET2011でのWindows Embeddedセミナー

毎年の暮れに開催されるEmbedded Technology 2011が、今年も11/16(水)〜11/18(金)の予定でパシフィコ横浜で開催されます。このブログのメインテーマであるWindows CE(というか、いまやWindows Embedded Compactですが)を提供しているマイクロソフトも例年通りブースを出します。私も出展のため、先週から大忙しなんですが、今日はちょっとイベントの宣伝を。

マイクロソフトではWindows Embedded関連の技術情報をさらに知ってもらうため、ET2011と並行してプライベートセミナーを開催します。事前登録制なので、ご興味のある方は早めに登録してください。ちなみに私も1コマ担当させていただいています。どのセミナーかは来てからのお楽しみという事で()。でもまだ資料は作成中なんだな、これが()。

セミナーのテーマは以下の内容です。

11/16(水)
Windows Embeddedでつながろう!~ユーザー事例ご紹介 パート1~

つながるパーソナル・ヘルスケア ~家庭とつなぐ予防医療~

WEC7向けUSBクラスドライバ の実装 – 広がる携帯デバイス連携に向けて –

組み込み機器を IPv6でつなげよう!

11/17(木)

Windows Embeddedでつながろう!~ユーザー事例ご紹介 パート2~

オフショア開発で大事な"日本品質"を"つなぐ"開発手法

WindowsEmbeddedに最適な『つながる』Wi-Fiソリューション

Windows Serverとつなげよう!エンベデッドクライアントの完全活用術

11/16(水)〜11/18(金)

開発キットが当たるHands-On Labを実施!

今年のテーマは「Be Connected 〜つながろう日本〜」ということで、テーマもそれに沿っていますね。

それでは、お待ちしておりますので、ぜひお越しください。

MacOSでリモートデスクトップ

Windows CE関連の技術的な評価をするためには、やはり開発用としてWindowsの環境が必要です。私は自宅の母艦はiMacなのですが、評価用としてThinkPadを使っています。iMac前のスペースにThinkPadを置いて、必要に応じてディスプレイを開いたり閉じたりして使っていたのですが、やはり使うのが面倒なんです。開くとiMacの画面が見えなくなったりして不便でした。最近、iMac用にMicrosoft Office for Mac 2011を導入したところ、これにはWindows PCをリモート説軸するRemote Desktopのクライアントが入っているんですね。今更ですが初めて知りました。さらに調べてみると、Officeに同梱されているだけではなく、Microsoftのホームページからフリーでダウンロード出来るようです。

という事で、Macからリモートデスクトップを使って開発用PCに接続してみました。ジャ〜ン!

Rdponmac

普通にMacのデスクトップ上にリモートデスクトップで開発用PCの画面が出ています。動作はちょっとタルいですが、ゲームをするわけでもなし、処理そのものはホストPCで行うのでこれまた問題なし。これでThinkPadのディスプレイを毎回開いたり閉じたりする必要がないというはとても便利です。

ただ先のスクリーンショットではWindows PCの画面が綺麗に表示されていましたが、最初に接続した時、スクリーンが真っ黒でちょっとびっくりしました。単にMac側でRDPの環境設定を修正すれば済む話なので、これも問題無しです。設定は色々できますが、今回は結構フルオプションで見た目重視です。

Rdpsettings

これで黒いスクリーンで気持ちが落ち込まなくてもいいのは嬉しいですね。


Windows CE 6.0開発入門スタート

昨年の12月に電子書籍リーダーのSONY Readerを購入し、出張時の読書のお供として日々活躍しています。それに触発されたわけでもないのですが、電子書籍のフォーマットであるePub形式でWindows CE関連の技術情報をまとめてみようという壮大なる妄想というか計画を打ち立てました。はっきり言ってePubフォーマットに関する知識は何も無いものの、SigilというePubエディタを見つけ、こちらを使ってとりあえず一つまとめてみようと考えたのです。ちょっと無謀だったかも。

という事で書いてみないと始まらないということで、その突端だけを作成してみました。題して「Windows Embedded CE 6.0開発入門」。本当に最初の部分だけなので、まずはePubの味見というレベルです。SONY Readerではまあまあですが、ゴシック体のフォントがちょっとうるさいかな?という感じです。それからePubでの表示だと、画像サイズは固定みたいで、印刷物のようにピシッとした配置にはならないのが不満です。このあたりをいかに見せるかは今後の課題です。

とは言うものの、中途半端にも満たない状態ですが、さっそく公開しちゃいます。何にも書いていないじゃないか!というお叱りは甘んじてうけます。だって本当にePubで作ってみただけなので(言い訳)。もしよろしければダウンロードしてみて下さい。一応、これから拡充する予定です。

ダウンロードはこちら:「WinCE6.0開発入門.epub」をダウンロード

追記

PCでePubファイルを見るためにはADOBE DIGITAL EDITONSを使用するのがいいでしょう。

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機能」って...

MEDC2007が開催されます

先日の記事ではUSで開催されたMEDC2007について遊んだ話ばかりを書きました。日本ではどうなっているのかというと、6/6(水)に目黒雅叙園で日本版MEDC2007が開催されます。技術的なディスカッションのほか、最新のWindows Mobileデバイスも展示される予定です。

詳細はこちらをご覧ください。私も参加します。

# 今日の記事は短くて普通のブログみたいですね。

Parallels+PB5.0ではダウンロードできない?

Mac+Parallelsが結構使えて喜んでいた私ですが、Pltatform Builder 5.0でビルドしたOSイメージをターゲットデバイスにダウンロードしようとして問題があることに気づきました。これまではセミナーでの使用を中心に考えていたことももあり、エミュレータでの動作の検証ばかりをしていました。久しぶりに実ターゲットでのデバッグをしてみようと思い、まずはPB5.0でビルドしたOSイメージのダウンロードを始めたのですが...

結果、ここまでの検証ではダウンロードはできていません。Connectivity Optionでターゲットのデバイスは見えるのですが、デバイスにAttachしてBootMeを受信するタイミングでダウンロードが終了してしまいます。現在はStatic IPでの接続を試みていて、少なくともParallels Build 3188+WinXP Pro(US)+PB5.0+Static IP+Ethernetクロスケーブルではうまくいっていません。ダウンロードのターゲットデバイス名は見えるので、ネットワークに関してはとりあえずつながっていることは確かです。

実験は時間の関係もあり、それで終了だったのですが、DHCP接続やHub経由といったことでいろいろと試してみます。だめだったらBootCampでWinXPを立ち上げることになりますが、それはそれで面倒なので、できればPrallelsでやりたいですね。

Parallels上でのPB6.0を使用した場合のターゲットデバイスへのダウンロードに関しては未確認です。こちらも試してみることにします。

Platform Buildeのビルド on Parallels

前回のブログでMacBook Pro(Core 2 Duo、2.16GHz)Parallelsの上でもビルドはそれほど時間が掛からないということを書きました。しかし前に測定したiMac(Core 2 Duo、2.16GH)では異常に時間が掛かっていたのも事実です。基本的にMacBook ProとiMacのハードウェアスペックはほぼ一緒で、それで3倍以上もビルド時間が掛かるとはとても信じられません。そこでその原因を考えてみました。結果、答えはいたって簡単なものでした。

実はiMacにはバックアップその他のためにIEEE1394で外付けのHDDが接続されています。実験としてParallelsによる仮想環境をたくさん作るために、実験用Parallels環境は外付けHDDに追い出していたのでした。USB2.0ではなくIEEE1394接続なので、速度的に問題無いという認識程度で、この外付けHDDでPBによる実験を行っていたわけです。実際にはこのHDDの速度差がビルド時間に大きく影響していたということです。

PBは、そのビルドにおいて、非常に時間の掛かる開発環境です。できるだけ速いCPUとたくさんのメモリ、そして速いHDDが必要です。特にこのHDDがポイントで、常にHDDのアクセスをしていることからも、HDDがビルド時間を左右すると言っても過言ではありません。最初の評価ではそこを見落としていたのでした。図らずもHDDの速度がビルド時間を左右することを証明してしまいました。

PB6.0が含まれる仮想イメージを、外付けHDDから内蔵HDDに移動して再度ビルド時間を測定したところ、Enterprise Web Padのビルドで約25分ということで、満足のできる結果となっています。めでたし、めでたし。

【おまけ】
Parallels Build 3188でもPB5.0のエミュレータは動きませんでした。BootCamp1.2βでWinXP ProをインストールしてPB5.0を動かそうとしています。Parallels Build 3188ではBootCamp領域を起動できるので、Parallels上からPB5.0のエミュレータを実行できるかもしれません。ダメだったらBootCampで立ち上げれば良いだけなので、まぁ何とかなるでしょう。

【さらに追記】
BootCampにインストールしたPB5.0も、Parallelsから起動した場合、エミュレータは動きませんでした。考えてみればParallelsは仮想環境のブートイメージとしてBootCampを利用しているだけです。CPUエミュレーションのチェックでPB5.0エミュレータが動かないので、BootCamp領域から起動しても同じチェックで引っかかるわけです。リブートで解決するから良しとしましょう。

Parallelsでも結構いける!

以前、iMac上で仮想化ソフトであるParallels(日本語版)でWinXP Pro SP2(日本語版)を動かして、それ上でPlatform Builder 6.0によるビルドで90分かかったという記事を書きました。実際にsysgenビルドをして90分というのは、あまり実用的な速度ではなかったのは事実です。ところがParallels(英語版)の最新ビルド番号3188で試してみると約25分と、実用上問題のないレベルでビルドできることがわかりました。何が原因かは不明ですが、それなりに使えるというのは朗報です。

  • Apple iMac:Enterprise Web Padビルド → 約90分
    • CPU:インテル Core 2 Duo(2.16GHz)
    • メモリ:2GB
    • HDD:250GB(7200rpm) → 間違いでした
    • HDD:250GB(7200rpm)、IEEE1394接続
    • OS:Windows XP Professional SP2(日本語)
    • Visual Studio、Platform Builder 6.0(英語)
    • Parallelsメモリ:512MB
  • Apple MacBook Pro:Enterprise Web Padビルド → 約25分
    • CPU:インテル Core 2 Duo(2.16GHz)
    • メモリ:2GB
    • HDD:200GB(4200rpm)
    • OS:Windows XP Professional SP2(英語)
    • Visual Studio、Platform Builder 6.0(英語)
    • Parallelsメモリ:512MB

現在、MacBook Pro上で開発環境等を構築しているのですが、これで安心してParallelsをベースとした環境構築ができそうです。これでPB5.0のエミュレータが仮想環境上で動作すれば、言うこと無しなんですが...ちなみにWinXP Pro SP2+VirtualPC2007+WinXP ProでもPB5.0/エミュレータは残念ながら動作しませんでした。PB5.0/エミュレータが動くかどうか未確認なのはParallels Build 3188上になります。こちらは時間を見つけて確認してみます。