Changes between Version 14 and Version 15 of SampleProgram
- Timestamp:
- Mar 24, 2015, 10:21:27 AM (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SampleProgram
v14 v15 3 3 4 4 == 実行形式とビルド方法 == 5 本プラットフォームのアプリケーションは 2つの形式で実行することができます。5 本プラットフォームのアプリケーションは、2つの方法で実行することができます。 6 6 7 * ダイナミックローダを使って動的にロードされて実行する8 * ダイナミックローダを使わずスタンドアローンで実行する7 * 動的ローディング形式:OSとアプリケーションのバイナリを分け、ダイナミックローディング機能を使って、アプリケーションだけをOS実行中にロードして実行する 8 * スタンドアローン形式:ダイナミックローディング機能を使わず、OSとアプリケーションを1つのバイナリにして単独(スタンドアローン)で実行する 9 9 10 == 動的ローディング形式(ダイナミックロー ダ有り) ==11 動的ローディング形式は ダイナミックローダを使って、SDカードに入れた又はBluetooth等のシリアル通信で受信したアプリケーションのバイナリファイル(ELF形式)をロードして動的に実行する形式です。10 == 動的ローディング形式(ダイナミックローディング機能を利用) == 11 動的ローディング形式は、ダイナミックローディング機能をもつアプリケーションローダ(apploader)を使って、SDカードに入れた又はBluetooth等のシリアル通信で受信したアプリケーションのバイナリファイル(ELF形式)をロードして動的に実行する形式です。 12 12 13 13 この実行形式には、以下の特徴があります。 14 14 15 * EV3をリセットしなくても実行中のアプリケーションを動的に書き換えます 16 * アプリケーションが変更されてもBluetoothを再接続する必要がありません 17 * PCでアプリケーションのバイナリファイルをSDカードに書き込む手間を省略できます 15 __メリット__ 16 17 * EV3をリセットしなくても、OS動作中にアプリケーションを書き換えることができます 18 * PCで、アプリケーションのバイナリファイルをSDカードに書き込む手間を省略できます 19 * アプリケーションを変更しても、Bluetoothを再接続する必要がありません 18 20 * 複数のアプリケーションを1枚のSDカード(/ev3rt/apps/ディレクトリ以下)に入れることができます 19 21 * 高速にコンパイルすることができます 22 * OSとデバイスドライバ等を変更しない限り、再度コンパイルする必要はありません 23 * アプリケーションの開発時には、アプリケーションだけコンパイルすれば良いです 24 25 __注意事項__ 26 20 27 * ローダとアプリケーションのインターフェスバージョン(PIL Version)を一致する必要があります 21 28 * ローダのPIL Versionが更新される場合、アプリケーションの再コンパイルが必要になります … … 27 34 * ミューテックス 最大0個![TODO:] 28 35 29 動的ローディング形式を利用するために、アプリケーションのバイナリファイル(ELF形式)をビルドします。 30 31 以下の手順でそのバイナリファイルを生成できます。 36 動的ローディング形式を利用するためには、以下の手順で、アプリケーションのバイナリファイル(ELF形式)をビルドします。 32 37 33 38 ① プラットフォームのルートディレクトリ(hrp2)に移動します … … 51 56 [[Image(cygwin-mod-gyroboy-ls.png)]] 52 57 53 ダイナミックローダを利用して、以下の手順で生成されたアプリケーションのバイナリファイルをロードすることができます。58 アプリケーションローダを実行して、生成されたアプリケーションのバイナリファイルを以下の手順でEV3にロード&実行することができます。 54 59 55 ⑤ ローダをSDカードに入れていない場合、そのuImageをSDカードのルートフォルダにコピーします60 ⑤ アプリケーションローダがSDカードに入っていない場合には、そのuImageをSDカードのルートフォルダにコピーします 56 61 57 * デフォルトのローダのuImageは「sdcard/uImage」です 62 * デフォルトのアプリケーションローダのuImageは、sdcard/uImage にあります 63 * workspace/apploader を make=app=apploader によってビルドして生成される uImage でも構いません 58 64 59 ⑥ SDカードをEV3に差し込んで、電源を入れて ローダを実行します65 ⑥ SDカードをEV3に差し込んで、電源を入れてアプリケーションローダを実行します 60 66 61 * ローダのGUIメニューが表示されたら起動は成功 しました67 * ローダのGUIメニューが表示されたら起動は成功です 62 68 63 ⑦ ローダのメニューを使って以下の方式でアプリケーションをロードすることができます69 ⑦ アプリケーションローダのメニューでは、アプリケーションのロード方法を選択します。 64 70 65 * SD card:SDカードに入れたアプリケーションをロードします。 アプリケーションのバイナリファイルをSDカードの「/ev3rt/apps」というフォルダに入れる必要があります。66 * Bluetooth:Bluetoothで アプリケーションをロードします。「[wiki:DevEnv#Bluetoothの接続 Bluetoothの接続方法]」を参考してBluetoothを接続する必要があります。67 * Serial port 1:シリアルケーブル でアプリケーションをロードします。71 * SD card:SDカードに入れたアプリケーションをロードします。ロードするアプリケーションのバイナリファイルを、SDカードの「/ev3rt/apps/」以下に格納しておく必要があります。 72 * Bluetooth:Bluetoothで接続されたPCから、アプリケーションをロードします。「[wiki:DevEnv#Bluetoothの接続 Bluetoothの接続方法]」を参考してBluetoothを接続する必要があります。 73 * Serial port 1:シリアルケーブル接続されたPCから、アプリケーションをロードします。 68 74 69 ⑧ BluetoothまたはSerial port 1でロードする場合、ローダのメニューで Bluetooth または Serial port 1 を選択した後、ターミナルのZMODEM転送機能でアプリケーションのバイナリファイルを送信します 75 ⑧ BluetoothまたはSerial port 1でロードする場合、ローダのメニューで Bluetooth または Serial port 1 を選択した後、ターミナルのZMODEM転送機能でアプリケーションのバイナリファイルを送信します。 70 76 71 77 [[Image(pic1.png)]] 72 78 73 ⑨ アプリケーション 実行中、戻るボタンを長押し(0.5秒程度)してアプリケーションを終了できます79 ⑨ アプリケーションを実行中、戻るボタンを長押し(0.5秒程度)してアプリケーションを終了できます。 74 80 75 * アプリケーションを終了すると、ローダのメニューに戻 ります。新しいアプリケーションをロードすることができます81 * アプリケーションを終了すると、ローダのメニューに戻るので、別のアプリケーションをロードすることができます… 76 82 77 83 == スタンドアローン形式(ダイナミックローダ無し) == 78 スタンドアローン形式は開発したアプリケーションと本プラットフォームを一つのEV3のブートローダ(U-Boot)用ブートイメージ(uImage)としてビルドして、SDカードの指定場所に入れて実行する形式です。この実行形式には、以下の特徴があります。 84 スタンドアローン形式は、開発したアプリケーションと本プラットフォームを一つのEV3のブートローダ(U-Boot)用ブートイメージ(uImage)としてビルドして、SDカードの指定場所に入れて実行する形式です。この実行形式には、以下の特徴があります。 85 86 __メリット__ 79 87 80 88 * アプリケーションの最大サイズやカーネルオブジェクトの数の制限はありません 81 * ダイナミックローダに依存せず単独に動作できます 82 * アプリケーションを更新する度に、手間がかかります 89 * ダイナミックローディング機能やアプリケーションローダに依存せず、単独に動作できます 90 91 __注意事項__ 92 93 * アプリケーションを更新する度に、再構築の手間がかかります 83 94 * PCでアプリケーションのブートイメージ(uImage)をSDカードに書き込む操作が必要です 84 * EV3をリセットしてから実行するので Bluetoothの再接続が必要です95 * EV3をリセットしてから実行するので、Bluetoothを使用する場合には、再接続が必要です 85 96 * 同じSDカードにアプリケーションを一つしか入れることができません 86 97 * コンパイル時間は比較的遅いです … … 113 124 [[Image(cygwin-app-gyroboy-ls.png)]] 114 125 115 生成されたuImageをSDカードのルートフォルダにコピーして、そのSDカードをEV3の本体に差し込んでEV3の電源を入れてアプリケーションを実行します。Bluetoothを接続すれば、アプリケーションの出力を見ることができます。 126 生成されたuImageをSDカードのルートフォルダにコピーします。 127 128 SDカードをEV3の本体に差し込んでEV3の電源を入れてアプリケーションを実行します。Bluetoothを接続すれば、アプリケーションの出力を見ることができます。 116 129 117 130 === ===