![]() ![]() ![]()
|
SophiaFramework 2.1 |
ここでは、SophiaFramework 2.1 を使用した開発の手順について解説します。
SophiaFramework 2.1 で開発を行うには、 次の開発環境が必要です。
本製品の ARM 用ライブラリは、ARM Developer Suite 1.1 でビルドされています。 RealView Compilation Tools for BREW 用のライブラリが必要な場合は、 弊社までご連絡ください。
SophisFramework の開発をはじめる前に、 Visual C++ の環境設定を行う必要があります。 この環境設定は一度だけ行えばよいです。
SophiaFramework パッケージの配置.
SophiaFramework のパッケージをファイルシステム上に配置します。 ここでは C:\SophiaFramework に配置することにします。
インクルード ディレクトリの設定.
Visual C++ を起動し、 メニューの [ツール]-[オプション] から [オプション] ダイアログを表示し、その [ディレクトリ] タブを選択します。 [表示するディレクトリ] コンボボックスから [インクルード ファイル] を選択し、 [ディレクトリ] に SophiaFramework のインクルード ディレクトリを設定します。 ここでは C:\SophiaFramework\Include としています。

ライブラリ ディレクトリの設定.
同じく Visual C++ の [オプション] ダイアログを表示し、 その [ディレクトリ] タブを選択します。 [表示するディレクトリ] コンボボックスから [ライブラリ ファイル] を選択し、 [ディレクトリ] に SophiaFramework のライブラリ ファイルが存在するディレクトリを設定します。 ここでは C:\SophiaFramework\Lib としています。

SophiaFramework アプリケーションは、 BREW Application Wizard を使用して雛形を作成することができます。 ここでは MyApp という名前のプロジェクトを作成します。
BREW Application Wizard の起動.
Visual C++ を起動し、メニューの [ファイル]-[新規作成] を選択します。 [プロジェクト] タブから [BREW Application Wizard] を選択し、 [プロジェクト名] を入力して BREW プロジェクトを作成します。
BREW Application Wizard の詳細については BREW SDK のドキュメントを参照してください。 必要に応じて MIF Editor を起動し、BID の作成、 MIF ファイルの設定を行います。
不要なファイルの削除.
BREW Application Wizard は、 プロジェクトに AEEAppGen.c AEEModGen.c MyApp.c というファイルを追加します。 SophiaFramework アプリケーションではこの 3 つのファイルは不要ですので、 プロジェクトから削除してください。
ライブラリの設定.
メニューの [プロジェクト]-[設定] を選択し、 [プロジェクトの設定] ダイアログの [リンク] タブで、 [オブジェクト/ライブラリ モジュール] ボックスに、 SophiaFramework.lib と入力します。

アプリケーション クラスの実装.
SophiaFramework のアプリケーション クラスを実装します。 MyApp.cpp というソースファイルを作成し、 下記のようなコードを記述します。
//
// MyApp.cpp
//
#include <SophiaFramework.hpp>
#include "MyApp.bid"
class MyApp : public SFRApplication
{
public:
static SFCInvokerPtr Constructor() { return new MyApp; }
private:
MyApp (Void) { return; }
virtual ~MyApp(Void) { return; }
};
SFCInvokerSPP SFCApplet::Boot(AEECLSID id)
{
if (id == AEECLSID_MYAPP) {
return MyApp::Constructor;
}
else {
return NULL;
}
}
ビルド.
プロジェクトをビルドします。 ここで次のようなリンカ警告が出る場合がありますが、 この警告は無視して構いません。
LINK : warning LNK4098: defaultlib "LIBCD" は他のライブラリの使用と競合しています
エミュレータの起動.
ビルドで作成された MyApp.dll と MyApp.mif を エミュレータのアプレット ディレクトリに格納して エミュレータを起動します。 MyApp アプレットを選択して起動し、 真っ白な画面が表示されればビルドは成功です。 何も動作していないように見えますが、 実際には SophiaFramework アプリケーションが動作しています。
ここでは実機用の開発について説明します。 RealView Compilation Tools for BREW がインストールされていることを前提とします。
Visual C++ のメニューから [ツール]-[カスタマイズ] を選択し、 [カスタマイズ] ダイアログの [アドインおよびマクロ ファイル] タブを表示し、 [ARMMakeBREWApp.DSAddIn.1] にチェックを入れます。
これにより、ARM コンパイラ用のメイクファイルを生成するボタンを乗せた ツールバーが現れます。
メイクファイルのエクスポート.
Visual C++ BREW アドインのツールバーから、 [GenerateARMMakefile] ボタンを押します。 これによりプロジェクト ディレクトリに MyApp.mak ファイルが生成されます。
メイクファイルの編集.
メイクファイルに SophiaFramework 用の設定を追加する必要があります。 MyApp.mak ファイルをテキストエディタで開き、 APP_INCLUDES 変数にインクルード パスを追加します。
APP_INCLUDES = -I "$(BREWDIR)\inc" -I "C:\SophiaFramework\Include"
また、APP_OBJS 変数に ARM 用のライブラリを追加します。
APP_OBJS = $(OBJS) "C:\SophiaFramework\Lib\SophiaFramework.a"
最後に、リンカ オプションから -rwpi オプションを削除します。 このオプションをつけているとリンクに失敗することがあるため、 削除しておくことを推奨します。
#LFLAGS = $(ROPILINK) -rwpi LFLAGS = $(ROPILINK)
この他に --no_inlinemax コンパイラ オプションを指定することを推奨します。 ARM コンパイラによってはインライン展開の基準が厳しすぎるために、 標準のコンパイル オプションでは十分なインライン展開が行われず、 速度が遅くなることがあります。 --no_inlinemax オプションを指定することにより、 inline 指定された関数が最大限に展開されるようになります。
#OPT = -Ospace -O2 # Full compiler optimization for space OPT = -Ospace -O2 --no_inlinemax
メイクの実行.
Visual C++ のメニューから [ツール]-[BREW ARM Make] を選択します。 これにより、MyApp.mak ファイルに基づいてメイクが実行されます。 プロジェクトのディレクトリに .mod ファイルが生成されていればメイクは成功です。 メイク時にエラーがあれば、Visual C++ のアウトプット ウィンドウに表示されますので、 エラーを確認してください。
デフォルトでは、SophiaFramework は BREW SDK 2.1 とともに使用することを前提としていますが、 BREW SDK 2.0 とともに使用することもできます。 そのためには、#define 指令で SFMBREWVERION マクロを定義し、 その値を 210 としてください。
#define SFMBREWVERSION 210 #include <SophiaFramework.hpp>
コンパイラ オプションに -DSFMBREVERSION=210 を指定する方法でも構いません。
| Copyright(C) 2003 Sophia Cradle Inc., All Rights Reserved. |
![]() ![]() ![]()
|