MOREソフト開発 SZABを使う

2000/09/17 (最終更新:2005/08/28 15:27)
◎ MOREソフト

「MOREソフト」という言葉は MI Zaurus を使っているとしょっちゅう耳にします。

MI Zaurus 本体にはさまざまなアプリケーションが入っています。 仮にこれを「Zaurusアプリケーション」と呼ぶことにします。

このうち 本体ROMに組み込まれていないもの、あとから追加したり削除できる 「Zaurusアプリケーション」のことを MOREソフト といいます。 あとから追加できるソフトですよっていう意味です。

MOREソフトは自分で作ることもできます。 Zaurus 上で PC の用に自分で好きなアプリケーションを作って 動かすことができます。

◎ 開発にSZABを使う

MOREソフトを作る方法はいくつもあります。 現在は、MOREソフト開発は PC によるクロス開発がメインです。 こちら でも解説していますので参照してください。

一番多く使われている標準的な開発方法は次の通りです。

一般の Windows PC (Windows95/98/NT4/2000) + SZAB (SHARP純正開発キット)

◎ MOREソフトのファイル構成

MOREソフトの実行ファイルは、複数のファイル群で構成されています。 以下の表では、アプリケーション識別子を仮に「MORE」としています。

MORE.APL アプリケーションヘッダファイル。 MOREソフト一覧の取得はこの APL ファイルで行います。
MORE.BIN プログラム本体。 実行ファイルのバイナリイメージはこれです。
MOREFM??.JPN
MOREST??.JPN
MOREDM??.JPN
MOREMN??.JPN
拡張子 JPN はリソースファイルです。 必ずしもこれらのファイルが存在するわけではなく、 不要なりソースは含まれません。
その他 アプリケーション動作に必要なデータファイルやマニュアル、 設定ファイル等があります。

これらのファイルは SZAB 等の開発ツールが自動生成してくれますが、 ファイルが複数あるため取り扱いが非常に不便です。

そこで、配布用に上記のファイル群をまとめたアーカイブフォーマットとして ZAC というものが使われます。 ZAC はファイルを単純に1つのまとめただけですが、 Zaurus のブラウザからダウンロードでき、また MI Zaurus の MOREソフト管理画面で 展開することができます。

SZAB を使うと、MORE ソフトのコンパイルと同時に ZAC ファイルも作られます。

◎ コンパイルしたプログラムを動作確認するために

クロス開発で作成した MOREソフト は、Zaurus 本体に転送して動作確認を行う必要があります。

SZAB のデバッガ機能を使う場合は、 PC と接続するための 周辺機器として CE-170T や CE-155TS 等の シリアルケーブル が必要になります。 クレードルでも構いません。赤外線(IrDA) でのデバッガ起動はできません。

デバッガを使うと、デバッガ上でプログラムイメージの実記への転送と実行が 行えるので、ZAC 転送の手間が省けます。 もちろんソースコードを見ながらのステップ実行も可能です。

デバッガを使わずに、 普通のデータリンクと同じように、ケーブルや IrDA、コンパクトフラッシュなど を使って ZAC ファイルを転送して実行しても構いません。 この場合ケーブルが無くてもなんとかなり、 コミュニケーションパルでも構わないので 特に開発用の機種を選びません。 ただし、この方法は かなり面倒であることを覚悟しておいてください。

なお、いずれの方法をとるにしろ、 事前の Zaurus 本体のデータバックアップだけは忘れないように してください。

◎ SZABのインストール

SZABサポートページ から、お試し版 をダウンロードします。 (2000/09/17現在 SZAB 4.21 試用期限2000/12版)

SZAB パッケージは、統合環境本体である「SZAB」と コンパイラ&デバッガの「Green」の2つで構成されています。 マニュアルセットも忘れずにダウンロードしてください。

お試し版によるライセンス期限が存在するのは「Green」の方だけです。 ( お試し版という名前ですが、MOREソフトの開発には何ら機能的な制限はありません。 SZAB を完全フリーにできないのは、 Green の方にライセンス上の問題があるためではないかと思われます。)

ダウンロードしたパッケージを install します。 これはマニュアル通りで構いません。 お試し版の場合、期限更新などで何度かインストール作業を行うことが 考えられるので、標準フォルダにインストールすることをお勧めします。

最後に SZAB のバージョンアップパッチをすべてあててください。 (2000/09/17現在のアップデート方法) 最初に SZAB 4.30 アップデートキット を使います。 これで最新版の開発ツールになります。 次に SZABバージョンアップ にあるライブラリの更新をすべて行います。

◎ SZABのハードルを越えるために - その1

「プログラミングガイド の第一章と第二章はとばして読むこと」

最初に読むマニュアルは「プログラミングガイド」program.pdf (またはprogram.doc)です。 チュートリアルがなかなかよくできているのでお勧めです。

ただし、最初にいきなり難しい概念が出てきているので とりあえずそこは無視して 第三章から 読み進めてください。

◎ SZABのハードルを越えるために - その2

SZABは、起動直後にプロジェクトを作っただけではビルドが通りません。 以下簡単に手順を説明します。

●新規プロジェクト

メニューの「プロジェクト」から新規作成で アプリケーション識別子を 4文字入力します。 アプリケーション識別子がわからない場合はとりあえず「TUTI1」にします。

アプリケーション名は適当に文字列を設定して構いません。 あとでも変更できます。 開発者名は自分の名前を入れておきましょう。

プロジェクトディレクトリを作って設定したら[OK]クリック

●フォーム作成

この状態で最小限のソースコードが挿入され、プロジェクトができますが、 すぐにビルドしてもエラーになります。 その原因はフォームがないためです。 フォームというのはアプリケーションが載るべきウィンドウのことで、 最低限1つのフォームが必要になります。

メニューの「構成品」から「新規作成」→「フォーム」を選択

フォームの選択画面が出るので「新規」を選びます。 フォームエディタが開きます。

この段階でもまだビルドは通りません。 フォームは何かしらの部品を1つでも配置しておかなければ実体を持たないからです。 ダミーで部品を配置してみます。

フォームエディタの 左端にあるツールバーから「A」を、メニューから「DISPSTRING_RES」を選択します。 リソース選択画面が出ます。 最初に入力したプログラム名が TUT1Str という名前で定義されています。 プログラム名の文字列リソースは必ず作られるのでそれをとりあえず使いましょう。 そのままOKを押します。

画面上にパーツが配置されたので、 いったんフォームエディタを閉じてパーツ情報をセーブします。

ここで必要最小限のプロジェクトができました。 ビルドすれば、コンパイルが通ります。

◎ SZABのオプションは変更しよう

SZAB を起動すると画面上部にツールメニューバーが固定されます。 この辺は好みの問題ですが、 環境によってはかなり使いにくい場合もあるので、設定をカスタマイズしましょう。

筆者はいつも次のように設定を行いますので参考までに書いておきます。

メニューの「設定」から「オプション」を選択。

(1) 「ウィンドウを画面上部に固定する」のチェックを外す

筆者は Windows のタスクバーを画面の上端に配置し、 「常に手前に表示」に しない ので、 SZABのメニューバーが画面の上に固定されると完全にタスクバーが 隠れてしまいます。 そのため必ずこの設定を行っています。

(2) エディタの設定

デフォルトのテキストエディタに、 普段自分が使ってるエディタを設定します。 筆者の場合は vim.exe を登録します。 イメージエディタは空のままです。

筆者が普段 VisualC++ 等の統合環境をほとんど使わないのは、 vi 等の使い慣れたエディタが使えないからというのが 大きな理由です。 SZAB にはエディタが組み込まれていませんが、 逆に普段時分が使っているエディタ(特にvi)が使えるのは非常に 大きなメリットでした。 おかげで SZAB の統合環境は苦もなく使えてしまいます。

(3)「設定」の「ツールバー表示」にあるチェックを全部外す。

筆者はツールバーを使う必要がほとんどないので、 メニューを小さくするため全部チェックを外しています。

開発中の画面はこんなかんじ

◎ デバッガの起動

実際に MOREソフトの ビルドができたら、実機上で走らせてみます。 Zaurus と PC をシリアルケーブルを繋いで Zaurus をデバッグモードにします。

デバッグモードにする方法は機種によって異なりますが、 MI-C1 の場合は MOREソフト管理画面で 「機能」+「スクロールキーの上」を押します。 ここで [デバッガ1] をタッチして、デバッガを起動しておけば OK です。

デバッガが立ち上がっているとオートパワーオフが抑制されるようです。 デバッグ中は Zaurus に AC アダプタを繋いでおくことをお勧めします。 デバッグモードの解除には簡易リセットを使います。

PC と繋いで Zaurus のデバッガを起動したら、 Zaurus をインデックス画面にしておきます。 SZAB のメニューから 「ツール」「デバッガの起動」を実行します。 勝手にバイナリのダウンロードが開始するので、 終わるまで しばらく待ちます。

SZAB はデフォルトではシリアルポートの設定が COM1 になっています。 もしケーブルを COM2 に繋いでいる場合は、あらかじめ設定を 変更しておかなければなりません。 プロジェクトを作ったフォルダに拡張子が .RC のファイルがあるので、 テキストエディタで中を書き換えます。 COM1 のところを COM2 に変更するだけです。

ダウンロードが成功すると実行待ち状態になるのでデバッガの「実行」 ボタンを押します。 これで Zaurus 上で、今ビルドしたばかりの MOREソフトが立ち上がります。

終了するには、Zaurus 側で MOREソフトの停止を行い、 デバッガを終了させてください。 クローズボタンなどアプリケーションの終了手段を設けてない場合は、 MOREソフト管理画面で停止させる必要があります。

◎ トラブル解決

デバッグや開発作業が終わったら?

必ず Zaurus 本体を簡易リセットさせてください。 Zaurus 本体側のデバッガの停止だけでは不十分です。 一度でもデバッグを行うと、 デバッガが転送した MOREソフトが特殊な起動状態に置かれます。

このMOREソフトのバイナリを デバッグモードのまま 本体の MOREソフトインデックスから実行しようとすると 止まってしまうので都合が悪いのです。 一度簡易リセットを行って再起動すれば直ります。

データファイルが読み込めない

デバッガはリソースとプログラムファイルしか転送しないので、 実行に必要なデータファイルなどは 先に Zaurus に転送しておく必要があります。

アプリケーション識別子をあとから変更したい

SZAB をインストールしたディレクトリの Tools の中に、 アプリケーション識別子変更ツール Chappid が入っています。

コンソールアプリを簡単に移植するには?

筆者はコンソールアプリ用のライブラリを自作して使っています。 そのような用途には、 SZAB よりも zxLinux を使った方が簡単かもしれません。

C++ は使えないのでしょうか?せめて「//」コメントが使いたいのですが。

SZAB は Cコンパイラのみで、C++ は使えません。 CodeWarrior for Zaurus で C++ に対応するはずなので、 登場を待ちましょう。 なお、C++ の「//」コメントは今の SZAB でもそのまま使えます。

メニューの「ビルド」「コンパイラ/リンカオプション」で、 コンパイラオプションを「CFLAGS」に切り替えると 「-Xslashcomment」というオプションが付加されているのが確認できます。 このコンパイラオプションがあれば「//」コメントを使うことができます。

アセンブラを使っていないのに、 アセンブラソースコード上のエラーが大量に報告されます

リソース名の間違いで、 シンボル参照のエラーが出ていることが考えられます。 プロパティなど、リソース名が間違っていないか確認してください。

[戻る]
[メニューに戻る] [ZAURUS総合] [DirectX] [Ko-Window] [Win32] [WinCE] [携帯電話] [その他]
フルパワー全開 Hyperでんち

Hiroyuki Ogasawara <ho>