Main Content

PIL シミュレーションの流れ

プロセッサインザループ (PIL) シミュレーションは、量産ソース コードをクロスコンパイルしてから、ターゲット ハードウェア上にオブジェクト コードをダウンロードして実行します。作成する接続構成に基づいて、ターゲットでのコードのコンパイル方法と実行方法が決まります。次の表に、PIL シミュレーションの一連の段階を示します。

段階説明
1開始

最上位モデルの PIL の場合、Simulink® エディターのツール バーで [プロセッサインザループ (PIL)] モードを選択し、[実行] ボタンをクリックします。

Model ブロックの PIL の場合、Model ブロックの [シミュレーション モード] パラメーターを [プロセッサインザループ (PIL)] に設定し、Model ブロックを含むハーネス モデルのシミュレーションを実行します。

PIL ブロックの場合、PIL ブロックを含むハーネス モデルのシミュレーションを実行します。

2ターゲット接続性の検証PIL のターゲット接続構成の登録状況がソフトウェアで検証されます。登録されていない場合はエラーが発生します。
3量産ソース コードの生成とターゲット用のオブジェクト コードのビルド

生成されるソース コードは、slbuild コマンドを実行したときに生成されるコードと同じです。

  • 最上位モデルの PIL またはブロック パラメーター [コード インターフェイス][最上位モデル] に設定された Model ブロックの PIL の場合、生成コードは slbuild('model') を実行したときに生成されるコードと同じになります。

  • ブロック パラメーター [コード インターフェイス][モデル参照] に設定された Model ブロックの PIL の場合、生成コードは slbuild('model','ModelReferenceCoderTarget') を実行したときに生成されるコードと同じになります。

指定したテンプレート makefile またはツールチェーンを使用して、ターゲット用のオブジェクト コードがソフトウェアでビルドされます。

4PIL API コンポーネントのインスタンスの作成

rtw.connectivity.Config クラスがソフトウェアでインスタンス化され、rtw.connectivity.MakefileBuilderrtw.connectivity.Launcherrtw.pil.RtIOStreamApplicationFramework、および rtw.connectivity.RtIOStreamHostCommunicator のインスタンスが作成されます。

5PIL ファイルの生成

PIL ファイルが生成されて pil フォルダーに格納されます。シミュレーションの終了時に、コード生成レポートを使用してファイルを表示します。

6ターゲット アプリケーションのビルド

ソフトウェアでは次が行われます。

  • rtw.connectivity.MakefileBuilder のインスタンスを使用してターゲット アプリケーションがビルドされます。

  • PIL インターフェイス ファイル xil_interface.c とその他の PIL ファイルがターゲットの実行可能ファイルにコンパイルされます。たとえば、Windows® システムの場合、このファイルは modelName.exe という名前になります。実行可能ファイルを含むオブジェクト コードが pil フォルダーに格納されます。

  • 設定してある場合はコード生成レポートが生成されます。

7ターゲット アプリケーションの起動

rtw.connectivity.Launcher を使用して、ターゲットでアプリケーションが起動されます。

8Simulink エンジンと PIL S-Function の相互作用

Simulink エンジンと PIL S-Function の相互作用は、C S-Function の場合と同じです。

PIL S-Function は、ホスト側から rtIOStream コマンドを通じてターゲットの実行可能コードと通信します。ターゲット側で xil_interface を通じて生成コードが実行されます。

9ターゲット アプリケーションの停止

rtw.connectivity.Launcher を使用して、ターゲットでアプリケーションが停止されます。

10PIL シミュレーションの終了

最上位モデルの PIL の場合、シミュレーションの終了時に、ソフトウェアによって rtw.connectivity.Config インスタンスが破棄されます。

Model ブロックの PIL および PIL ブロックの場合、rtw.connectivity.Config インスタンスはブロックで作成されて所有され、シミュレーションの終了時に破棄されません。次にシミュレーションを実行するときは、別の rtw.connectivity.Config インスタンスを作成せずに再実行できます。インスタンスを破棄する場合は親モデルを閉じます。

参考

| | | |

関連する例

詳細