このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
コード インターフェイスのパッケージ化
生成されたコードのインターフェイスを再利用可能な関数または再利用できない関数または C++ クラスとしてパッケージ化する
モデル コンフィギュレーション ペイン: [コード生成] / [インターフェイス]
説明
[コード インターフェイスのパッケージ化] パラメーターは、生成された C または C++ インターフェイス コードをコード ジェネレーターでパッケージ化する方法を指定します。
設定
再利用できない関数
(既定値) | 再利用可能な関数
| C++ class
再利用できない関数
再利用できないコードを生成します。コード ジェネレーターは、モデル データ構造体を静的に割り当てます。生成されたエントリポイント関数はデータ構造体に直接アクセスします。
[言語] が
[C]
に設定されている場合は、これが既定の設定です。この値を選択すると、[クラシック コール インターフェイス] パラメーターが有効になります。
再利用可能な関数
再呼び出し可能で再利用可能なマルチインスタンス コードを生成します。
生成された
ソース ファイルに、モデルのそれぞれのインスタンスに対してモデルのデータを動的に割り当てる割り当て関数が格納されています。model
.c生成コードでは、リアルタイム モデルのデータ構造体をエントリ ポイント関数の引数として参照渡しします。
コード ジェネレーターは、リアルタイム モデル データ構造体を
ヘッダー ファイルにエクスポートします。model
.h
[再利用可能な関数]
を選択すると、以下のようになります。[マルチインスタンス コードのエラーの診断] パラメーターが有効になります。
Function-Call Subsystem のために生成されたコードは変更されません。
[システム ターゲット ファイル] パラメーターが ERT ベースのシステム ターゲット ファイルに設定されている場合は、以下のようになります。
モデルがサービス コード インターフェイスで構成されている場合、この
[再利用可能な関数]
設定はサポートされません。[再利用可能な関数]
を選択すると、[モデルの初期化に動的メモリ割り当てを使用] パラメーターおよび [ルートレベル I/O を以下として渡す] パラメーターが有効になります。[モデルの初期化に動的メモリ割り当てを使用] を使用して、割り当て関数を生成するかどうかを制御します。
[ルートレベル I/O を以下として渡す] を使用して、ルートレベルの入力および出力引数を再利用可能なモデルのエントリポイント関数に渡す方法を制御します。関数に渡されるリアルタイム モデルのデータ構造体に引数を含めるか、個別に引数を渡すか、入力構造体と出力構造体への参照として引数を渡すことができます。
以下を行う場合、静的
ert_main.c
モジュールを生成する際に[再利用可能な関数]
を選択できます。[モデルの初期化に動的メモリ割り当てを使用] パラメーターを選択する。
[ルートレベル I/O を以下として渡す] パラメーターを
[モデル データ構造体の一部]
に設定する。
以下を行う場合、
[再利用可能な関数]
を選択できません。関数
model_step
のプロトタイプをカスタマイズする。サブシステムの [別々のデータをもつ関数] ブロック パラメーターを選択する。
次のようなサブシステムを使用する:
ソースを共有する複数の端子をもつ。
サブシステムの複数のインスタンスが使用する 1 つの端子があり、また、サンプル時間、データ型、実数/複素数、フレーム ステータス、次元がインスタンス全体で異なっている。
グローバル信号としてマークされた出力をもつ。
各インスタンスに対し、名前またはパラメーター設定が異なる同じブロックを含んでいる。
C++ class
モデルの C++ クラス インターフェイスを生成します。生成されたインターフェイスは必要なモデル データを C++ クラスの属性にカプセル化し、モデル エントリ ポイント関数を C++ クラスのメソッドにカプセル化します。
この値を有効にするには、[言語] パラメーターを
C++
に設定します。[言語] が[C++]
に設定されている場合、この値が既定の設定です。サービス コード インターフェイスで構成されたモデルに対しては、このパラメーター設定は意味をもたないためサポートされません。
[C++ クラス]
を選択すると、以下のようになります。[マルチインスタンス コードのエラーの診断] パラメーターが有効になります。
[クラシック コール インターフェイス] パラメーターが無効になります。
ヒント
コード ジェネレーターは、エントリポイント関数を
にエクスポートします。エントリポイント関数をユーザーが記述したコードから呼び出すには、model
.h#include
命令をコードに追加します。model
.h[再利用可能な関数]
を選択すると、コード ジェネレーターは以下を行います。[再利用可能な関数]
を選択すると、コード ジェネレーターは以下を行います。リアルタイム モデル オブジェクト (
) へのポインターを生成します。model
_Mコンパイルするが再呼び出し可能でないコードを生成できます。たとえば、信号、DWork 構造体またはパラメーター データが
Auto
以外のストレージ クラスをもつ場合、コード ジェネレーターはグローバル データ構造体を生成します。
推奨設定
アプリケーション | 設定 |
---|---|
デバッグ | 影響なし |
トレーサビリティ | 影響なし |
効率性 | [再利用可能な関数] または [C++ class] |
安全対策 | 影響なし |
プログラムでの使用
パラメーター: CodeInterfacePackaging |
型: 文字ベクトル |
値: 'C++ class' | 'Nonreusable function' | 'Reusable function' |
既定の設定: TargetLang が 'C' に設定された場合は 'Nonreusable function' 、TargetLang が 'C++' に設定された場合は 'C++ class' |
バージョン履歴
R2014a で導入
参考
トピック
- モデル コンフィギュレーション パラメーター: コード生成インターフェイス
- 生成された C 関数インターフェイスをモデルのエントリポイント関数用に構成
- 最上位モデルからの再呼び出し可能なコードの生成
- 複数のモデルまたはモデルの複数のインスタンスに対して生成されたコードの結合
- 最上位モデルからの再呼び出し可能なコードの生成
- モデルまたはサブシステムのコードへの C++ クラス インターフェイスの生成
- Interactively Configure C++ Interface (Embedded Coder)
- サブシステムからの再呼び出し可能なコードの生成
- コード再利用のための S-Function
- Static Main Program Module (Embedded Coder)
- 生成された C 関数インターフェイスをモデルのエントリポイント関数用に構成 (Embedded Coder)
- 非バーチャル サブシステムのモジュラー関数コードの生成 (Embedded Coder)
- 外部コード ベースにエクスポートするコンポーネント ソース コードの生成 (Embedded Coder)