このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
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
)
例
モデルのコードの生成と実行可能ファイルのビルド
モデル rtwdemo_rtwintro
用の C コードを生成します。
slbuild('rtwdemo_rtwintro') % Same operation as ... % slbuild('rtwdemo_rtwintro','StandaloneCoderTarget')
Generic Real-Time (GRT) ターゲットの場合、本コード生成製品は次のコード ファイルを生成し、これを rtwdemo_rtwintro_grt_rtw
および slprj/grt/_sharedutils
フォルダーに配置します。
モデル ファイル | 共有ファイル | インターフェイス ファイル | 他のファイル |
---|---|---|---|
|
|
| なし |
次のモデル コンフィギュレーション パラメーター設定が満たされている場合は、本コード生成製品は追加の結果を生成します。
パラメーター設定 | 結果 |
---|---|
[コード生成] 、 [コード生成のみ] ペインはクリアされている | 実行可能ファイル rtwdemo_rtwintro.exe |
[コード生成] 、 [レポート] 、 [コード生成レポートを作成] が選択されている | レポートが表示され、生成されたコード ファイル、サブシステムおよびコード インターフェイス レポート、エントリポイント関数、入力端子、出力端子、インターフェイス パラメーターおよびデータ ストアなどへのリンクと情報が提供される |
複数の最上位モデルのビルド
この例では、slbuild
を使用して、2 つのモデル sldemo_mdlref_depgraph
と rtwdemo_counter
の実行可能コードを生成します。sldemo_mdlref_depgraph
はモデルを参照する最上位モデルです。この例では、参照モデルを並列にビルドする方法も示します。
ローカル フォルダーを作成します。
if exist(fullfile('.','myTempFolder'),'dir') rmdir('myTempFolder','s') end mkdir myTempFolder cd myTempFolder
モデルを参照する sldemo_mdlref_depgraph
をローカル フォルダーにコピーします。
src_dir = fullfile(matlabroot, ... 'toolbox', ... 'simulink', ... 'simdemos', ... 'simfeatures', ... 'modelreference'); copyfile(fullfile(src_dir, ... 'sldemo_mdlref_depgraph.slx'), ... '.');
sldemo_mdlref_depgraph
で参照されるモデルの並列ビルドを有効にします。
load_system('sldemo_mdlref_depgraph') set_param('sldemo_mdlref_depgraph', ... 'EnableParallelModelReferenceBuilds', 'on');
参照モデルの並列ビルドに対する MATLAB® ワーカーを初期化します。
set_param('sldemo_mdlref_depgraph', ... 'ParallelModelReferenceMATLABWorkerInit', ... 'Copy Base Workspace');
モデルをビルドします。
slbuild({'sldemo_mdlref_depgraph', 'rtwdemo_counter'})
myTempFolder
で、ビルド プロセスはスタンドアロン実行可能ファイル sldemo_mdlref_depgraph.exe
および rtwdemo_counter.exe
を作成します。
ビルド プロセスは、各モデルのビルド概要をコマンド ウィンドウに表示します。
最上位モデルを強制的にビルドする
モデルのチェックサムおよびパラメーターの設定に関係なく、モデル ReferenceModelCode
を参照しているモデル TopModelCode
用に、コードを生成して実行可能ファイルをビルドします。
openExample('simulinkcoder/FilePackagingModelsCodeAndDataExample',... 'supportingFile','TopModelCode'); slbuild('TopModelCode','StandaloneCoderTarget',... 'ForceTopModelBuild',true)
コードの生成とサブシステム用実行可能ファイルのビルド
モデル rtwdemo_rtwintro
でサブシステム Amplifier
の C コードを生成します。
rtwdemo_rtwintro
slbuild('rtwdemo_rtwintro/Amplifier')
コード ジェネレーターでは Amplifier_grt_rtw
フォルダーと slprj/grt/_sharedutils
フォルダーにコード ファイルが作成されます。
現在の作業フォルダーで、ビルド プロセス中に実行可能ファイル (Amplifier.exe
) が生成されます。
外部アプリケーションにコードをエクスポートするためのサブシステムのビルド
外部アプリケーション コードに関数呼び出しをエクスポートするには、Function-Call Subsystem から実行可能ファイルを作成します。
rtwdemo_exporting_functions set_param('rtwdemo_exporting_functions','GenCodeOnly','off'); slbuild('rtwdemo_exporting_functions/rtwdemo_subsystem','Mode','ExportFunctionCalls')
作業フォルダーに実行可能ファイル rtwdemo_subsystem.exe
が表示されます。
SIL テスト用の Model ブロックの作成
Function-Call Subsystem から、モデルから生成されたコードをテストするために使用できる Model ブロックを作成します。
モデル rtwdemo_exporting_functions
のサブシステム rtwdemo_subsystem
を開きます。
[コード生成] 、 [検証] 、 [詳細設定パラメーター] 、 [ブロックの作成] コンフィギュレーション パラメーターを [SIL]
に設定します。
Model ブロックを作成します。
mysilblockhandle = slbuild('rtwdemo_exporting_functions/rtwdemo_subsystem',... 'Mode','ExportFunctionCalls')
コード ジェネレーターにより、一時的なモデルで Model ブロックが生成されます。Model ブロックは次のように構成されます。
[モデル名] は元のサブシステムの内容を含む新しいモデルの名前に設定されます。
[シミュレーション モード] は
[ソフトウェアインザループ (SIL)]
に設定されます。
ブロックを環境、またはテスト ベクトルやスティミュラスの入力を提供するためのテスト ハーネス モデルに追加できます。SIL テストを実行するシミュレーションを実行して、Model ブロックが元のサブシステムと同じ結果になることを確認できます。
入力引数
model
— ビルド プロセスのモデルを指定
ハンドル | 文字ベクトル | ハンドルまたは文字ベクトルの cell 配列
モデル名をハンドルまたは文字ベクトルとして指定すると、ビルド プロセスはスタンドアロン実行可能ファイルまたはモデル参照ターゲットを作成します。
ハンドルまたは文字ベクトルの cell 配列を使用して複数モデルを指定する場合、ビルド プロセスは buildSpec
を cell 配列内の各モデルに適用します。
例: gcs
subsystem
— サブシステム名
ハンドル | 文字ベクトル | ハンドルまたは文字ベクトルの cell 配列
コードの生成元、または実行可能ファイルのビルド元となるサブシステムの名前。サブシステム名または完全なブロック パスを表すハンドルまたは文字ベクトルとして指定します。
ハンドルまたは文字ベクトルの cell 配列を使用して複数のサブシステムを指定できます。
例: 'rtwdemo_exporting_functions/rtwdemo_subsystem'
buildSpec
— ビルド プロセスのコード生成アクションを指定
'StandaloneCoderTarget'
(既定値) | 'ModelReferenceSimTarget'
| 'ModelReferenceCoderTarget'
| 'CleanTopModel'
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'
および 'Force'
、'IfOutOfDateOrStructuralChange'
、または 'IfOutOfDate'
で構成されるコンマ区切りのペアとして指定します。
このオプションは指定されたモデルにのみ適用され、指定されたモデルで参照されるモデルには適用されません。
'UpdateThisModelReferenceTarget' 値 | 同等の [リビルド] オプション | リビルド アクション |
---|---|---|
| 常に行う | モデルを無条件でリビルドします。 |
| 変更が検出された場合 | ビルド プロセスによって変更が検出された場合にモデルをリビルドします。 |
| 既知の依存関係で変更が検出された場合 | ビルド プロセスによってこのモデルの既知の依存関係で変更が検出された場合にモデルをリビルドします。 |
さまざまなリビルド オプションの詳細については、リビルドを参照してください。
例: 'UpdateThisModelReferenceTarget','Force'
依存関係
このオプションを使用するには、buildSpec
を 'ModelReferenceSimTarget'
または 'ModelReferenceCoderTarget'
に設定します。
データ型: char
| string
ForceTopModelBuild
— モデルの階層構造の最上位モデルを強制的にビルド
false
(既定値) | true
モデルの階層構造の最上位モデルを強制的にビルドするオプション。'ForceTopModelBuild'
および true
または false
で構成されるコンマ区切りのペアとして指定します。
値を true
に設定すると、モデルのチェックサムとパラメーター設定に関係なく、コードを生成し、モデルの階層構造の最上位モデルに対する実行可能ファイルをビルドするようにコード ジェネレーターに指示されます。
例: 'ForceTopModelBuild',true
依存関係
このオプションを使用するには、buildSpec
を 'StandaloneCoderTarget'
に設定します。
データ型: logical
GenerateCodeOnly
— コード生成のみ
false
| true
値を指定しない場合、[コード生成] ペインの [コード生成のみ] (GenCodeOnly
) オプションでビルド プロセスの動作が制御されます。
値を指定した場合、この引数が [コード生成] ペインの [コード生成のみ] (GenCodeOnly
) オプションよりも優先されます。
true
–– コードのみ生成します。false
–– コードを生成して実行可能ファイルをビルドします。
Mode
— 関数呼び出しのエクスポート (サブシステムのビルドの場合のみ)
'ExportFunctionCalls'
| 'Normal'
'ExportFunctionCalls'
–– Embedded Coder がある場合は、外部アプリケーションにエクスポートできる関数呼び出しを含むsubsystem
からコードを生成します。'Normal'
–– 関数呼び出しをエクスポートしません。
ExportFunctionFileName
— 関数名
文字ベクトル
指定されたサブシステムに対してエクスポートされた関数の名前を付けます。
例: slbuild(
subsystem
,'Mode','ExportFunctionCalls','ExportFunctionFileName', fcnname
)
OpenBuildStatusAutomatically
— ビルド情報の表示
false
(既定値) | true
ビルド情報を表示するオプション。'OpenBuildStatusAutomatically'
および true
または false
で構成されるコンマ区切りのペアとして指定します。
ビルド情報を [ビルド ステータス] ウィンドウに表示するには、true
を指定します。既定の設定は false
です。ステータス ウィンドウの使用法の詳細については、参照モデルの並列ビルドのモニター (Simulink Coder)を参照してください。
[ビルド ステータス] ウィンドウは参照モデルの階層構造の並列ビルドをサポートします。シリアル ビルドに [ビルド ステータス] ウィンドウを使用しないでください。
依存関係
このオプションを使用するには、buildSpec
を 'StandaloneCoderTarget'
に設定します。
データ型: logical
ObfuscateCode
— 難読化された C コードの生成
false
(既定値) | true
難読化された C コードを生成するかどうかを指定します。
true
––知的所有権が侵害される可能性が低くなる、サードパーティと共有可能な難読化された C コードを生成します。false
–– 生成される C コードは難読化されません。
IncludeModelReferenceSimulationTargets
— モデル参照のシミュレーション ターゲットのビルド
false
(既定値) | true
モデル参照シミュレーション ターゲットをビルドするオプション。'IncludeModelReferenceSimulationTargets'
および true
または false
で構成されるコンマ区切りのペアとして指定します。
依存関係
このオプションを使用するには、buildSpec
を 'StandaloneCoderTarget'
に設定します。
データ型: logical
出力引数
blockHandle
— ブロック ハンドル
ハンドル
自動生成された S-Function ラッパー ブロックまたは Model ブロックへのブロック ハンドル。
拡張機能
自動並列サポート
Parallel Computing Toolbox™ を使用して自動的に並列計算を実行することで、コードを高速化します。
参照モデルを並列に作成するには、最上位モデルで、コンフィギュレーション パラメーター チェック ボックス [並列モデルの参照ビルドを有効化] をオンにします。詳細については、並列ビルドを使用した参照モデルのビルド時間の短縮 (Simulink Coder)を参照してください。
parfor
または spmd
ループなどの Parallel Computing Toolbox™ コマンドでは、並列ビルド用に設定されているモデルを作成する rtwbuild
、rtwrebuild
、または slbuild
コマンドを呼び出さないでください。
バージョン履歴
R2006a より前に導入R2020b: 既定では slbuild
はモデル参照シミュレーション ターゲットを生成しない
R2020b 以降、関数 slbuild
は既定でモデル参照シミュレーション ターゲットを生成しません。モデル参照シミュレーション ターゲットを除外することで、モデルの階層構造のコード生成を高速化できます。
IncludeModelReferenceSimulationTargets
を true
に設定して、既定の buildSpec
値 ('StandaloneCoderTarget'
) を使用してシミュレーション ターゲットとコード生成ターゲットの両方を生成できます。
buildSpec
引数に対して 'ModelReferenceCoderTarget'
を指定すると、slbuild
はモデル参照シミュレーション ターゲットをビルドしなくなります。モデル参照 Simulink Coder ターゲットのみがビルドされます。
R2020b: 'ModelReferenceCoderTargetOnly'
は非推奨
R2020b 以降、buildSpec
引数値 'ModelReferenceCoderTarget'
と 'ModelReferenceCoderTargetOnly'
が同じ動作になります。'ModelReferenceCoderTargetOnly'
は推奨されません。代わりに 'ModelReferenceCoderTarget'
を使用してください。
'ModelReferenceCoderTargetOnly'
を削除する予定はありません。
R2019a: 'StandaloneRTWTarget'
、'ModelReferenceRTWTarget'
および 'ModelReferenceRTWTargetOnly'
は非推奨
R2019a に、これらの buildSpec
引数値は、わかりやすくするために新しい名前を受け取ります。
'StandaloneRTWTarget'
— 代わりに'StandaloneCoderTarget'
を使用してください。'ModelReferenceRTWTarget'
— 代わりに'ModelReferenceCoderTarget'
を使用してください。'ModelReferenceRTWTargetOnly'
— 代わりに'ModelReferenceCoderTargetOnly'
を使用してください。
従来の buildSpec
引数値を削除する予定はありません。
参考
codebuild
(Simulink Coder) | rtwrebuild
(Simulink Coder)
トピック
- 参照モデルに対するシミュレーション ターゲットの管理
- アクセラレーションとは
- 高速化の実行
- シミュレーションを高速化するための Simulink キャッシュ ファイルの共有
- プログラムのビルドおよび実行 (Simulink Coder)
- Simulink モデルから生成されたコードのビルドに使用するアプローチ (Simulink Coder)
- 最上位モデル コードの再生成の制御 (Simulink Coder)
- 外部コード ベースにエクスポートするコンポーネント ソース コードの生成 (Embedded Coder)
- SIL シミュレーションと PIL シミュレーションを使用した生成コードのテスト (Embedded Coder)
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)