SophiaFramework UNIVERSE 5.3 |
アプリを実機で動作確認するには、アプリの ClassID に対応したライセンスコードを helloworld.cpp 内の SFCApplet::Boot ブートローダ関数内のコード
*license = "heap://"
に設定する必要があります。
例 2.3. SFCApplet::Boot 関数: ライセンスコード設定前
// ブートローダ
SFCApplet::FactorySPP SFCApplet::Boot(AEECLSID id, SFXAnsiStringPtr license)
{
*license = "heap://";
return (id == AEECLSID_HELLOWORLD) ? (&helloworld::Factory) : (null);
}
例 2.4. SFCApplet::Boot 関数: ライセンスコード設定後
// ブートローダ
SFCApplet::FactorySPP SFCApplet::Boot(AEECLSID id, SFXAnsiStringPtr license)
{
*license = "heap://"
"TIXDRQXNU5WHU8Y3Z9WOHWQR6Z3VPSDHDV5CR1S4XASPWLUHWAS7Z5Z2TGS3XMSAT3UPUQTLTARCYPSF"
"UEJZ6ROSJWGUQSEYKR6V2U4VESMTQLHKZ6X7Y2VKXHWIX3XBU0Z7VHWHXIZBSGT5SPU3XLX0Z1Y4R3TC"
"U6WGT9WHWIVNYHYCUCR9T3SMTEWPRNVAX1Y4VPW2YCY9YQV5R7Z9UIVHT6SDUPU2SIW6VCRCWBR2S4WQ"
"UPYFWCYGT4VIT1WHXGYPTQSFYPWNV3ULRNWFW7RBRFVKUKS2YQSQYHW1TPUPXBZ6UEY2WOYKR7S3TAU4"
"TQS6UHVFVEVLU3R5SDSKW7RPTNTPVQU2T4R8Z4VLUGEW3U98TLDR8/";
return (id == AEECLSID_HELLOWORLD) ? (&helloworld::Factory) : (null);
}
ライセンスコード | |
---|---|
SFCApplet::Boot 関数内の "TIXDRQXNU5WHU8Y3Z9WOHWQR6Z3VPSDHDV5CR1S4XASPWLUHWAS7Z5Z2TGS3XMSAT3UPUQTLTARCYPSF" "UEJZ6ROSJWGUQSEYKR6V2U4VESMTQLHKZ6X7Y2VKXHWIX3XBU0Z7VHWHXIZBSGT5SPU3XLX0Z1Y4R3TC" "U6WGT9WHWIVNYHYCUCR9T3SMTEWPRNVAX1Y4VPW2YCY9YQV5R7Z9UIVHT6SDUPU2SIW6VCRCWBR2S4WQ" "UPYFWCYGT4VIT1WHXGYPTQSFYPWNV3ULRNWFW7RBRFVKUKS2YQSQYHW1TPUPXBZ6UEY2WOYKR7S3TAU4" "TQS6UHVFVEVLU3R5SDSKW7RPTNTPVQU2T4R8Z4VLUGEW3U98TLDR8" は helloworld アプリのライセンスコードです。 ライセンスコードは長いので、上の例にあるように適当な個数に分割し、 それらをダブルクォーテーション( " )で括り、複数行に分けて設定します。 ライセンスコード設定時、最後のスラッシュ( / )は省略しても構いません。 参照: ライセンスコード |
シミュレータでの動作確認 | |
---|---|
アプリをシミュレータで実行する場合、SFCApplet::Boot ブートローダ関数内のコード *license = "heap://" にライセンスコードを設定する必要はありません(この部分は変更不要です)。 |
RVCTB 1.2 使用の場合は、Visual Studio アドインでこれ以降の操作を自動化することができます。
その他の実機開発環境の場合は、各々メイクファイルを作成しビルドを行います。
メイクファイルの書き方については、RVCTB 3.0 用メイクファイル、GNUARM 4.1.1 用メイクファイル、YAGARTO 4.4.2 用メイクファイル を参照してください。
STEP 1. Visual Studio アドインを確認または設定します。
次の 2 つのアドインが Visual Studio ツールバー上に表示されていることを確認します。
これらのアドインが表示されない場合は、Visual C++ のバージョンに応じて以下の処理を行います。
■ Visual C++ 6.0 : [ ツール ]->[ カスタマイズ ] を選択し、 [ アドインおよびマクロ ファイル ]タブにある [ BREWAddins.DSAddIn.1 ] および [ SophiaFramework UNIVERSE Addin ] を選択します。
注意 | |
---|---|
|
SophiaFramework 4.1 Addin の表示について[SophiaFramework UNIVERSE 5.0.3 で解決] | |
---|---|
SophiaFramework UNIVERSE 4.1 をインストールしたことのある PC に SophiaFramework UNIVERSE 5.0 をインストールした場合、 Visual C++ 6.0 用アドインの名前が『SophiaFramework 4.1 Addin』と表示される問題は、 SophiaFramework UNIVERSE 5.0.3 で解決されました。 |
■ Visual C++ .NET2003 : [ ツール ]->[ アドイン マネージャ ] を選択し、[ BREW Addins for Visual Studio 7.1 (NET 2003) ] および [ SophiaFramework Addin ] を選択します。
注意 | |
---|---|
|
■ Visual C++ 2005 : [ ツール ]->[ アドイン マネージャ ] を選択し、[ BREW Addins for Visual Studio 8.0 (NET 2005) ] および [ SophiaFramework Addin ] を選択します。
注意 | |
---|---|
|
STEP 2. メイク ファイルを生成し編集します。
1. ツールバーにある [ ARM MAK ] アイコンをクリックして、メイク ファイル helloworld.mak を生成します。
2. ツールバーにある [ SF MAK ] アイコンをクリックして、メイク ファイル helloworld.mak を更新します。
「プロジェクトが開いていない可能性があります」というエラーが表示される場合 | |
---|---|
ツールバーにある [ SF MAK ] アイコンをクリックして、メイク ファイル helloworld.mak を更新しようとしたときに、 「プロジェクトが開いていない可能性があります」というエラーが表示される場合は、プロジェクト内の .hpp および .cpp ファイルを開けてみてください。 この操作により、メイク ファイル helloworld.mak の更新が可能となります。 |
STEP 3. 実機用実行ファイル helloworld.mod をビルドします。
Visual Studio で [ ツール ] -> [ BREW Application 'Make' ] を選択し、実機用実行ファイル helloworld.mod を生成します。
■ Visual C++ 6.0 の場合
■ Visual C++ .NET 2003 / Visual C++ 2005 の場合
SophiaFramework アドインは RVCTB 3.0 に対応していないためメイクファイルを自作する必要があります。
典型的なメイクファイルのテンプレートはこちらにあります。
メイクファイル内の TARGET 変数、OBJS 変数および依存リストをアプリごとに適宜設定します。
これらの値は BREW アドインから生成された値を流用することができます。
例 2.6. Example/chelloworld アプリの例
# ... (省略) ... TARGET = chelloworld OBJS = chelloworld.o # ... (省略) ... # BREW SDK 4.0.1 用の SophiaFramework ライブラリをリンクする # BREW SDK 3.1.2 用ならここを SophiaFrameworkBrew310JpnRVCTB30.a に変更する LIBS = "$(SF_HOME)\Library\SophiaFrameworkBrew400JpnRVCTB30.a" # ... (省略) ... # -------------------------------------------- # DEPENDENCY LIST, DO NOT EDIT BELOW THIS LINE # -------------------------------------------- chelloworld.o: chelloworld.cpp chelloworld.o: chelloworld.hpp chelloworld.o: chelloworld.bid
例 2.7. Example/chelloworld アプリ (Thumb コードを使用する場合) の例
# ... (省略) ... TARGET = chelloworld OBJS = chelloworld.o # ... (省略) ... # アプリケーションを Thumb でビルドする ARMCPP = "$(ARMBIN)\tcpp" # ... (省略) ... # Thumb ビルドの SophiaFramework ライブラリをリンクする LIBS = "$(SF_HOME)\Library\SophiaFrameworkBrew400JpnRVCTB30Thumb.a" # ... (省略) ... # -------------------------------------------- # DEPENDENCY LIST, DO NOT EDIT BELOW THIS LINE # -------------------------------------------- chelloworld.o: chelloworld.cpp chelloworld.o: chelloworld.hpp chelloworld.o: chelloworld.bid
例 2.8. kddiappli アプリ (KDDI 社提供 BREW 日本拡張パッケージの SophiaFramework ラッパークラスライブラリを使用する場合) の例
# ... (省略) ... TARGET = kddiappli OBJS = kddiappli.o # ... (省略) ... # KDDI 社提供 BREW 日本拡張パッケージの SophiaFramework ラッパークラスライブラリを使用する DYNAPP = -DDYNAMIC_APP -DTARGET_EXTENSION_KDDI # ... (省略) ... LIBS = "$(SF_HOME)\Library\SophiaFrameworkKDDI400JpnRVCTB30.a" "$(SF_HOME)\Library\SophiaFrameworkBrew400JpnRVCTB30.a" # -------------------------------------------- # DEPENDENCY LIST, DO NOT EDIT BELOW THIS LINE # -------------------------------------------- kddiappli.o: kddiappli.cpp
SophiaFramework アドインは GNUARM に対応していないためメイクファイルを自作する必要があります。
典型的なメイクファイルのテンプレートはこちらにあります。
メイクファイル内の TARGET 変数、OBJS 変数および依存リストをアプリごとに適宜設定します。
これらの値は BREW アドインから生成された値を流用することができます。
例 2.9. Example/chelloworld アプリの例
# ... (省略) ... TARGET = chelloworld OBJS = chelloworld.o # ... (省略) ... # BREW SDK 4.0.1 用の SophiaFramework ライブラリをリンクする # BREW SDK 3.1.2 用ならここを -lSophiaFrameworkBrew310JpnGNUARM41 に変更する LIBS = -lSophiaFrameworkBrew400JpnGNUARM41 -lgcc # ... (省略) ... # -------------------------------------------- # DEPENDENCY LIST, DO NOT EDIT BELOW THIS LINE # -------------------------------------------- chelloworld.o: chelloworld.cpp chelloworld.o: chelloworld.hpp chelloworld.o: chelloworld.bid
例 2.10. Example/mathematicsexplainer アプリ (数学関数を使う場合) の例
# ... (省略) ... TARGET = mathematicsexplainer OBJS = mathematicsexplainer.o # ... (省略) ... # YAGARTO 付属の数学関数ライブラリのインクルードパスを追加する LIBDIRS = -L"$(GCC_LIBPATH)\interwork" -L"$(GCC_HOME)\arm-elf\lib\interwork" -L"$(SF_HOME)\Library" # ... (省略) ... # YAGARTO 付属の数学関数ライブラリをリンクする (記述するライブラリの順番を変えてはいけない) LIBS = -lSophiaFrameworkBrew400JpnGNUARM41 -lm -lgcc -lc # ... (省略) ... # -------------------------------------------- # DEPENDENCY LIST, DO NOT EDIT BELOW THIS LINE # -------------------------------------------- mathematicsexplainer.o: mathematicsexplainer.cpp
例 2.11. Example/mathematicsexplainer アプリ (さらに Thumb コードを使用する場合) の例
# ... (省略) ... TARGET = mathematicsexplainer OBJS = mathematicsexplainer.o # ... (省略) ... # アプリケーションを Thumb でビルドする TARG = -mthumb # ... (省略) ... # Thumb 用のインクルードパスを追加する LIBDIRS = -L"$(GCC_LIBPATH)\thumb\interwork" -L"$(GCC_HOME)\arm-elf\lib\thumb\interwork" -L"$(SF_HOME)\Library" # ... (省略) ... # ARM/Thumb インターワーキング用にリンカのオプションを追加する LINK_CMD = -script $(LINKERSCRIPT) --gc-sections --emit-relocs --stub-group-size=2 --pic-veneer -o # Thumb ビルドの SophiaFramework ライブラリをリンクする LIBS = -lSophiaFrameworkBrew400JpnGNUARM41Thumb -lm -lgcc -lc # ... (省略) ... # -------------------------------------------- # DEPENDENCY LIST, DO NOT EDIT BELOW THIS LINE # -------------------------------------------- mathematicsexplainer.o: mathematicsexplainer.cpp
例 2.12. kddiappli アプリ (KDDI 社提供 BREW 日本拡張パッケージの SophiaFramework ラッパークラスライブラリを使用する場合) の例
# ... (省略) ... TARGET = kddiappli OBJS = kddiappli.o # ... (省略) ... # KDDI 社提供 BREW 日本拡張パッケージの SophiaFramework ラッパークラスライブラリを使用する DYNAPP = -DDYNAMIC_APP -DTARGET_EXTENSION_KDDI # ... (省略) ... LIBS = -lSophiaFrameworkKDDI400JpnGNUARM41 -lSophiaFrameworkBrew400JpnGNUARM41 -lgcc # -------------------------------------------- # DEPENDENCY LIST, DO NOT EDIT BELOW THIS LINE # -------------------------------------------- kddiappli.o: kddiappli.cpp
SophiaFramework アドインは YAGARTO に対応していないためメイクファイルを自作する必要があります。
典型的なメイクファイルのテンプレートはこちらにあります。
メイクファイル内の TARGET 変数、OBJS 変数および依存リストをアプリごとに適宜設定します。
これらの値は BREW アドインから生成された値を流用することができます。
例 2.13. Example/chelloworld アプリの例
# ... (省略) ... TARGET = chelloworld OBJS = chelloworld.o # ... (省略) ... # BREW SDK 4.0.1 用の SophiaFramework ライブラリをリンクする # BREW SDK 3.1.2 用ならここを -lSophiaFrameworkBrew310JpnYAGARTO44 に変更する LIBS = -lSophiaFrameworkBrew400JpnYAGARTO44 -lgcc # ... (省略) ... # -------------------------------------------- # DEPENDENCY LIST, DO NOT EDIT BELOW THIS LINE # -------------------------------------------- chelloworld.o: chelloworld.cpp chelloworld.o: chelloworld.hpp chelloworld.o: chelloworld.bid
例 2.14. Example/mathematicsexplainer アプリ (数学関数を使う場合) の例
# ... (省略) ... TARGET = mathematicsexplainer OBJS = mathematicsexplainer.o # ... (省略) ... # YAGARTO 付属の数学関数ライブラリのインクルードパスを追加する LIBDIRS = -L"$(GCC_LIBPATH)\interwork" -L"$(GCC_HOME)\arm-elf\lib\interwork" -L"$(SF_HOME)\Library" # ... (省略) ... # YAGARTO 付属の数学関数ライブラリをリンクする (記述するライブラリの順番を変えてはいけない) LIBS = -lSophiaFrameworkBrew400JpnYAGARTO44 -lm -lgcc -lc # ... (省略) ... # -------------------------------------------- # DEPENDENCY LIST, DO NOT EDIT BELOW THIS LINE # -------------------------------------------- mathematicsexplainer.o: mathematicsexplainer.cpp
例 2.15. Example/mathematicsexplainer アプリ (さらに Thumb コードを使用する場合) の例
# ... (省略) ... TARGET = mathematicsexplainer OBJS = mathematicsexplainer.o # ... (省略) ... # アプリケーションを Thumb でビルドする TARG = -mthumb # ... (省略) ... # Thumb 用のインクルードパスを追加する LIBDIRS = -L"$(GCC_LIBPATH)\thumb\interwork" -L"$(GCC_HOME)\arm-elf\lib\thumb\interwork" -L"$(SF_HOME)\Library" # ... (省略) ... # ARM/Thumb インターワーキング用にリンカのオプションを追加する LINK_CMD = -script $(LINKERSCRIPT) --gc-sections --emit-relocs --stub-group-size=2 --pic-veneer -o # Thumb ビルドの SophiaFramework ライブラリをリンクする LIBS = -lSophiaFrameworkBrew400JpnYAGARTO44Thumb -lm -lgcc -lc # ... (省略) ... # -------------------------------------------- # DEPENDENCY LIST, DO NOT EDIT BELOW THIS LINE # -------------------------------------------- mathematicsexplainer.o: mathematicsexplainer.cpp
例 2.16. kddiappli アプリ (KDDI 社提供 BREW 日本拡張パッケージの SophiaFramework ラッパークラスライブラリを使用する場合) の例
# ... (省略) ... TARGET = kddiappli OBJS = kddiappli.o # ... (省略) ... # KDDI 社提供 BREW 日本拡張パッケージの SophiaFramework ラッパークラスライブラリを使用する DYNAPP = -DDYNAMIC_APP -DTARGET_EXTENSION_KDDI # ... (省略) ... LIBS = -lSophiaFrameworkKDDI400JpnYAGARTO44 -lSophiaFrameworkBrew400JpnYAGARTO44 -lgcc # -------------------------------------------- # DEPENDENCY LIST, DO NOT EDIT BELOW THIS LINE # -------------------------------------------- kddiappli.o: kddiappli.cpp
作成したメイクファイルを "chelloworld.mak" とし、アプリのフォルダを "chelloworld" とすると、
コマンドプロンプトから以下のコマンドを実行します。
cd chelloworld nmake /f chelloworld.mak
実機用実行ファイル chelloworld.mod が生成されれば成功です。
nmake コマンドの実行パス | |
---|---|
nmake コマンドを使用するには Visual Studio C++ に付属の nmake.exe への実行パスが環境変数 PATH に登録されている必要があります。 |
アドインからビルド | |
---|---|
RVCTB 1.2 使用の場合、アドインからビルドすることができます。 |
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |