複数タスクの同時実行のサポート
カスタムの組み込みターゲットがマルチコア プラットフォームにおける複数タスクの同時実行をサポートする必要がある場合は、ターゲットは、ターゲットのコンフィギュレーション オプション ConcurrentExecutionCompliant を設定して同時実行のサポートを宣言しなければなりません。そうしないと、マルチコア ターゲット モデルを同時実行用に設定できなくなります。
ConcurrentExecutionCompliant がまだカスタム ターゲット向けに設定されていない場合は、以下の手順でオプションを設定できます。
以下のコード ディレクトリをシステム ターゲット ファイル (
) に直接含める。mytarget.tlcrtwgensettings.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への引数 (hDlg、hSrc) は、コールバック API 関数によって使用されるプライベート データのハンドルです。これらのハンドルは、システム ターゲット ファイル コールバック関数内での使用に制限され、変更されることなく渡されます。コールバック関数は、次に示すように
ConcurrentExecutionCompliantオプションを設定しなければなりません。slConfigUISetVal(hDlg,hSrc,'ConcurrentExecutionCompliant','on'); slConfigUISetEnabled(hDlg,hSrc,'ConcurrentExecutionCompliant',false); hSrc.getConfigSet.refreshDialog;
システム ターゲット ファイル コールバック API の詳細については、関数
slConfigUIGetVal、slConfigUISetEnabledおよびslConfigUISetValのリファレンス ページを参照してください。
ConcurrentExecutionCompliant ターゲットのコンフィギュレーション オプションを 'on' に設定すると、カスタム ターゲットの選択とマルチコア ターゲット モデルの同時実行の設定を行うことができます。
カスタム ターゲットのオプション機能を設定する方法の例については、システム ターゲット ファイルのカスタマイズを参照してください。