メインコンテンツ

MATLAB 用の PIL ターゲット接続構成の作成

PIL のターゲット接続構成

ターゲット接続構成とターゲット接続 API を使用して、プロセッサインザループ (PIL) 実行をターゲット環境に合わせてカスタマイズします。

ターゲット接続構成を通じて以下を指定します。

  • ターゲット接続 API 実装のターゲット接続構成名。

  • 互換性がある MATLAB® コードを定義する設定。たとえば、特定のハードウェア実行用に生成されるコードなどです。

PIL 実行には、以下を行うためにサードパーティ製ツールを統合するターゲット接続 PIL API 実装が必要です。

  • ターゲット ハードウェアで実行される PIL アプリケーションをビルドする

  • アプリケーションをターゲットにダウンロードして起動および停止する

  • MATLAB とターゲットの間で通信する

PIL 実行にはさまざまな接続構成を使用できます。rtwTargetInfo.m ファイルを作成して MATLAB 検索パスに配置することで、接続構成を MATLAB に登録します。

PIL 実行で、使用可能な接続構成からどれを使用するかがソフトウェアで判別されます。テスト対象 MATLAB コードと互換性がある接続構成が検索されます。互換性のある接続構成が複数見つかるか、または 1 つも見つからない場合、問題解決に関する情報を含むエラー メッセージが生成されます。

ターゲット接続 API 実装の作成

次の図は、PIL ターゲット接続 API のコンポーネントを示したものです。

Diagram shows components of PIL target connectivity API.

3 つの API コンポーネントの実装を提供する必要があります。

  • ビルド API — 生成コードをビルドするためのツールチェーン アプローチを指定します。

  • ランチャー API — MATLAB での PIL 実行可能ファイルの起動方法と停止方法を制御します。

  • 通信 API — MATLAB と PIL ターゲットの間の接続をカスタマイズします。TCP/IP 通信とシリアル通信用のホスト側のサポートが Embedded Coder® で提供されており、他のプロトコル用に適合させることができます。

ターゲット接続 API 実装を作成する手順の概要を以下に示します。この手順で示しているコード例は、Processor-in-the-Loop Execution from Command Lineで使用される ConnectivityConfig.m ファイルから引用したものです。

  1. rtw.connectivity.Config のサブクラスを作成します。

    ConnectivityConfig < rtw.connectivity.Config

  2. サブクラスで以下を行います。

    • ビルド プロセスを構成する rtw.connectivity.MakefileBuilder をインスタンス化します。

      builder = rtw.connectivity.MakefileBuilder(componentArgs, ...
                      targetApplicationFramework, ...
                      exeExtension);

    • サードパーティ製ツールを使ってアプリケーションをダウンロードして実行する rtw.connectivity.Launcher のサブクラスを作成します。

      launcher = mypil.Launcher(componentArgs, builder);

  3. ホストとターゲットの通信に使用するチャネルの rtiostream API 実装を構成します。

    • ターゲット側では、通信用のドライバー コードを提供する必要があります。たとえば、TCP/IP 通信やシリアル通信のコードです。このコードをビルド プロセスに統合するには、rtw.pil.RtIOStreamApplicationFramework のサブクラスを作成します。

    • ホスト側では、TCP/IP 通信またはシリアル通信用の提供されているライブラリを使用できます。指定のライブラリを読み込んで初期化する rtw.connectivity.RtIOStreamHostCommunicator をインスタンス化します。

      hostCommunicator = rtw.connectivity.RtIOStreamHostCommunicator(...
                              componentArgs, ...
                              launcher, ...
                              rtiostreamLib);

  4. 生成コードの実行時間プロファイリングが必要な場合は、ハードウェア固有のタイマーとそれに関連するソース ファイルの詳細を提供するタイマー オブジェクトを作成します。Specify Hardware Timer for MATLABを参照してください。

  5. 生成コードのスタック使用量プロファイリングが必要な場合は、スタック使用量のデータをターゲット ハードウェアから取得するドライバー実装を指定します。ドライバーはスタック レジスタの値を返さなければなりません。ドライバーが指定されていない場合、既定の汎用ドライバーを使用して PIL シミュレーションが試行されます。Implement Driver to Obtain Stack Usage Data During PIL Executionを参照してください。

ターゲット接続構成の登録

ターゲット接続 API 実装をターゲット接続構成として MATLAB で登録するには、以下を行います。

  1. rtwTargetInfo.m ファイルを作成または更新します。このファイルで以下を行います。

    • ターゲット接続 API 実装の構成名や互換性がある MATLAB コードなどを指定するターゲット接続構成オブジェクトを作成します。

    • registerTargetInfo を呼び出します。

  2. rtwTargetInfo.m を含むフォルダーを検索パスに追加し、MATLAB Coder™ ライブラリ登録情報を更新します。

詳細については、rtw.connectivity.ConfigRegistry を参照してください。

ターゲット接続構成の検証

ターゲット接続構成をアルゴリズム開発やコード生成の早い段階で検証したり、それとは別に独立して検証したりするには、piltest 関数を使用します。この関数を使用して一連のテストを実行できます。この関数は、次のように動作します。

  • MATLAB 関数を実行し、PIL 実行を行う。

  • 結果を比較し、相違を検出した場合にエラーを生成する。

例については、PIL Execution of Code Generated for a Kalman Estimatorを参照してください。

参考

| | | | | |

トピック