slbuild
モデルのスタンドアロン実行可能ファイルまたはモデル参照ターゲットのビルド
構文
説明
slbuild( は、現在のコンフィギュレーション パラメーター設定を使用して、指定されたモデルからスタンドアロンの Simulink® Coder™ バイナリ実行可能ファイルをビルドします。モデルが読み込まれていない場合、model)slbuild はビルド プロセスを開始する前にモデルを読み込みます。
slbuild( は、1 つ以上の名前と値の引数で指定されたモデルからスタンドアロンの Simulink Coder バイナリ実行可能ファイルをビルドします。model,Name,Value)
は、モデルの現在のコンフィギュレーション パラメーター設定を使用して、サブシステム コードを生成し、Simulink Coder バイナリ実行可能ファイルをビルドします。選択したシステム ターゲット ファイルで S-Function ブロックが作成されると、自動生成された S-Function ラッパーへの空でないブロック ハンドルが返されます。コマンドを実行する前に、親モデルを開くか読み込まなければなりません。blockHandle = slbuild(subsystem)
は、外部のアプリケーション コードにエクスポートできる関数呼び出しを含むサブシステムからコードを生成します。このコマンドには Embedded Coder® が必要です。[ブロックの作成] コンフィギュレーション パラメーターが blockHandle = slbuild(subsystem,'Mode','ExportFunctionCalls')[SIL] に設定されている場合、SIL モードで Model ブロックへのハンドルが返されます。数値的等価性のテストに Model ブロックを使用できます。
は、1 つ以上の名前と値の引数で指定されたとおりに、サブシステム コードを生成し、Simulink Coder バイナリ実行可能ファイルをビルドします。blockHandle = slbuild(subsystem,Name,Value)
例
モデル CounterModel 用の C コードを生成します。
openExample('CounterModel') slbuild('CounterModel') % Same operation as ... % slbuild('CounterModel','StandaloneCoderTarget')
Generic Real-Time (GRT) ターゲットの場合、本コード生成製品は次のコード ファイルを生成し、これを CounterModel_grt_rtw および slprj/grt/_sharedutils フォルダーに配置します。
| モデル ファイル | 共有ファイル | インターフェイス ファイル | 他のファイル |
|---|---|---|---|
|
|
| なし |
次のモデル コンフィギュレーション パラメーター設定が満たされている場合は、本コード生成製品は追加の結果を生成します。
| パラメーター設定 | 結果 |
|---|---|
| [コード生成] 、 [コード生成のみ] ペインはクリアされている | 実行可能ファイル CounterModel.exe |
| [コード生成] 、 [レポート] 、 [コード生成レポートを作成] が選択されている | レポートが表示され、生成されたコード ファイル、サブシステムおよびコード インターフェイス レポート、エントリポイント関数、入力端子、出力端子、インターフェイス パラメーターおよびデータ ストアなどへのリンクと情報が提供される |
この例では、slbuild を使用して、2 つのモデル CounterModel と ParallelBuildA1 の実行可能コードを生成する方法について説明します。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 値 | ビルド アクション | メモ |
|---|---|---|
| 現在のモデル コンフィギュレーション設定を使用して、指定されたモデルのスタンドアロンの Simulink Coder バイナリ実行可能ファイルをビルドします。参照モデルのモデル参照 Coder ターゲットもビルドされます。 指定されたモデルが読み込まれない場合、ビルド プロセスを開始する前に |
|
| モデル参照 Simulink Coder ターゲットをビルドする。 |
|
| モデル参照シミュレーション ターゲットをビルドする。 | Simulink Coder ライセンスは必要ありません。 |
| 次回のビルドで最上位モデルのコードの再生成をトリガーするのに十分なモデル ビルド領域をクリーンアップする。 | この値は、[展開タイプ] メニューから [サブコンポーネント] を選択する場合は指定できません。 |
例: 'ModelReferenceSimTarget'
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。
例: 'UpdateThisModelReferenceTarget','Force'
モデル参照ビルドの条件付きリビルド オプション。'UpdateThisModelReferenceTarget' および 'Force'、'IfOutOfDateOrStructuralChange'、または 'IfOutOfDate' で構成されるコンマ区切りのペアとして指定します。
このオプションは指定されたモデルにのみ適用され、指定されたモデルで参照されるモデルには適用されません。
| 'UpdateThisModelReferenceTarget' 値 | 同等の [リビルド] オプション | リビルド アクション |
|---|---|---|
| 常に行う | モデルを無条件でリビルドします。 |
| 変更が検出された場合 | ビルド プロセスによって変更が検出された場合にモデルをリビルドします。 |
| 既知の依存関係で変更が検出された場合 | ビルド プロセスによってこのモデルの既知の依存関係で変更が検出された場合にモデルをリビルドします。 |
さまざまなリビルド オプションの詳細については、リビルドを参照してください。
例: 'UpdateThisModelReferenceTarget','Force'
依存関係
このオプションを使用するには、buildSpec を 'ModelReferenceSimTarget' または 'ModelReferenceCoderTarget' に設定します。
データ型: char | string
最上位モデルで ERT または GRT システム ターゲット ファイルを使用している場合は、このオプションを使用してビルド プロセスの出力タイプを指定します。
| 'BuildOutputType' の値 | ビルド アクション |
|---|---|
| コード生成フォルダーで、最上位モデルから Simulink Coder バイナリ ファイルを作成します。ビルド プロセスの出力タイプは、現在のコンフィギュレーション パラメーター設定によって異なります。以下に例を示します。
|
| コード生成フォルダーで、最上位モデルの生成コードからスタンドアロンの Simulink Coder バイナリ実行可能ファイルを作成します。例: myModel.exe。 |
| ビルド フォルダーで、最上位モデルの生成コードからスタティック ライブラリを作成します。例: |
| ビルド フォルダーで、最上位モデルの生成コードから共有ライブラリを作成します。例: |
コード生成およびビルド フォルダーの詳細については、ビルド プロセスのフォルダーの管理 (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 ブロックへのブロック ハンドル。
拡張機能
参照モデルを並列に作成するには、最上位モデルで、コンフィギュレーション パラメーター チェック ボックス [モデル参照の並列ビルドを有効にする] をオンにします。詳細については、並列ビルドを使用した参照モデルのビルド時間の短縮 (Simulink Coder)を参照してください。
parfor または spmd ループなどの Parallel Computing Toolbox™ コマンドでは、並列ビルド用に設定されているモデルを作成する rtwbuild、rtwrebuild、または slbuild コマンドを呼び出さないでください。
バージョン履歴
R2006a より前に導入slbuild 関数で IncludeModelReferenceSimulationTargets 引数を使用すると警告が発行されます。警告により、この引数には効果がなく、将来のリリースで削除される予定であることが示されます。
slbuild が既定でモデル参照シミュレーション ターゲットを生成しなくなりました。モデル参照シミュレーション ターゲットを除外することで、モデルの階層構造のコード生成を高速化できます。
buildSpec 引数に対して 'ModelReferenceCoderTarget' を指定すると、slbuild はモデル参照シミュレーション ターゲットをビルドしなくなります。モデル参照 Simulink Coder ターゲットのみがビルドされます。
buildSpec 引数値 'ModelReferenceCoderTarget' と 'ModelReferenceCoderTargetOnly' が同じ動作になりました。'ModelReferenceCoderTargetOnly' は推奨されません。代わりに 'ModelReferenceCoderTarget' を使用してください。
'ModelReferenceCoderTargetOnly' を削除する予定はありません。
以下の buildSpec 引数値は、わかりやすくするために新しい名前を受け取ります。
'StandaloneRTWTarget'— 代わりに'StandaloneCoderTarget'を使用してください。'ModelReferenceRTWTarget'— 代わりに'ModelReferenceCoderTarget'を使用してください。'ModelReferenceRTWTargetOnly'— 代わりに'ModelReferenceCoderTargetOnly'を使用してください。
従来の buildSpec 引数値を削除する予定はありません。
参考
codebuild (Simulink Coder) | rtwrebuild (Simulink Coder)
トピック
- 参照モデルに対するシミュレーション ターゲットの管理
- アクセラレーションとは
- 高速化の実行
- シミュレーションを高速化するための Simulink キャッシュ ファイルの共有
- プログラムのビルドおよび実行 (Simulink Coder)
- Simulink モデルから生成されたコードのビルドに使用するアプローチ (Simulink Coder)
- 並列ビルドを使用した参照モデルのビルド時間の短縮 (Simulink Coder)
- 最上位モデル コードの再生成の制御 (Simulink Coder)
- 外部コード ベースにエクスポートするコンポーネント ソース コードの生成 (Embedded Coder)
- SIL シミュレーションと PIL シミュレーションを使用した生成コードのテスト (Embedded Coder)
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)