Target Language Compiler を使用する理由
Simulink® モデルから ANSI® C または C++ コードを生成するだけであれば、ファイルを Target Language Compiler 用に準備する方法は知らなくてかまいません。出力のカスタマイズが必要な場合は、Target Language Compiler を実行する必要があります。Target Language Compiler を使用して、以下のことを実行できます。
- システム ターゲット ファイルで指定されたオプションのセットをカスタマイズ。 
- S-Function ブロック用にコードをインライン化。 
- 追加またはさまざまなタイプのファイルの生成。 
MATLAB Function ブロックと Embedded Coder® 製品には、コードのカスタマイズを容易にするさまざまな方法が用意されています。TLC ファイルを記述しなくても、それらを使用して必要なことを実現できる場合もあります。ただし、S-Function をインライン化する場合は TLC ファイルを準備する必要があります。
以下のセクションを参照してください。
出力のカスタマイズ
Target Language Compiler を使用してカスタマイズされた出力を生成するには、それらの関数がブロックで実行される方法、操作するデータ型、model.rtw
メモ
それを行う機能がありますが、フォルダー matlabroot/rtw/c/tlc
S-Function のインライン化
Target Language Compiler では、かなり自由に生成コードを変更、最適化、拡張できます。TLC の最も重要な機能の 1 つは、独自のアルゴリズム、デバイス ドライバー、およびカスタム ブロックを Simulink モデルに追加するために記述する S-Function をインライン化できることです。
S-Function を作成するには、適切に定義されたアプリケーション プログラム インターフェイス (API) の後にコードを記述します。既定では、Target Language Compiler は、これと同じ API を使用してそれらを呼び出すインラインでない S-Function のコードを生成します。この一般化されたインターフェイスでは、モデル内の各 S-Function ブロックに対する SimStruct という大規模なデータ構造体がインスタンスごとに保持されるため、かなりの量のオーバーヘッドが生じます。さらに、S-Function 内のメソッド (関数) を呼び出すたびに追加の実行時オーバーヘッドが発生します。このオーバーヘッドは、Target Language Compiler を使用して S-Function をインライン化すると排除できます。そのためには、組み込みブロックと同じように S-Function のソース コードを生成する sfunction_name.tlc
高度なストレージ クラスの定義
入れ子にされた構造体などの特定のデータ レイアウトについては、ストレージ クラスの標準のタイプである Unstructured や FlatStructure では生成できません。他のタイプのデータを生成する場合は "高度なストレージ クラス" を定義できます。高度なストレージ クラスを作成するには、TLC プログラミングを理解し、カスタム ストレージ クラス デザイナーの特別な詳細モードを使用する必要があります。詳細については、ストレージ クラスの TLC コードの記述によるデータ表現の詳細な制御を参照してください。このサポートには Embedded Coder ライセンスが必要であることに注意してください。