このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
コンパイラ最適化レベル コントロールのサポート
この節では、カスタムの組み込みターゲットを設定してコンパイラ最適化レベル コントロールをサポートする方法を説明します。ここで説明する変更を行わない場合、モデル コンフィギュレーション パラメーター [コンパイラ最適化レベル] を使用して、生成コードを作成するためのコンパイラ最適化レベルを制御できません (コンパイラ最適化レベルの制御の詳細については、コンパイラ最適化レベルを参照してください)。
コンパイラ最適化レベル コントロールとカスタム ターゲットについて
コンパイラ最適化レベル コントロールのサポートの要件を以下に示します。
ターゲットは GRT ターゲットまたは ERT ターゲットから派生しなければなりません。
コンパイラ最適化レベル コントロール準拠の宣言に示すように、システム ターゲット ファイルはコンパイラ最適化レベル コントロール準拠を宣言しなければなりません。
ターゲット makefile でのコンパイラ最適化レベル コントロールのサポートに示すように、ターゲット makefile はモデル コンフィギュレーション パラメーター [コンパイラ最適化レベル] の設定を有効にしなければなりません。
カスタム ターゲットのオプション機能を設定する方法の例については、システム ターゲット ファイルのカスタマイズを参照してください。
コンパイラ最適化レベル コントロール準拠の宣言
ターゲットのコンパイラ最適化レベル準拠を宣言するには、CompOptLevelCompliant
フラグを設定するコールバック関数を実装して、システム ターゲット ファイルの rtwgensettings
構造体の SelectCallback
フィールドにコールバック関数をインストールしなければなりません。コールバック関数は、システム ターゲット ファイル ブラウザーでターゲットが選択されるたびにトリガーされます。たとえば、次のシステム ターゲット ファイル コードは、custom_select_callback_handler
という関数 SelectCallback
をインストールします。
rtwgensettings.SelectCallback = 'custom_select_callback_handler(hDlg,hSrc)';
関数 SelectCallback
への引数 (hDlg
、hSrc
) は、コールバック API 関数によって使用されるプライベート データのハンドルです。これらのハンドルは、システム ターゲット ファイル コールバック関数内での使用に制限され、変更されることなく渡されます。
コールバック関数は、次に示すように CompOptLevelCompliant
フラグを設定しなければなりません。
slConfigUISetVal(hDlg,hSrc,'CompOptLevelCompliant','on'); slConfigUISetEnabled(hDlg,hSrc,'CompOptLevelCompliant',false); hSrc.refreshDialog;
システム ターゲット ファイル コールバック API の詳細については、関数 slConfigUIGetVal
、slConfigUISetEnabled
および slConfigUISetVal
のリファレンス ページを参照してください。
CompOptLevelCompliant
ターゲット コンフィギュレーション パラメーターが on
に設定されている場合、[コンパイラ最適化レベル] パラメーターが、モデルの [コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成] ペインに表示されます。
ターゲット makefile でのコンパイラ最適化レベル コントロールのサポート
ターゲットでのコンパイラ最適化レベル コントロールのサポートの一部として、ターゲット makefile を変更して、モデル コンフィギュレーション パラメーター [コンパイラ最適化レベル] の設定を有効にしなければなりません。MathWorks から提供されている GRT または ERT ターゲットを変更のモデルとして使用します。