Main Content

TLC による生成コードの構成

Target Language Compiler (TLC) を使用して、生成コードを微調整することができます。TLC は [コンフィギュレーション パラメーター] ダイアログ ボックスの上の [コード生成] ペインにあるパラメーター以外に、拡張されたコード生成変数とオプションもサポートします。この節で説明するように、TLC 変数とオプションを設定する方法が 2 つあります。

メモ

それを行う機能がありますが、フォルダー matlabroot/rtw/c/tlc 内の TLC ファイルをカスタマイズしないでください。このような TLC のカスタマイズはコード生成プロセス中に適用されない可能性があります。このようなカスタマイズは、予期しない結果になる可能性があります。

Target Language Compiler 変数の割り当て

以下に示すように、%assign ステートメントを使用して、値を TLC 変数に割り当てることができます。

%assign MaxStackSize = 4096

また、これは "パラメーター名/パラメーター値の組み合わせ" を作成することでも知られています。

%assign ステートメントについては、Target Language Compiler Directivesを参照してください。%assign ステートメントを、システム ターゲット ファイルの Configure RTW code generation settings セクションに記述します。

下の表に、%assign ステートメントで設定することができるコード生成変数を示します。

Target Language Compiler のオプションの変数

変数

説明

MaxStackSize=N

[ローカルなブロックの出力を有効にする] チェック ボックスを選択すると、モデル内のブロック出力が宣言するローカル変数の割り当てサイズ全体は MaxStackSize (バイト) を超えることができません。MaxStackSize は、正の整数です。ローカルなブロック出力変数の総サイズがこの限度を超えると、残りのブロック出力変数はローカルではなくグローバルなメモリ内に割り当てられます。MaxStackSize 用の既定値は rtInf です。これは無制限のスタック サイズです。

メモ:ローカルなブロック出力以外のソース (たとえば、Stateflow® ダイアグラムや MATLAB Function ブロック) からの生成コード内のローカル変数と、関数呼び出しとコンテキスト スイッチなどのソースからのスタック使用量は MaxStackSize 計算に含めません。実行可能プログラム全体のスタック使用量メトリクスの場合は、オブジェクト コードによるランタイム (経験的) 解析または静的 (コード パス) 解析を使用して、ターゲット固有の測定をします。

MaxStackVariableSize=N

[ローカルなブロックの出力を有効にする] チェック ボックスをオンにすると、コード内で宣言されるローカルなブロック出力変数のサイズが N バイトに制限されます (N>0)。サイズが MaxStackVariableSize を超える変数はローカルではなくグローバルなメモリ内で割り当てられます。既定の設定は 4096 です。

RemoveFixptWordSizeChecks=value

固定小数点データ型を使用するモデルの場合は、固定小数点ワード サイズ チェックを実行するプリプロセッサ命令の生成を制御します。value に応じて、次のようになります。

  • 0 の場合、プリプロセッサ命令を生成します。生成されたコードには、固定小数点ワード サイズ チェックが含まれます。

  • 1 の場合、プリプロセッサ命令の生成を抑制します。生成されたコードには固定小数点ワード サイズ チェックは含まれません。

次のコマンドを実行してプリプロセッサ命令の生成を抑制することもできます。

set_param(gcs, 'TLCOptions', ...
          '-aRemoveFixptWordSizeChecks=1')

固定小数点ワード サイズ チェックを含まないコードを生成する場合は、ターゲット ハードウェアへの参照を使用して [ハードウェア実行] 設定をチェックするプロセッサインザループ (PIL) シミュレーションを使用できます。詳細については、Verification of Code Generation Assumptions (Embedded Coder)を参照してください。

WarnNonSaturatedBlocks=value

オーバーフロー警告の表示を制御するためのフラグ。ブロックに含まれる飽和機能が、ダイアログ ボックス内でオフにされている (選択解除された)。オプションは次のとおりです。

  • 0 — 警告は表示されません。

  • 1 ― コード生成中にモデル用に 1 つの警告を表示します

  • 2 ― 違反ブロックのリストを含む 1 つの警告を表示します

Target Language Compiler オプションの設定

関数 set_param の呼び出しで、モデル パラメーターの TLCOptions を使用してコードを生成するために、TLC コマンド ライン オプションを指定できます。これらのオプションの詳細については、コード生成の TLC の指定およびConfigure TLCを参照してください。

関連するトピック