エクスターナル モード機能の有効化
エクスターナル モードは、パラメーターの調整と信号の監視を有効にしてアルゴリズム コードを検証するために使用されます。このセクションでは、エクスターナル モード機能をターゲットに追加します。
ハードウェアが次の条件に該当する場合は、後述の手順に従ってください。
Linux® または VxWorks® オペレーティング システムを実行している
TCP/IP ソフトウェア スタックが含まれている
イーサネット インターフェイスを介してホスト コンピューターに接続されている
カスタム エクスターナル モードの作成の詳細については、XCP 通信を使用したエクスターナル モード シミュレーションを参照してください。
このエクスターナル モード構成に使用する名前 (例:
'My New External Mode') を指定してaddNewExternalModeを呼び出すことで、ExternalModeオブジェクトextを作成してTargetオブジェクトtgtに追加します。ext = addNewExternalMode(tgt,'My New External mode');ターゲットを保存する前に、MATLAB® ワークスペースから
ExternalModeオブジェクトを削除しないでください。'My New External Mode'という名前のエクスターナル モード構成がターゲットに追加されていることを確認します。show(tgt);
My ARM Cortex A Board Display Name My ARM Cortex A Board My New Deployer 1 My New PIL My Ethernet Interface Linux 1 My New External Mode 0
エクスターナル モード構成
'My New External Mode'がターゲットに追加されています。ただし、0 は、そのエクスターナル モード構成がハードウェア'My ARM Cortex A Board'に使用されていないことを示しています。ExternalModeオブジェクトをHardwareオブジェクトhwおよび'My Ethernet Interface'という名前のその I/O インターフェイスにマッピングします。map(tgt,hw,ext,'My Ethernet Interface');そのエクスターナル モード構成が、ハードウェアおよびその I/O インターフェイスに使用されていることを確認します。
show(tgt);
My ARM Cortex A Board Display Name My ARM Cortex A Board My New Deployer 1 My New PIL My Ethernet Interface Linux 1 My New External Mode My Ethernet Interface
エクスターナル モード構成
'My New External Mode'がハードウェア'My ARM Cortex A Board'に使用されています。これは、その I/O インターフェイス'My Ethernet Interface'がそのハードウェアの対応する位置に表示されていることで示されています。ExternalModeオブジェクトのプロパティを表示します。ext
ext = ExternalMode with properties: Name: 'My New External Mode' SourceFiles: {} PreConnectFcn: '' SetupFcn: '' CloseFcn: ''ご使用のハードウェアに合わせて、必要に応じてプロパティ値を設定します。詳細については、
matlabshared.targetsdk.ExternalModeを参照してください。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'}メモ
$(MATLAB_ROOT)は、MATLAB のルート フォルダーを表すトークンです。このトークンは、コード生成ソフトウェアによって解決されます。Simulink® と生成されたコードの間でエクスターナル モード接続が確立される前に、MATLAB で関数を実行するように指定します。
ExternalModeオブジェクトのPreConnectFcnプロパティを'pause(5);'などに設定します。ext.PreConnectFcn = 'pause(5);'ターゲットを説明する情報をそのフレームワークに保存します。
saveTarget(tgt);
エクスターナル モードが正しく機能することをテストします。
testTarget(tgt,'externalmode');テストが完了すると、結果の概要が表示されます。テストが
PASSEDの場合、次の機能の追加に進むことができます。それ以外の場合、テストがFAILEDまたはINCOMPLETEであれば、テストの概要の下にテスト診断ログへのリンクが表示されます。
エクスターナル モードがハードウェアに登録されていることの確認
testいう名前の空の Simulink モデルを作成します。[アプリ] タブで [ハードウェア ボードで実行] をクリックします。[ハードウェア ボードで実行] ダイアログ ボックスで、[ハードウェア ボード] を登録したハードウェア (たとえば、
'My ARM Cortex A Board') に設定します。[ハードウェア] タブの [ハードウェア設定] をクリックします。
[コンフィギュレーション パラメーター] ダイアログ ボックスで、
[ソルバー]を選択します。[タイプ] リストで
[固定ステップ]を選択します。[ソルバー] リストで[自動]を選択します。[Target Hardware Resources] セクションで、[External mode] グループを選択します。エクスターナル モードのプロパティがハードウェアに対して正しく表示されていることを確認します。

エクスターナル モードの動作の確認
testいう名前の空の Simulink モデルを作成します。[アプリ] タブで [ハードウェア ボードで実行] をクリックします。[ハードウェア ボードで実行] ダイアログ ボックスで、[ハードウェア ボード] を登録したハードウェア (たとえば、
'My ARM Cortex A Board') に設定します。[ハードウェア] タブの [ハードウェア設定] をクリックします。
[コンフィギュレーション パラメーター] ダイアログ ボックスで、
[ソルバー]を選択します。[タイプ] リストで
[固定ステップ]を選択します。[ソルバー] リストで[自動]を選択します。[Sources] ライブラリの Constant ブロックをモデルに追加します。
[Math Operations] ライブラリの Gain ブロックをモデルに追加します。Constant ブロックと Gain ブロックを接続します。
[Sinks] ライブラリの Scope ブロックをモデルに追加します。Scope ブロックと Gain ブロックを接続します。
Scope ブロックを開きます。
[ハードウェア] タブで [監視と調整] をクリックして、エクスターナル モードでシミュレーションを実行します。Scope ブロックの出力が 1 であることを確認します。