Main Content

最上位モデル コードの再生成の制御

モデルをリビルドするとき、既定の設定では、ビルド プロセスはモデルまたは関連する設定の変更によって、最上位モデルのコードの再生成が必要かどうかを判断するために、チェックを実行します。次のいずれかの条件に該当する場合、モデル ビルドは最上位モデル コードを再生成します。

  • モデルの構造的なチェックサムが変更された。

  • 最上位モデル限定のチェックサムが変更された。最上位モデル限定のチェックサムは、アプリケーションのライフスパン、最大スタック サイズ、make コマンド、詳細レベルと .rtw ファイルのデバッグ設定および TLCOptions など、最上位モデルのパラメーターに関する情報を提供します。

  • 次の TLC デバッグのコンフィギュレーション パラメーターのいずれかが選択されます。

    • [コード生成時に TLC デバッガーを実行] (TLCDebug)

    • [コード生成時に TLC カバレッジを実行] (TLCCoverage)

    • [TLC アサーションを有効にする] (TLCAssert)

    • [TLC プロファイル] (ProfileTLC)

最上位モデル コードが再生成されたかどうかに関わりなく、ビルド プロセスはビルド プロセス フックを呼び出し、makefile を再実行します。フックには関数 STF_make_rtw_hook とコード生成後のコマンドが含まれます。このプロセスは外部依存関係を再コンパイルおよびリンクします。

システム ターゲット ファイルの作成者は、ビルド プロセスによって呼び出される関数 STF_make_rtw_hook の内部で、コードの再生成に関連する処理を実行できます。これらの処理には、コードの再生成の強制や再生成に対する反応が含まれます。詳細については、STF_make_rtw_hook.m を使用したコード再生成の制御を参照してください。

最上位モデル コードの再生成

チェック結果が最上位モデル コードの生成が必要であることを示している場合は、ビルド プロセスはモデル コードの完全な再生成とコンパイルを実行します。この例では、以前生成されたコードが、モデルの更新によって最新のコードではないかどうかを確認します。

ビルド プロセスでは、チェックが両方を示している場合、最上位モデル コードの再生成が省略されます。

  • 最上位モデルの生成コードが、モデルで最新である。

  • モデル設定が完全な再生成を必要としない。

この省略によって、モデルのビルド時間を大幅に削減できます。

Embedded Coder® ライセンスをお持ちの場合、コード生成テンプレート (CGT) ファイルを変更した後にモデルをリビルドしても、コード生成プロセスは最上位モデルのビルドを強制しません。この場合、最上位モデル コードの強制的な再生成を参照してください。

最上位モデル コードの強制的な再生成

最上位モデル ビルドの既定の動作を制御またはオーバーライドする場合は、以下のいずれかのコマンド ライン オプションを使用します。

  • チェックサムを無視し、最上位モデル コードの再生成を強制する場合は、以下のオプションを使用します。

    • slbuild(model,'ForceTopModelBuild',true)

    • slbuild(model,'StandaloneCoderTarget','ForceTopModelBuild',true)

  • 次回のビルドで最上位モデル コードの再生成が確実にトリガーされるように、モデル ビルド エリアをクリーンアップするには (slbuild のみ)、以下のオプションを使用します。

    slbuild(model,'CleanTopModel')

Code generation folderslprj フォルダーを削除することによって、最上位モデル コードの再生成を強制することもできます。slprj フォルダーを削除する場合は、model.slxc ファイルも削除します。

参考

関連するトピック