Main Content

コンパイラ最適化レベル コントロールのサポート

この節では、カスタムの組み込みターゲットを設定してコンパイラ最適化レベル コントロールをサポートする方法を説明します。ここで説明する変更を行わない場合、モデル コンフィギュレーション パラメーター [コンパイラ最適化レベル] を使用して、生成コードを作成するためのコンパイラ最適化レベルを制御できません (コンパイラ最適化レベルの制御の詳細については、コンパイラ最適化レベルを参照してください)。

コンパイラ最適化レベル コントロールとカスタム ターゲットについて

コンパイラ最適化レベル コントロールのサポートの要件を以下に示します。

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

コンパイラ最適化レベル コントロール準拠の宣言

ターゲットのコンパイラ最適化レベル準拠を宣言するには、CompOptLevelCompliant フラグを設定するコールバック関数を実装して、システム ターゲット ファイルの rtwgensettings 構造体の SelectCallback フィールドにコールバック関数をインストールしなければなりません。コールバック関数は、システム ターゲット ファイル ブラウザーでターゲットが選択されるたびにトリガーされます。たとえば、次のシステム ターゲット ファイル コードは、custom_select_callback_handler という名前の関数 SelectCallback をインストールします。

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

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

コールバック関数は、次に示すように CompOptLevelCompliant フラグを設定しなければなりません。

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

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

CompOptLevelCompliant ターゲット コンフィギュレーション パラメーターが on に設定されている場合、[コンパイラ最適化レベル] パラメーターが、モデルの [コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成] ペインに表示されます。

ターゲット makefile でのコンパイラ最適化レベル コントロールのサポート

ターゲットでのコンパイラ最適化レベル コントロールのサポートの一部として、ターゲット makefile を変更して、モデル コンフィギュレーション パラメーター [コンパイラ最適化レベル] の設定を有効にしなければなりません。MathWorks から提供されている GRT または ERT ターゲットを変更のモデルとして使用します。

関連するトピック