メインコンテンツ

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'})
### Starting build procedure for: CounterModel
### Successful completion of build procedure for: CounterModel

Build Summary

Top model targets:

Model         Build Reason                                         Status                        Build Duration
===============================================================================================================
CounterModel  Information cache folder or artifacts were missing.  Code generated and compiled.  0h 0m 37.136s 

1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 40.889s
### Searching for referenced models in model 'ParallelBuildA1'.
### Found 3 model reference targets to update.
Starting parallel pool (parpool) using the 'Processes' profile ...
Connected to parallel pool with 4 workers.
### Initializing workers for parallel model reference build.
### Parallel worker initialization complete.
### Starting parallel model reference code generation build.
### Successfully updated the model reference code generation target for: ParallelBuildB1
### Successfully updated the model reference code generation target for: ParallelBuildB2
### Successfully updated the model reference code generation target for: ParallelBuildB3
### Starting build procedure for: ParallelBuildA1
### Successful completion of build procedure for: ParallelBuildA1

Build Summary

Model reference code generation targets:

Model            Build Reason                               Status                        Build Duration
========================================================================================================
ParallelBuildB1  Target (ParallelBuildB1.c) did not exist.  Code generated and compiled.  0h 0m 53.995s 
ParallelBuildB2  Target (ParallelBuildB2.c) did not exist.  Code generated and compiled.  0h 0m 53.985s 
ParallelBuildB3  Target (ParallelBuildB3.c) did not exist.  Code generated and compiled.  0h 0m 53.985s 

Top model targets:

Model            Build Reason                                         Status                        Build Duration
==================================================================================================================
ParallelBuildA1  Information cache folder or artifacts were missing.  Code generated and compiled.  0h 0m 18.998s 

4 of 4 models built (0 models already up to date)
Build duration: 0h 3m 15.417s

ビルド プロセスは、各モデルのビルド概要を表示します。

現在のフォルダーで、ビルド プロセスはスタンドアロン実行可能ファイル 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 はモデルを読み込みます。

  • これは、[展開タイプ] メニューから [コンポーネント] または [自動] を選択する場合の既定値です。

  • この値は、[展開タイプ] メニューから [サブコンポーネント] を選択する場合は指定できません。

'ModelReferenceCoderTarget'

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

  • これは、[展開タイプ] メニューから [サブコンポーネント] を選択する場合の既定値です。

  • この値は、[展開タイプ] メニューから [コンポーネント] を選択する場合は指定できません。

'ModelReferenceSimTarget'

モデル参照シミュレーション ターゲットをビルドする。

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 –– コードを生成して実行可能ファイルをビルドします。

依存関係

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

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

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

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

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

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

例: rtwbuild(subsystem,'Mode','ExportFunctionCalls','ExportFunctionInitializeFunctionName', fcnname)

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

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

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

依存関係

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

データ型: logical

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

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

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

出力引数

すべて折りたたむ

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

拡張機能

すべて展開する

バージョン履歴

R2006a より前に導入

すべて展開する