[かみやんのたわごとへ戻る]


counter

Palmware開発に挑戦

というわけで、今日は、Palmware開発に挑戦してみよう。Palmwareの開発には、MetroworksのCode WarriarというCコンパイラ(5万円ぐらいでしょうか)と、GCC for PalmOS(もちろんfree)を使う方法があるわけだけど、貧乏性の俺としては、GCCでしょう。GCCでの開発は、まず、環境を整えるのに時間がかかるんだよねぇ。環境を整えるためのドキュメントをたくさん読まなければならないところがつらい。という訳で環境設定のメモ。ちなみに俺はWindowsユーザなのでMacな方。Unixな方には参考にならない。あしからず。

GCCの環境設定メモ

GCC for PalmPilot ver.0.5.0

http://palmpilotfiles.lcs.mit.edu/original/pilot_gcc_win32/からwin32gcc050-1.zip〜win32gcc050-9.zipをダウンロードして、インストールする。こいつは、Install Sheildによるインストーラがついているのでインストールは超簡単。俺は、E:\GnuPilotフォルダへインストールした。
GnuPilot/binにあるbash.exeをC:\binへコピーし、sh.exeとリネームする。
C:\tmpフォルダを作る。
このパッケージには、リソースコンパイラやPalmデバイスのエミュレータが付属しているがバージョンが古くて使い物にならないので別途入手する必要がある。
gccでのコンパイルはこのパッケージに付属するbashというシェルからコンパイルすることになる。あと、emacsというテキストエディタが付属しているのでそれでコーディングしてもよいが、あいにく俺はemacsの設定ファイルをどこにどんなファイル名で書けばいいのか分からなかったので使っていない。俺は、秀丸エディタ&bashでコーディング&コンパイルしている。

PilRC v.2.3a

http://www.scumby.com/scumbysoft/pilot/pilrc/からpilrcというリソースコンパイラをダウンロードしてインストールする。俺は、GnuPilot/binへpilrc.exeとpilrcui.exeをほうり込んだ。pilrcui.exeとはリソースのビューア(ダイアログのデザインなどを表示できる)だ。

POSE 2.1d29

http://palm.3com.com/devzone/pose/pose.htmlからPOSEというPalmOSのエミュレータをダウンロードしてインストールする。俺は、GnuPilot/binへcopilot.exeとリネームして置いた。POSEは、バージョンアップの度にかなり使いやすくなっているので最新版が出たら即入手すべき。ちなみに、copilotというのは、有志が作ったPalmOSエミュレータでPOSEの前身。のちに管理を3Comに移し、POSEと名前を変えた(のだと思う)。なお、POSEを動かすには、PalmデバイスのROMイメージが必要。お手持ちのPalmデバイスから、POSE付属のソフトでROMイメージを吸い出す必要があります。

GdbPlug

http://www.tiac.net/users/thomas/pilot-gdbplug.htmlからgdbplug.zipをダウンロードし、GnuPilot/binへ置く。このGgbPlugというのは、gdbというデバッガとエミュレータを橋渡しする中継ソフトだ。これがないとうまくデバッグできなかったので必要。あと、以下のようなスクリプトを書いておくと便利。

#!/bin/sh
copilot -gdebug :2000 &
gdbplug -enable -port 2000 &
m68k-palmos-coff-gdb $@

おれは、このスクリプトにcopilot-gdbと名づけて、GnuPilot/binへ置いた。使い方は、デバッグオプション付きでコンパイルしたprcファイルをPOSEへインストールして、bashから
copilot-gdb prc名
と打てばデバッグ可能だ。ちなみに、俺はまだほとんど使ったことがない。

HostControl.h

DAのデバッグには、gdbが使えない。そこで、俺は、デバッグのためにPOSEのAPIを使ってログを出力する方法を使っている。POSEには、HostControl.hというPOSE用のAPIのヘッダが付属する。しかし、このヘッダは、Code Warriar用であってgccでは通らない。そこで、ほしさんが開発したHostControl.hのコンバータをhttp://www.sra.co.jp/people/hoshi/palmos/saver-1.0.zipから入手して、HostControl.hをgcc用に変換する。このコンバータはPerlで書かれているので別途Perl for winを入手する必要がある。できあがったHostControl.hは、GnuPilot/m68k-palmos-coff/include/PalmOSにでも置いておく。で、HostControl.hを使って、デバッグ用のライブラリを作った。Trace001.lzhからダウンロードしてくれ。MFCの習慣にならって、TRACEという関数を作った。以下のような感じで使う。

InitTrace() ;
   :

int x ;
x = 10 ;
TRACE( "x = %d\n", x ) ;

これで、POSEと同じフォルダにtrace.txtというファイルに、TRACEの内容が出力される。あとは、trace.txtを表示するスクリプトを組んでおけば、ラクチンだ。

#!/bin/sh
cat ./trace.txt

俺は、これをtraceというファイル名でGnuPilot/binへ置いた。

しめ

というわけで、「作ったPalmwareがこれです」みたいな風に、さくっと公開できればいいんだけれども、間に合いませんでした。環境を整えるのに3日もかかってしまった。普段UNIXは使っていないが、学生時代、大学ではUNIXを使っていたし、gccも使っていたが、それでも結構苦労する。UNIXを全く触ったことがない人は、Code Warriarを買う方が速いかも。


[かみやんのたわごとへ戻る]