Main Content

slbuild

モデルのスタンドアロン実行可能ファイルまたはモデル参照ターゲットのビルド

説明

slbuild(model) は、現在のコンフィギュレーション パラメーター設定を使用して、指定されたモデルからスタンドアロンの Simulink® Coder™ バイナリ実行可能ファイルをビルドします。モデルが読み込まれていない場合、slbuild はビルド プロセスを開始する前にモデルを読み込みます。

slbuild(model,buildSpec) は、指定されたコード生成アクションに従ってモデルからスタンドアロンの Simulink Coder バイナリ実行可能ファイルをビルドします。

slbuild(model,Name,Value) は、1 つ以上の名前と値の引数で指定されたモデルからスタンドアロンの Simulink Coder バイナリ実行可能ファイルをビルドします。

blockHandle = slbuild(subsystem) は、モデルの現在のコンフィギュレーション パラメーター設定を使用して、サブシステム コードを生成し、Simulink Coder バイナリ実行可能ファイルをビルドします。選択したシステム ターゲット ファイルで S-Function ブロックが作成されると、自動生成された S-Function ラッパーへの空でないブロック ハンドルが返されます。コマンドを実行する前に、親モデルを開くか読み込まなければなりません。

blockHandle = slbuild(subsystem,'Mode','ExportFunctionCalls') は、外部のアプリケーション コードにエクスポートできる関数呼び出しを含むサブシステムからコードを生成します。このコマンドには Embedded Coder® が必要です。[ブロックの作成] コンフィギュレーション パラメーターが [SIL] に設定されている場合、SIL モードで Model ブロックへのハンドルが返されます。数値的等価性のテストに Model ブロックを使用できます。

blockHandle = slbuild(subsystem,Name,Value) は、1 つ以上の名前と値の引数で指定されたとおりに、サブシステム コードを生成し、Simulink Coder バイナリ実行可能ファイルをビルドします。

すべて折りたたむ

モデル CounterModel 用の C コードを生成します。

openExample('CounterModel')
slbuild('CounterModel')
% Same operation as ...
% slbuild('CounterModel','StandaloneCoderTarget') 

Generic Real-Time (GRT) ターゲットの場合、本コード生成製品は次のコード ファイルを生成し、これを CounterModel_grt_rtw および slprj/grt/_sharedutils フォルダーに配置します。

モデル ファイル共有ファイルインターフェイス ファイル他のファイル

CounterModel.c

CounterModel.h

CounterModel_private.h

CounterModeltypes.h

rtwtypes.h

multiword_types.h

builtin_typeid_types.h

rtmodel.h

なし

次のモデル コンフィギュレーション パラメーター設定が満たされている場合は、本コード生成製品は追加の結果を生成します。

パラメーター設定結果
[コード生成][コード生成のみ] ペインはクリアされている実行可能ファイル CounterModel.exe
[コード生成][レポート][コード生成レポートを作成] が選択されているレポートが表示され、生成されたコード ファイル、サブシステムおよびコード インターフェイス レポート、エントリポイント関数、入力端子、出力端子、インターフェイス パラメーターおよびデータ ストアなどへのリンクと情報が提供される

この例では、slbuild を使用して、2 つのモデル CounterModelParallelBuildA1 の実行可能コードを生成する方法について説明します。ParallelBuildA1 はモデルを参照する最上位モデルであり、参照モデルを並列でビルドするように構成されます。

モデルを開きます。

openExample("simulinkcoder/RegisterAndUseToolchainToBuildExecutableExample", ...
             supportingfile="CounterModel.slx")
openExample("simulinkcoder/MonitorBuildProcessForModelHierarchyExample", ...
             supportingfile="ParallelBuildA1.slx")

モデルをビルドします。

slbuild({'CounterModel', 'ParallelBuildA1'})

現在のフォルダーで、ビルド プロセスはスタンドアロン実行可能ファイル CounterModel.exe および ParallelBuildA1.exe を作成します。

ビルド プロセスは、各モデルのビルド概要をコマンド ウィンドウに表示します。

モデルのチェックサムおよびパラメーターの設定に関係なく、モデル ReferenceModelCode を参照しているモデル TopModelCode 用に、コードを生成して実行可能ファイルをビルドします。

openExample('simulinkcoder/FilePackagingModelsCodeAndDataExample',...
    'supportingFile','TopModelCode');
slbuild('TopModelCode','StandaloneCoderTarget',...
    'ForceTopModelBuild',true)

モデル CounterModel でサブシステム Amplifier の C コードを生成します。

openExample('CounterModel')
slbuild('CounterModel/Amplifier')

コード ジェネレーターでは Amplifier_grt_rtw フォルダーと slprj/grt/_sharedutils フォルダーにコード ファイルが作成されます。

現在の作業フォルダーで、ビルド プロセス中に実行可能ファイル (Amplifier.exe) が生成されます。

外部アプリケーション コードに関数呼び出しをエクスポートするには、Function-Call Subsystem から実行可能ファイルを作成します。

openExample('SimulinkFunctions')
set_param('SimulinkFunctions','GenCodeOnly','off');
slbuild('SimulinkFunctions/util','Mode','ExportFunctionCalls')

作業フォルダーに実行可能ファイル util.exe が表示されます。

Function-Call Subsystem から、モデルから生成されたコードをテストするために使用できる Model ブロックを作成します。

モデル SimulinkFunctions のサブシステム util を開きます。

[コード生成][検証][詳細設定パラメーター][ブロックの作成] コンフィギュレーション パラメーターを [SIL] に設定します。

Model ブロックを作成します。

openExample('SimulinkFunctions');
set_param('SimulinkFunctions','GenCodeOnly','off');
mysilblockhandle = slbuild('SimulinkFunctions/util',...
'Mode','ExportFunctionCalls')

コード ジェネレーターにより、一時的なモデルで Model ブロックが生成されます。Model ブロックは次のように構成されます。

  • [モデル名] は元のサブシステムの内容を含む新しいモデルの名前に設定されます。

  • [シミュレーション モード][ソフトウェアインザループ (SIL)] に設定されます。

ブロックを環境、またはテスト ベクトルやスティミュラスの入力を提供するためのテスト ハーネス モデルに追加できます。SIL テストを実行するシミュレーションを実行して、Model ブロックが元のサブシステムと同じ結果になることを確認できます。

入力引数

すべて折りたたむ

モデル名をハンドルまたは文字ベクトルとして指定すると、ビルド プロセスはスタンドアロン実行可能ファイルまたはモデル参照ターゲットを作成します。

ハンドルまたは文字ベクトルの cell 配列を使用して複数モデルを指定する場合、ビルド プロセスは buildSpec を cell 配列内の各モデルに適用します。

例: gcs

コードの生成元、または実行可能ファイルのビルド元となるサブシステムの名前。サブシステム名または完全なブロック パスを表すハンドルまたは文字ベクトルとして指定します。

ハンドルまたは文字ベクトルの cell 配列を使用して複数のサブシステムを指定できます。

例: 'SimulinkFunctions/util'

buildSpec は、モデルとビルド プロセス用に選択したビルド アクションを実行するようにコード ジェネレーターに指示します。

  • [コンフィギュレーション パラメーター] ダイアログ ボックスの [モデル参照] ペインの [リビルド] パラメーターの設定に従います。

  • Simulink Coder ライセンスはモデル参照 Simulink Coder ターゲットをビルドする場合にのみ必要になり、モデル参照シミュレーション ターゲットのみをビルドする場合は不要です。

buildSpec 引数は、次のいずれかでなければなりません。

buildSpecビルド アクション

'StandaloneCoderTarget'

現在のモデル コンフィギュレーション設定を使用して、指定されたモデルのスタンドアロンの Simulink Coder バイナリ実行可能ファイルをビルドします。参照モデルのモデル参照 Coder ターゲットもビルドされます。

指定されたモデルが読み込まれない場合、ビルド プロセスを開始する前に slbuild はモデルを読み込みます。

'ModelReferenceSimTarget'

モデル参照シミュレーション ターゲットをビルドする (Simulink Coder ライセンスは不要)。

'ModelReferenceCoderTarget'

モデル参照 Simulink Coder ターゲットをビルドする。

'CleanTopModel'

次回のビルドで最上位モデルのコードの再生成をトリガーするのに十分なモデル ビルド領域をクリーンアップする。

例: 'ModelReferenceSimTarget'

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。

R2021a より前は、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

例: 'UpdateThisModelReferenceTarget','Force'

モデル参照ビルドの条件付きリビルド オプション。'UpdateThisModelReferenceTarget' および 'Force''IfOutOfDateOrStructuralChange'、または 'IfOutOfDate' で構成されるコンマ区切りのペアとして指定します。

このオプションは指定されたモデルにのみ適用され、指定されたモデルで参照されるモデルには適用されません。

'UpdateThisModelReferenceTarget' 値同等の [リビルド] オプションリビルド アクション

'Force'

常に行う

モデルを無条件でリビルドします。

'IfOutOfDateOrStructuralChange'

変更が検出された場合

ビルド プロセスによって変更が検出された場合にモデルをリビルドします。

'IfOutOfDate'

既知の依存関係で変更が検出された場合

ビルド プロセスによってこのモデルの既知の依存関係で変更が検出された場合にモデルをリビルドします。

さまざまなリビルド オプションの詳細については、リビルドを参照してください。

例: 'UpdateThisModelReferenceTarget','Force'

依存関係

このオプションを使用するには、buildSpec'ModelReferenceSimTarget' または 'ModelReferenceCoderTarget' に設定します。

データ型: char | string

最上位モデルで ERT または GRT システム ターゲット ファイルを使用している場合は、このオプションを使用してビルド プロセスの出力タイプを指定します。

'BuildOutputType' の値ビルド アクション

'Auto' (既定の設定)

コード生成フォルダーで、最上位モデルから Simulink Coder バイナリ ファイルを作成します。ビルド プロセスの出力タイプは、現在のコンフィギュレーション パラメーター設定によって異なります。以下に例を示します。

  • [システム ターゲット ファイル][ert.tlc] または [grt.tlc] の場合、ビルド プロセスでは通常、スタンドアロンのバイナリ実行可能ファイルが生成されます。

  • [システム ターゲット ファイル][ert_shrlib.tlc] の場合、ビルド プロセスでは共有ライブラリ ファイルが生成されます。

  • モデルが Embedded Coder ディクショナリを使用してサービス インターフェイス構成にマッピングされている場合、ビルド プロセスではスタティック ライブラリ ファイルが生成されます。Define Service Interfaces, Storage Classes, Memory Sections, and Function Templates for Software Architecture (Embedded Coder)および Embedded Coder ディクショナリ (Embedded Coder)を参照してください。

'Executable'

コード生成フォルダーで、最上位モデルの生成コードからスタンドアロンの Simulink Coder バイナリ実行可能ファイルを作成します。例: myModel.exe

'StaticLibrary'

ビルド フォルダーで、最上位モデルの生成コードからスタティック ライブラリを作成します。例: myModel.lib。ライブラリにはメイン プログラム例は含まれていません。

'SharedLibrary'

ビルド フォルダーで、最上位モデルの生成コードから共有ライブラリを作成します。例: myModel.dll。ライブラリにはメイン プログラム例は含まれていません。

コード生成およびビルド フォルダーの詳細については、ビルド プロセスのフォルダーの管理 (Simulink Coder)を参照してください。

例: 'BuildOutputType' ,'StaticLibrary'

依存関係

このオプションを使用するには、buildSpec'StandaloneCoderTarget' に設定します。

データ型: char | string

モデルの階層構造の最上位モデルを強制的にビルドするオプション。'ForceTopModelBuild' および true または false で構成されるコンマ区切りのペアとして指定します。

値を true に設定すると、モデルのチェックサムとパラメーター設定に関係なく、コードを生成し、モデルの階層構造の最上位モデルに対する実行可能ファイルをビルドするようにコード ジェネレーターに指示されます。

例: 'ForceTopModelBuild',true

依存関係

このオプションを使用するには、buildSpec'StandaloneCoderTarget' に設定します。

データ型: logical

値を指定しない場合、[コード生成] ペインの [コード生成のみ] (GenCodeOnly) オプションでビルド プロセスの動作が制御されます。

値を指定した場合、この引数が [コード生成] ペインの [コード生成のみ] (GenCodeOnly) オプションよりも優先されます。

  • true –– コードのみ生成します。

  • false –– コードを生成して実行可能ファイルをビルドします。

  • 'ExportFunctionCalls' –– Embedded Coder がある場合は、外部アプリケーションにエクスポートできる関数呼び出しを含む subsystem からコードを生成します。

  • 'Normal' –– 関数呼び出しをエクスポートしません。

指定されたサブシステムに対してエクスポートされた関数の名前を付けます。

例: slbuild(subsystem,'Mode','ExportFunctionCalls','ExportFunctionFileName', fcnname)

ビルド情報を表示するオプション。'OpenBuildStatusAutomatically' および true または false で構成されるコンマ区切りのペアとして指定します。

ビルド情報を [ビルド ステータス] ウィンドウに表示するには、true を指定します。既定の設定は false です。ステータス ウィンドウの使用法の詳細については、参照モデルの並列ビルドのモニター (Simulink Coder)を参照してください。

[ビルド ステータス] ウィンドウは参照モデルの階層構造の並列ビルドをサポートします。シリアル ビルドに [ビルド ステータス] ウィンドウを使用しないでください。

依存関係

このオプションを使用するには、buildSpec'StandaloneCoderTarget' に設定します。

データ型: logical

難読化された C コードを生成するかどうかを指定します。

  • true ––知的所有権が侵害される可能性が低くなる、サードパーティと共有可能な難読化された C コードを生成します。

  • false –– 生成される C コードは難読化されません。

モデル参照シミュレーション ターゲットをビルドするオプション。'IncludeModelReferenceSimulationTargets' および true または false で構成されるコンマ区切りのペアとして指定します。

依存関係

このオプションを使用するには、buildSpec'StandaloneCoderTarget' に設定します。

データ型: logical

出力引数

すべて折りたたむ

自動生成された S-Function ラッパー ブロックまたは Model ブロックへのブロック ハンドル。

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する