目次
Palm/CLIEに関して
Network Hotsync とファイアーウォール
無線LANを利用したネットワークホットシンクを利用するには、ホットシンクマネージャの「ネットワーク(N)」にチェックを入れると同時に、パーソナルファイアーウォールの設定を変更して、14238/tcp を通すようにする必要があります。
PalmOS Developer Suite
PalmSourceが配布する、Eclipseベースの開発ツールです。developer登録することで無償で入手できます。
prc-toolsからの移行
基本的には必要なソースとヘッダを、プロジェクトに importするところから始まります。ローカルディスクにただおいてあるだけならそれらを、ローカルのレポジトリに格納してある場合には、cvs経由でそれらを取り出すように、リモートのレポジトリであれば pserver経由で cvsするようにそれぞれ指示します。
リソースに関しては、.rcpから直接変換することは出来ないようで、prc-toolsでビルドして出来た、.prcファイルおから取り込むことで、PalmOS Developer Suiteが求めるXML形式の .xrdファイルが出来上がります。
DAやAppShelfの拡張モジュールを作る
これらのプログラムは、通常のアプリケーションと異なる部分がいくつかあります。その中でも厄介なのはコードリソースに関するものでしょう。
通常のアプリケーションのように作成すると、コードリソースは必ず1にされてしまいますが、DAやAppShelfの拡張モジュールは、コードリソースの1000番を要求します。そして、それは、通常の方法では作ることが出来ません。
コードリソース1000番のコードを生成するには次のようにします。
#include <Standalone.h> STANDALONE_CODE_RESOURCE_TYPESTR_ID("code", 1000);
この二行をソースコードの先頭あたりにおいておくことで、コンパイラがコードリソース1000番になるようにコードを生成してくれます。あとは、リンカとbuild-prcに次のオプションを設定すれば完了です。
PRC-Tools 68K Linker Miscellaneous: -nostartfiles -e ExtWinModEntry ((AppShelf拡張パネルの場合のみ))
PRC-Tools PRC Builder General: --no-check-resources
これらがないと、コードが生成できないですので忘れないように。 また、コードリソース1000にするのをうっかり忘れていると、インストールされているのに、動かないとか、違うプログラムが走ってしまうとかいう妙な症状になりますので気をつける必要があります。
PNO (Pace Native Object)アプリケーションを作る
以前、ARMletと呼ばれていた、ARMネイティブコードを含んだアプリケーションを、CodeWorrierやPalmOS Developer SuitではPNOアプリケーションと呼びます。
PNOアプリケーションを作成するには、プロジェクトの作成で、PNOアプリケーションを選べばいいのですが、標準アプリやProteinアプリと違って、ビルドのためには makefileを直接修正しなければなりません。
makefileのテンプレートは作成されますから、必要に応じてそこに手を入れることになります。 まず、ARMletに相当するコードを、PNO_SOURCESに指定します。
PNO_SOURCES=armlet-sun.c fixed_armlet.c
これは、六曜定義の場合ですが、こんな感じで、ARMletのソースを列記します。これらのソースは、その後ARMletとして扱われ、適切にコンパイルされリンクされます。
ARMletとして作成されるリソースはPNO_RESOURCEに列記します。
PNO_RESOURCES=ARMC0000
そして、個々のリソースに対して、オブジェクト、エントリポイント、エントリポイントを含むオブジェクト、リソースIDを指定します。
ARMC0000 = armlet-sun.o fixed_armlet.o ARMC0000_PNO_ENTRY = PNOMain ARMC0000_MAIN_OBJ = armlet-sun.o ARMC0000_RESOURCE_ID = 0x0000
これらは、必要に応じて複数定義します。先の、DAなどの時と違い、ResourceIDは Standalone.hを利用して指定しません。(arm-palmos-gccを利用している場合には Standalone.hを使うのですが、PalmOS Developer Suitではpaccという独自のコンパイラが使われるので、機能しません。) また、エントリポイントは、事実上 PNOMainに決め打ちだと思っていいでしょう。 (ないと、ビルド時に文句をいわれます。オプションで変更できるはずだが逆らうほどの価値もないのでこれでいいでしょう。)
ビルドするターゲットは、Debug/ReleaseとDevice/Simulatorの組み合わせで指定します。
DEBUG_OR_RELEASE=Release TARGET_PLATFORM=Device
や
DEBUG_OR_RELEASE=Debug TARGET_PLATFORM=Simulator
のように指定します。 startへ戻る。