ビルド プロセス
ビルド プロセスの概要
TLC はターゲット言語で記述されたファイルをコンパイルします。ターゲット言語はインタープリター型言語であり、コンパイラは実行するたびにソース ファイルに対して動作します。ターゲット ファイルを変更し、モデルの次回のビルド時にその変更の効果を調べることができます。変更を確認するために、TLC バイナリや他の大規模なバイナリを再コンパイルする必要はありません。
ターゲット言語はインタープリター型言語であるため、一部のステートメントはコンパイルされない、または実行されない (したがって、コンパイラでチェックされない) ことがあります。次に例を示します。
%if 1 Hello %else %<Invalid_function_call()> %endif
この例では、Invalid_function_call
ステートメントは実行されません。この例は、すべての行を実行するテスト ケースを使用して TLC コードをテストする必要があることを強く示唆しています。
ターゲット言語ファイルの作成と使用
この例では、モデルから特定のテキストを生成するターゲット言語ファイルを作成します。独自のターゲット言語ファイルを作成して使用する際に従う必要がある一連の手順が示されています。
プロセス
まず、次の図に示されているように Simulink® モデルを作成します。
新しいモデルを作業フォルダーに
basic
として保存します。[コンフィギュレーション パラメーター] ダイアログ ボックスを表示します。
[ソルバー] ペインを選択します。
[ソルバー] ペインで以下を行います。
[タイプ] フィールドで
[固定ステップ]
を選択します。[ソルバー] フィールドで、
[離散 (連続状態なし)]
を選択します。[追加オプション] の [固定ステップ サイズ] フィールドで
[0.1]
を指定します。(この値を指定しないと、コードを生成する際にコード ジェネレーターで警告が出され、既定値が提供されます。)
[適用] をクリックします。
[コード生成] ペインを選択します。
[.rtw ファイルを残す] を選択してから、[適用] をクリックします。この手順により、ビルドの完了後に
ファイルの内容を検査できるようになります。model
.rtw[コード生成のみ] を選択してから、[OK] をクリックします。
モデルをビルドします。
ビルド プロセスでは basic_grt_rtw
フォルダーにコードが生成されます。MATLAB® コマンド ウィンドウで進行状況を確認できます。コード生成が完了すると、以下のメッセージが表示されます。
### Successful completion of code generation for model: basic
slbuild
コマンド
モデル ウィンドウで Ctrl+B を押して slbuild
を呼び出します。ただし、一部の状況では、MATLAB プロンプトから slbuild
を直接実行する必要があります。
ファイルを MATLAB プロンプトから生成するには、以下を入力します。model
.rtw
slbuild('model')
slbuild
へのその他のオプションを指定し、モデル参照シミュレーション ターゲットまたはスタンドアロン実行可能ファイルをビルドまたはリビルドすることができます。詳細については、以下を入力してください。
help slbuild
これは MATLAB プロンプトで入力します。あるいは、Simulink ドキュメンテーションで slbuild
を参照してください。
basic.rtw
ファイルの表示
ファイルには、ラベル付けされたレコードおよびフィールドの階層が含まれます。各レコードは大かっこで区切られ、下位のレコード/フィールドが含まれます。ラベルは、各レコードおよびフィールドの目的を記述します。モデルに対して作成された model
.rtw
ファイル内のレコードおよびフィールドは、モデルの各種詳細およびそのコンテキストを指定する [コンフィギュレーション パラメーター] の設定を記述します。model
.rtw
MATLAB またはテキスト エディターでファイル ./basic_grt_rtw/basic.rtw
を開きます。
ターゲット ファイルの作成
メモ
以下の演習は、.rtw
ファイルがビルド プロセスでどのように使用されるのかに関する概念的な概要を示しています。コード ジェネレーターでは、以前のビルドで作成された .rtw
ファイルでの TLC の手動呼び出しはサポートされていません。また、.rtw
ファイルの内容はドキュメント化されておらず、変更される可能性があります。basic.tlc
ファイルは、TLC ファイルからアクセスしてビルド プロセスの一部として実行できる .rtw
ファイルで情報がどのように提供されるのかを示します。
次に、このモデルのターゲット ファイルの役割を果たす basic.tlc
ファイルを作成します。コードを生成するのではなく、このファイルを使用してモデルに関する一部の情報を単に表示します。概念はコード生成で使用されるものと同じです。
basic
が含まれているフォルダーに basic.tlc
というファイルを作成します。このファイルには以下の行が含まれている必要があります。
%with CompiledModel My model is called %<Name>. It was generated on %<GeneratedOn>. It has %<NumModelOutputs> output(s) and %<NumContStates> continuous state(s). %endwith
メモ
ビルド プロセスで、TLC の呼び出し時にコマンド ラインで指定される .tlc
ファイル (たとえば、grt.tlc
) は、システム ターゲット ファイル (STF) と呼ばれます。これは、[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成] ペインで [システム ターゲット ファイル] ブラウザー オプションを使用して選択できます。
この例では、ビルド プロセスの一部として .rtw
ファイルを生成してから、STF の例としてファイル basic.tlc
を使用して TLC を手動で実行します。basic.tlc
は、例の出力を生成するために (機能に制限はあるものの) .rtw
ファイルの情報がどのように使用されるのかを示します。これを行うには、MATLAB プロンプトで以下を入力します。
set_param(0, 'RTWDataReferencesMinSize',10) slbuild('basic') tlc -r basic_grt_rtw/basic.rtw basic.tlc -v
最初の行により、ビルド フォルダー 'basic_grt_rtw'
に .rtw
ファイルが生成されます。前の手順でファイルを既に生成したため、この手順は不要です。ただし、モデルを変更し、操作を繰り返す必要がある場合には役立ちます。
2 行目により、ファイル basic.tlc
で TLC が実行されます。-r
オプションは、ファイル basic.rtw
を .rtw
ファイルとして使用するように TLC に指示しています。-r
と入力ファイル名をスペースで区切る必要があることに注意してください。-v
オプションは、アクティビティのレポートで詳細に出力するように TLC に指示しています。
このコマンド ペアの出力は以下のとおりです。(日付は異なります)。
My model is called basic. It was generated on Wed Jun 22 20:51:11 2005. It has 1 output(s) and 0 continuous state(s).
また、(たとえば、Constant ブロックの値として rand(2,2)
を使用して) モデルを変更してから、プロセスを繰り返して TLC の出力の変化を確認することもできます。