メインコンテンツ

エクスターナル モード機能の有効化

エクスターナル モードは、パラメーターの調整と信号の監視を有効にしてアルゴリズム コードを検証するために使用されます。このセクションでは、エクスターナル モード機能をターゲットに追加します。

ここでは、ハードウェアがシリアル通信インターフェイスを介してホスト コンピューターに接続されていると想定します。ハードウェアがイーサネット インターフェイスを介してホスト コンピューターに接続されている場合も、同様の手順が適用されます。それ以外の場合は、カスタム エクスターナル モードの作成が必要な場合があります。カスタム エクスターナル モードの作成の詳細については、TCP/IP またはシリアルのエクスターナル モード通信のためのトランスポート層の作成を参照してください。

  1. このエクスターナル モード構成に使用する名前 (例: 'My New External mode') を指定して addNewExternalMode を呼び出すことで、ExternalMode オブジェクト ext を作成して Target オブジェクト tgt に追加します。

    ext = addNewExternalMode(tgt,'My New External mode');

    ターゲットを保存する前に、MATLAB® ワークスペースから ExternalMode オブジェクト ext を削除しないでください。

  2. エクスターナル モード構成 'My New External mode' がターゲットに追加されていることを確認します。

    show(tgt);
                                   My ARM Cortex M Board
    Display Name                   My ARM Cortex M Board
    My New Deployer                         1
    My Baremetal Scheduler                  1
    My New PIL                      My Serial Interface
    My New External Mode                    0
    

    エクスターナル モード構成 'My New External Mode' がターゲットに追加されていることが出力で示されています。ただし、このエクスターナル モード構成はハードウェア 'My ARM Cortex M Board' には使用されていません。この事実は、そのハードウェアに対応する位置に 0 が表示されることで示されています。

  3. ExternalMode オブジェクト extHardware オブジェクト hw および 'My Serial Interface' という名前のその I/O インターフェイスにマッピングします。

    map(tgt,hw,ext,'My Serial Interface');
  4. エクスターナル モード構成 'My External Mode' が、ハードウェア 'My ARM Cortex M Board' およびその I/O インターフェイス 'My Serial Interface' に使用されていることを確認します。

    show(tgt);
                                     My ARM Cortex M Board
    Display Name                     My ARM Cortex M Board
    My New Deployer                           1
    My Baremetal Scheduler                    1
    My New PIL                        My Serial Interface
    My New External Mode              My Serial Interface
    

    エクスターナル モード構成 'My New External Mode' がハードウェア 'My ARM Cortex M Board' に使用されていることが出力で示されています。この事実は、そのハードウェアに対応する位置に、使用される I/O インターフェイスである 'My Serial Interface' が表示されることで示されています。

  5. ExternalMode オブジェクト ext のプロパティを表示します。

    ext
             ext =
    
            ExternalMode with properties:
    
                    Name: 'My New External Mode'
             SourceFiles: {}
           PreConnectFcn: ''
                SetupFcn: ''
                CloseFcn: ''
    

    ご使用のハードウェアに合わせて、必要に応じてプロパティ値を設定します。詳細については、matlabshared.targetsdk.ExternalMode を参照してください。

  6. ExternalMode オブジェクトの SourceFiles プロパティを設定して、エクスターナル モード機能を使用するモデルをビルドするときに使用されるソース ファイルを指定します。たとえば、シリアル I/O インターフェイスを使用したエクスターナル モードのソース ファイルを設定するには、次のように入力します。

    ext.SourceFiles = {'$(TARGET_ROOT)/src/rtiostream_serial.c', ...
    	'$(MATLAB_ROOT)/rtw/c/src/ext_mode/serial/ext_serial_pkt.c', ...  
    	'$(MATLAB_ROOT)/rtw/c/src/ext_mode/serial/rtiostream_serial_interface.c', ... 
    	'$(MATLAB_ROOT)/rtw/c/src/ext_mode/serial/ext_svr_serial_transport.c'}

    ここで、'$(TARGET_ROOT)/src/rtiostream_serial.c' は、XCP 通信を使用したエクスターナル モード シミュレーションに記載されている指示に従ってホストとターゲット ハードウェアの間のシリアル通信を実装するソース ファイルを表します。他の 3 つのファイルは、シリアル通信インターフェイス用にコード ジェネレーター ソフトウェアで提供されているファイルです。

    メモ

    $(TARGET_ROOT) は、ターゲットのルート フォルダーを表すトークンであり、コード生成ソフトウェアによって解決されます。

    $(MATLAB_ROOT) は、MATLAB のルート フォルダーを表すトークンであり、コード生成ソフトウェアによって解決されます。

  7. Simulink® と生成されたコードの間でエクスターナル モード接続が確立される前に実行される MATLAB 関数を指定します。ExternalMode オブジェクトの PreConnectFcn プロパティを 'pause(5);' などに設定します。

    ext.PreConnectFcn = 'pause(5);'

    同様に、プロパティ SetupFcn および CloseFcn を設定できます。詳細については、ExternalMode を参照してください。

  8. ターゲットを説明する情報をそのフレームワークに保存します。

    saveTarget(tgt);
  9. エクスターナル モードが正しく機能することをテストします。

    testTarget(tgt,'externalmode');

    テストが完了すると、結果の概要が表示されます。テストが PASSED の場合、次の機能の追加に進むことができます。それ以外の場合、テストが FAILED または INCOMPLETE であれば、テストの概要の下にテスト診断ログへのリンクが表示されます。

エクスターナル モードがハードウェアに登録されていることの確認

  1. MATLAB の [ホーム] タブで、[新規]、[Simulink モデル] を選択します。モデルの既定の名前は untitled です。名前を test に変更します。

  2. [アプリ] タブで [ハードウェア ボードで実行] をクリックします。[ハードウェア ボードで実行] ダイアログ ボックスで、[ハードウェア ボード] を登録したハードウェア (たとえば、'My ARM Cortex M Board') に設定します。

  3. [ハードウェア] タブの [ハードウェア設定] をクリックします。

  4. [コンフィギュレーション パラメーター] ダイアログ ボックスで、[ソルバー] を選択します。

  5. [タイプ] リストで [固定ステップ] を選択します。[ソルバー] リストで [自動] を選択します。

  6. [コンフィギュレーション パラメーター] ダイアログ ボックスで [ハードウェア実行] タブを選択します。

  7. [エクスターナル モード] グループを選択します。エクスターナル モードのプロパティがハードウェアに対して正しく表示されていることを確認します。

    The External mode options for your Target Hardware Resources include detailed hardware properties.

エクスターナル モードの動作の確認

  1. MATLAB の [ホーム] タブで、[新規]、[Simulink モデル] を選択します。モデルの既定の名前は untitled です。[ファイル]、[名前を付けて保存] をクリックし、モデルを test として保存します。

  2. [アプリ] タブで [ハードウェア ボードで実行] をクリックします。[ハードウェア ボードで実行] ダイアログ ボックスで、[ハードウェア ボード] を登録したハードウェア (たとえば、'My ARM Cortex M Board') に設定します。

  3. [ハードウェア] タブの [ハードウェア設定] をクリックします。

  4. [コンフィギュレーション パラメーター] ダイアログ ボックスで、[ソルバー] を選択します。

  5. [タイプ] リストで [固定ステップ] を選択します。[ソルバー] リストで [自動] を選択します。

  6. MATLAB の [ホーム] タブで [Simulink ライブラリ] を選択します。Simulink ライブラリで [Sources] を開き、Constant ブロックをモデルに追加します。

  7. Simulink ライブラリで [Math Operations] を開き、Gain ブロックをモデルに追加します。Constant ブロックと Gain ブロックを接続します。

  8. Simulink ライブラリで [Sinks] を開き、Scope ブロックをモデルに追加します。Scope ブロックと Gain ブロックを接続します。

  9. [ハードウェア] タブで [監視と調整] をクリックして、エクスターナル モードでシミュレーションを実行します。Scope ブロックの出力が 1 であることを確認します。