Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

コード インターフェイスのパッケージ化

生成されたコードのインターフェイスを再利用可能な関数または再利用できない関数または C++ クラスとしてパッケージ化する

モデル コンフィギュレーション ペイン: [コード生成] / [インターフェイス]

説明

[コード インターフェイスのパッケージ化] パラメーターは、生成された C または C++ インターフェイス コードをコード ジェネレーターでパッケージ化する方法を指定します。

設定

再利用できない関数 (既定値) | 再利用可能な関数 | C++ class
再利用できない関数

再利用できないコードを生成します。コード ジェネレーターは、モデル データ構造体を静的に割り当てます。生成されたエントリポイント関数はデータ構造体に直接アクセスします。

[言語][C] に設定されている場合は、これが既定の設定です。

この値を選択すると、[クラシック コール インターフェイス] パラメーターが有効になります。

再利用可能な関数

再呼び出し可能で再利用可能なマルチインスタンス コードを生成します。

  • 生成された model.c ソース ファイルに、モデルのそれぞれのインスタンスに対してモデルのデータを動的に割り当てる割り当て関数が格納されています。

  • 生成コードでは、リアルタイム モデルのデータ構造体をエントリ ポイント関数の引数として参照渡しします。

  • コード ジェネレーターは、リアルタイム モデル データ構造体を model.h ヘッダー ファイルにエクスポートします。

[再利用可能な関数] を選択すると、以下のようになります。

  • [マルチインスタンス コードのエラーの診断] パラメーターが有効になります。

  • Function-Call Subsystem のために生成されたコードは変更されません。

[システム ターゲット ファイル] パラメーターが ERT ベースのシステム ターゲット ファイルに設定されている場合は、以下のようになります。

  • モデルがサービス コード インターフェイスで構成されている場合、この [再利用可能な関数] 設定はサポートされません。

  • [再利用可能な関数] を選択すると、[モデルの初期化に動的メモリ割り当てを使用] パラメーターおよび [ルートレベル I/O を以下として渡す] パラメーターが有効になります。

    • [モデルの初期化に動的メモリ割り当てを使用] を使用して、割り当て関数を生成するかどうかを制御します。

    • [ルートレベル I/O を以下として渡す] を使用して、ルートレベルの入力および出力引数を再利用可能なモデルのエントリポイント関数に渡す方法を制御します。関数に渡されるリアルタイム モデルのデータ構造体に引数を含めるか、個別に引数を渡すか、入力構造体と出力構造体への参照として引数を渡すことができます。

  • 以下を行う場合、静的 ert_main.c モジュールを生成する際に [再利用可能な関数] を選択できます。

    • [モデルの初期化に動的メモリ割り当てを使用] パラメーターを選択する。

    • [ルートレベル I/O を以下として渡す] パラメーターを [モデル データ構造体の一部] に設定する。

  • 以下を行う場合、[再利用可能な関数] を選択できません。

    • ルートレベル 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 で導入