Main Content

ライブラリ モデル内のカスタム コードの構成

C または C++ で記述されたカスタム コードを、Simulink® モデルの Stateflow® チャートと統合できます。カスタム コードと Stateflow チャートの間でデータと関数を共有することにより、Stateflow の機能を拡張し、既存のコードを活用できます。詳細については、Stateflow チャートでのカスタム コードの再利用を参照してください。

カスタム コード設定のシミュレーション用構成

シミュレーション中にライブラリ モデルがカスタム コードにアクセスするように構成するには、[コンフィギュレーション パラメーター] ダイアログ ボックスの [シミュレーションのカスタム コード] ペインを使用します。

  1. [モデル化] タブの [設計] で、[シミュレーションのカスタム コード] を選択します。

    The Simulation Custom Code pane of the Configuration Parameters dialog box, showing the default settings for a library model.

  2. ライブラリ モデルは、メイン モデルからのカスタム コード設定を継承するか、シミュレーションにローカルなカスタム コード設定を使用できます。

    • メイン モデルからカスタム コード設定を継承するには、[ローカルなカスタム コード設定を使用 (メイン モデルから継承しません)] をオフにします。

    • シミュレーションにローカルなカスタム コード設定を使用するには、[ローカルなカスタム コード設定を使用 (メイン モデルから継承しません)] をオンにします。

    詳細については、ローカルなカスタム コード設定を使用 (メイン モデルから継承しません) (Simulink)を参照してください。

  3. シミュレーション用にライブラリ モデルに固有のカスタム コード設定を追加するには、[コード情報] タブで次のパラメーターを指定します。

    • インクルード ヘッダー — 生成される model.h ヘッダー ファイルの冒頭にインクルードするコード (生成コード内のカスタム関数やデータを宣言する) を入力します。このコード行は生成されるすべてのソース コード ファイルの冒頭に配置され、すべての生成コードから認識されます。たとえば、このパラメーターを使用して、#include ステートメントと #define ステートメントを入力できます。カスタム ヘッダー ファイルをインクルードする場合は、ファイル名を二重引用符で囲む必要があります。詳細については、ヘッダーを含める (Simulink)を参照してください。

      メモ

      • このパラメーターで指定するコードには、extern int xextern void myfun(void) など、変数や関数の extern 宣言をインクルードすることが可能です。ただし、int xvoid myfun(void) などのグローバル変数や関数定義は、その定義が生成コードのソース ファイルに複数回出現するため、リンク エラーを引き起こします。

      The Simulation Target Custom Code "Include headers" tab has three lines of code: #include "util.h", #include "table.h", and #include "extra functions.h"

    • インクルード ディレクトリ — コンフィギュレーション パラメーターに直接的に、またはコンパイルされるターゲットに間接的にインクルードするカスタム ヘッダー、ソース、およびライブラリの各ファイルを含むフォルダー パスのリストを入力します。エントリを区切るには、改行、スペース、またはセミコロンを使用できます。詳細については、インクルード ディレクトリ (Simulink)を参照してください。

      The Simulation Target Custom Code "Include directories" tab shows five lines: src, includes, includes/utilities, lib, "lib/additional libraries"

    • ソース ファイル — コンパイルしてターゲットにリンクするソース ファイルのリストを、改行、スペース、またはセミコロンで区切って入力します。詳細については、ソース ファイル (Simulink)を参照してください。

      The Simulation Target Custom Code "Source files" tab shows three lines: util.c, table.c, and "extra functions.c"

    • ライブラリ — ターゲットにリンクするカスタム オブジェクト コードを含むスタティック ライブラリのリストを、改行、スペース、またはセミコロンで区切って入力します。詳細については、ライブラリ (Simulink)を参照してください。

      The Simulation Target Custom Code "Libraries" tab shows two lines: addons.dll, and library.dll

    • 定義 — 生成コードに追加するプリプロセッサ マクロ定義のリストをスペースで区切って入力します。詳細については、定義 (Simulink)を参照してください。

    • コンパイラ フラグ — カスタム コードのコンパイル時にコンパイラのコマンド ラインに追加する追加のコンパイラ フラグを入力します。詳細については、コンパイラ フラグ (Simulink)を参照してください。

    • リンカー フラグ — カスタム コードのリンク時にリンカーのコマンド ラインに追加する追加のリンカー フラグを入力します。詳細については、リンカー フラグ (Simulink)を参照してください。

    これらの設定は、[ローカルなカスタム コード設定を使用 (メイン モデルから継承しません)] がオンの場合にのみ適用されます。

メモ

ライブラリ モデル内の Stateflow ブロックのみを対象としたシミュレーションはできません。メイン モデル内のライブラリ ブロックへのリンクを作成してから、メイン モデルをシミュレートしなければなりません。

コード生成用のカスタム コード設定の構成

コード生成中にライブラリ モデルがカスタム コードにアクセスするように構成するには、[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成のカスタム コード] ペインを使用します。

  1. [モデル化] タブの [設計] で、[シミュレーションのカスタム コード] を選択します。

  2. [コード生成のカスタム コード] ペインを開きます。

    The Code Generation Custom Code pane of the Configuration Parameters dialog box, showing the default settings for a library model.

  3. コード生成時に、ライブラリ モデルは、シミュレーションに使用したものと同じカスタム コード設定、または固有のカスタム コード設定を使用できます。

    • シミュレーションに使用したものと同じカスタム コード設定を使用するには、[シミュレーション ターゲットと同じカスタム コードの設定を使用] をオンにします。カスタム コード設定のシミュレーション用構成の説明に従って、[シミュレーションのカスタム コード] でカスタム コード設定を指定します。

    • 固有のカスタム コード設定を使用するには、[シミュレーション ターゲットと同じカスタム コードの設定を使用] をオフにします。[コード情報] タブで、コード生成用のカスタム コード設定を指定します。このタブのパラメーターの説明については、カスタム コード設定のシミュレーション用構成を参照してください。

    詳細については、シミュレーション ターゲットと同じカスタム コードの設定を使用 (Simulink Coder)およびモデル コンフィギュレーション パラメーターを使用した外部コードの統合 (Simulink Coder)を参照してください。

関連するトピック