Changes between Version 19 and Version 20 of SampleProgram
- Timestamp:
- Mar 2, 2016, 4:30:27 PM (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SampleProgram
v19 v20 3 3 4 4 == 実行形式とビルド方法 == 5 本プラットフォームのアプリケーションは、 2つの方法で実行することができます。5 本プラットフォームのアプリケーションは、以下の2つの方法で実行することができます。 6 6 7 * 動的ローディング形式:OSとアプリケーションの バイナリを分け、ダイナミックローディング機能を使って、アプリケーションだけをOS実行中にロードして実行する8 * スタンドアローン形式:ダイナミックローディング機能を使わず、OSとアプリケーションを1つの バイナリにして単独(スタンドアローン)で実行する7 * 動的ローディング形式:OSとアプリケーションの実行ファイルを分け、OS実行中に、ダイナミックローディング機能を使ってアプリケーションの実行ファイルだけをロードして実行する。 8 * スタンドアローン形式:ダイナミックローディング機能を使わず、OSとアプリケーションを1つの実行ファイルにして単独(スタンドアローン)で実行する。 9 9 10 10 == 動的ローディング形式(ダイナミックローディング機能を利用) == 11 11 === 動的ローディング形式とは? === 12 動的ローディング形式は、ダイナミックローディング機能をもつアプリケーションローダ(apploader)を使って、SDカードに入れた 又はBluetooth等のシリアル通信で受信したアプリケーションのバイナリファイル(ELF形式)をロードして動的に実行する形式です。12 動的ローディング形式は、ダイナミックローディング機能をもつアプリケーションローダ(apploader)を使って、SDカードに入れた、またはBluetooth等のシリアル通信で受信したアプリケーションの実行ファイル(ELF形式)をロードして動的に実行する形式です。 13 13 14 14 この実行形式には、以下の特徴があります。 … … 16 16 __メリット__ 17 17 18 * EV3をリセット しなくても、OS動作中にアプリケーションを書き換えることができます19 * PCで、アプリケーションのバイナリファイルをSDカードに書き込む手間を省略できます20 * アプリケーションを 変更しても、Bluetoothを再接続する必要がありません21 * 複数のアプリケーションを1枚のSDカード(「/ev3rt/apps/」以下)に入れることができます 22 * 高速にコンパイルすることができます 23 * OSとデバイスドライバ等を変更しない限り、 再度コンパイルする必要はありません24 * アプリケーションの開発時には、アプリケーションだけコンパイルすれば良い です18 * EV3をリセットすることなく、OS動作中にアプリケーションを書き換えることができます。 19 * アプリケーションを更新する度に、PCでアプリケーションの実行ファイルをSDカードに書き込む作業を省略できます。 20 * アプリケーションを更新した場合でも、Bluetoothを再接続する必要がありません。 21 * 複数のアプリケーションを1枚のSDカード(「/ev3rt/apps/」以下)に入れることができます。 22 * 高速にコンパイルすることができます。 23 * OSとデバイスドライバ等を変更しない限り、これらを再度コンパイルする必要はありません。 24 * アプリケーションの開発時には、アプリケーションだけコンパイルすれば良いので、コンパイル時間が短縮できます。 25 25 26 26 __注意事項__ 27 27 28 * ローダとアプリケーションのインターフェスバージョン(PIL Version)を一致 する必要があります29 * ローダのPIL Versionが更新される場合、アプリケーションの再コンパイルが必要になります 30 * アプリケーションの最大サイズの制限があります(ローダの設定に依存しますが、デフォルトは1MB) 31 * アプリケーションのカーネルオブジェクトの数の制限があります(ローダの設定に依存、デフォルトは以下) 28 * ローダとアプリケーションのインターフェスバージョン(PIL Version)を一致させる必要があります。 29 * ローダのPIL Versionが更新される場合、アプリケーションの再コンパイルが必要になります。 30 * アプリケーションの最大サイズの制限があります(ローダの設定に依存しますが、デフォルトは1MB)。 31 * アプリケーションのカーネルオブジェクトの数の制限があります(ローダの設定に依存、デフォルトは以下)。 32 32 * タスク 最大32個 33 33 * セマフォ 最大16個 … … 35 35 * ミューテックス 最大0個![TODO:] 36 36 37 === 動的ローディング形式用の バイナリファイル(ELF形式)の生成 ===38 ① EV3RTのルートディレクトリ(hrp2)に移動します 37 === 動的ローディング形式用の実行ファイル(ELF形式)の生成 === 38 ① EV3RTのルートディレクトリ(hrp2)に移動します。 39 39 40 ② ロードしたいアプリケーションのワークスペースに移動します 40 ② ロードしたいアプリケーションのワークスペースに移動します。 41 41 42 * サンプルプログラム(gyroboy)の例:下記のコマンドでデフォルトのワークスペースに移動します 42 * サンプルプログラム(gyroboy)の例:下記のコマンドでデフォルトのワークスペースに移動します。※ EV3RTのβ5-2 以前のバージョンを使っている場合には、[http://dev.toppers.jp/trac_user/ev3pf/wiki/FAQ#QEV3RTのバージョンをβ6に更新したらworkspaceディレクトリがなくなりましたどこに移動されたのでしょうか こちら]を参照してください。 43 43 44 44 {{{ 45 $ cd workspace45 $ cd sdk/workspace 46 46 }}} 47 47 ③ 「make mod=<アプリケーションのフォルダ名>」で、動的ローディング用バイナリ(Module)をビルドします