Main Content

複数タスクの同時実行のサポート

カスタムの組み込みターゲットがマルチコア プラットフォームにおける複数タスクの同時実行をサポートする必要がある場合は、ターゲットは、ターゲットのコンフィギュレーション オプション ConcurrentExecutionCompliant を設定して同時実行のサポートを宣言しなければなりません。そうしないと、マルチコア ターゲット モデルを同時実行用に設定できなくなります。

ConcurrentExecutionCompliant がまだカスタム ターゲット向けに設定されていない場合は、以下の手順でオプションを設定できます。

  • 以下のコード ディレクトリをシステム ターゲット ファイル (mytarget.tlc) に直接含める。

    rtwgensettings.SelectCallback = 'slConfigUISetVal(hDlg,hSrc,...
         ''ConcurrentExecutionCompliant'',''on'');';
    rtwgensettings.ActivateCallback = 'slConfigUISetVal(hDlg,hSrc,...
         ''ConcurrentExecutionCompliant'',''on'');';
  • ConcurrentExecutionCompliant オプションを設定するコールバック関数を実装して、システム ターゲット ファイルの rtwgensettings 構造体の SelectCallback フィールドにコールバック関数をインストールする。コールバック関数は、システム ターゲット ファイル ブラウザーでターゲットが選択されるたびにトリガーされます。たとえば、次のシステム ターゲット ファイル コードは、custom_select_callback_handler という名前の関数 SelectCallback をインストールします。

    rtwgensettings.SelectCallback = 'custom_select_callback_handler(hDlg,hSrc)';

    関数 SelectCallback への引数 (hDlghSrc) は、コールバック API 関数によって使用されるプライベート データのハンドルです。これらのハンドルは、システム ターゲット ファイル コールバック関数内での使用に制限され、変更されることなく渡されます。

    コールバック関数は、次に示すように ConcurrentExecutionCompliant オプションを設定しなければなりません。

    slConfigUISetVal(hDlg,hSrc,'ConcurrentExecutionCompliant','on');
    slConfigUISetEnabled(hDlg,hSrc,'ConcurrentExecutionCompliant',false);
    hSrc.getConfigSet.refreshDialog;

    システム ターゲット ファイル コールバック API の詳細については、関数 slConfigUIGetValslConfigUISetEnabled および slConfigUISetVal のリファレンス ページを参照してください。

ConcurrentExecutionCompliant ターゲットのコンフィギュレーション オプションを 'on' に設定すると、カスタム ターゲットの選択とマルチコア ターゲット モデルの同時実行の設定を行うことができます。

カスタム ターゲットのオプション機能を設定する方法の例については、システム ターゲット ファイルのカスタマイズを参照してください。

関連するトピック