CodeWarrior講座


第3回 POSEのインストール−その1

 前回まででCodeWarriorのインストールが完了しました。しかし、まだまだプログラミングの解説は始まりません。今回のテーマは「POSEの環境構築」です。

 「POSE」とは「Palm OS Emulator」の頭文字をとったものでWindows、MacOS、UNIX上で動作するPalmのエミュレータです。POSEは非常に完成度が高く、サウンド機能、ネットワーク機能なども含めてPalmと同様の動作をするため、Desktop上でPalmOS用ソフトの開発が可能です。POSEに各種PalmデバイスのROMを組み合わせることで実機がなくても動作確認ができるようになります(図1)。 CodeWarriorのMacintosh版には似たような名前の「Simulator」というものがありますが、全く異なるものですので、ご注意ください。

図1

 POSEを使うメリットとして以下のものが挙げられます。

(1)ROMファイルさえ入手できれば、あらゆる機種上での動作確認が行える。
(2)PCのみでソースコードレベルでのデバッグが可能になる。
(3)特殊なデバッグROMを利用すると、潜在的なバグを事前に見つけることが可能になる。
(4)POSEはデバッグ用にさまざまな機能を持っているため、デバッグが容易になり、ソフトウェアの品質を向上することができる。

 私のようなマニアを除けば、実用のパーム以外に開発専用のパームを持っている人は多くはないでしょう。実用のパームでデバッグを行うことは重要なデータを紛失する可能性がありますので、お勧めできません。安心してソフトウェア開発ができるようにも、まずはPOSEが動作する環境を作りましょう。 POSEを動かすには以下の準備が必要です。

 ・POSEのインストール
 ・ROMファイルの入手

 POSEには大きく2つの種類があります。ひとつはPalm,Inc.が配布するもので、2002年4月末の段階の最新バージョンは3.5です。このバージョンでは2002年4月末の段階で市場に出た全てのPalm(PILOT、PalmPilotを含む)、Visor、WorkPad、TRGPro、HandEra330、SPTシリーズのエミュレーションが可能です(それぞれに対応したROMファイルが必要です)。ただし、Visorのスプリングボード、SPTシリーズのバーコードなど特殊なハードウェア機能は利用できませんので、ご注意ください。
 一方、クリエシリーズのエミュレーションを行うには、ソニーが作成、配布しているPOSEを使う必要があります。こちらの最新バージョンはNR70シリーズをサポートした3.4となっています。
 Palm,Incが配布するPOSEはhttp://www.palmos.com/dev/tools/emulatorから入手することができます。ソニーが配布するものは以前も紹介したクリエデベロッパーサイト(http://www.jp.sonypdadev.com/program/develop_tool/palm_os.html)から入手することができます(後者はサイトでの登録が必要です)。
 これらからパッケージをダウンロードして展開すると図2のようなファイルが入っています。このディレクトリを適切な場所に移動しておきましょう。レジストリなどは利用しないので、どこにおいてもかまいません。DOCSの中には各種ドキュメントが含まれています。英語なのが辛いところですが、ある程度POSEに慣れたところで読んでみるとよいでしょう。

図2

 次に必要なものはROMファイルです。ROMファイルの入手には、現在使っているPalmから取り出す方法と、PalmOSをライセンスする各社からもらう方法があります。
 まず、自分が使っているPalmから取り出す方法です。これにはいくつかの方法があり、ご利用の環境によって使い分ける必要があります。
 最も簡単なのはシリアルクレードルを持っている場合で、POSEが持っているROM Transfer機能を使うことができます。はじめにPOSEのアーカイブ(図2)に入っているROM Transfer.prcをお使いのパームにインストールしておきます。PalmでROM Transferを実行すると図3のような画面になります。次にDesktopでHotSync Managerを停止した後で、Emulatorを実行します。図4の画面が出ますのでDownloadボタンを押します。図5のようなROMダウンロード画面になりますので、通信ポートと通信速度を合わせてBeginボタンを押します。その後パーム側でもBegin Transferボタンを押します。これでROMのダウンロードが開始するはずです(HotSync Managerを止めておかないとシリアルポートが解放されませんので注意してください)。
 また、POSE 3.3ではUSBによるROMの保存機能もサポートしているようです。私は未確認なのですが、必要な方はドキュメントを読んで挑戦してみてください(USB関連のDLLをPalm DesktopからPOSEにコピーするなどの作業が必要なようです)。

図3

図4

図5

 最近の機種ではシリアルクレードルが使えない場合があります。この場合は多少面倒になりますので、ROM Saverというソフトウェアを作りました。VFS Managerを搭載したマシンでは、これによりROMイメージをメモリーカードにコピーすることができます。ROM Saverはこちらからダウンロードしてください。Saverをインストール、起動し(図6)、"Save"ボタンを押すとメモリーカード内の\palmrom.romというファイル名でROMが保存されます。これをPCに移動してください。

図6

 最後に、より汎用性の高い方法としてPalm Debuggerを使う方法を紹介しましょう。ただし、現時点でのPalm Debuggerではシリアルによる接続とVisorのUSBによる接続しかサポートしていませんので、これ以外の機種のUSBクレードルを使うことはできません(CodeWarrior 8に付属するPalm Debuggerは他の機種もUSBで接続可能になっているようですが、未確認です)。
 前準備としてROMのアドレスを調べます。前述のROM Saverをインストール、起動すると画面にROMの開始アドレスとROMの容量が表示されますので、これをメモしておいてください(例:開始アドレス0x10000000、容量0x400000)。
 次にPalm Debuggerを起動します。CodeWarrior R7がインストールされていればCode Warriorディレクトリ内のPalmTOols\PalmOS 4.0 SDK Other Tools\PalmDebugger\の中に格納されています。Palm Debuggerが起動したら、Connectionメニューから利用する通信ポートを選択します。次に、PalmでDebuggerを起動します。PalmでDebuggerを起動するには、ショートカット記号に続き、ピリオド、1と入力します。この作業は間違えやすいので、Debuggerを起動するためのDAであるStart Debugger DAを開発しました。こちらから入手して使ってみてください。
 Palm DebuggerとPalm内のDebuggerの接続が成功すると図7のような画面になります。


図7

 ここでDebuggerと書かれたWindowの中で以下のようにコマンドを入力して下さい。

 save "..\\ROMファイル名" 開始アドレス ROM容量

 先ほどの例のROM(開始アドレス0x10000000、容量0x400000)のROMをpalmrom.romという名前で保存する場合、以下のように入力します。

save "..\\palmrom.rom" 10000000 400000

 こうするとROMの保存が始まり、進行状況が%で表示されます。100%まで行くと完了です(図8)。

図8

のような画面になります。ここでDebuggerと書かれたWindowの中で以下のようにコマンドを入力して下さい。

 save "..\\ROMファイル名" 開始アドレス ROM容量

 先ほどの例のROM(開始アドレス0x10000000、容量0x400000)のROMをpalmrom.romという名前で保存する場合、以下のように入力します。

save "..\\palmrom.rom" 10000000 400000

こうするとROMの保存が始まり、進行状況が%で表示されます。100%まで行くと完了です。

図9

 ちょっと長くなってしまいましたので、PalmOSのライセンス先からもらう方法と実際にPOSEを使う方法については次回説明しましょう。



copyright(C)2002 Hacker Dude-san all rights reserved.