ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

非ライブラリ チャート内のカスタム C コードへのアクセス

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

タスク 1: シミュレーション ターゲットへのカスタム C コードのインクルード

モデルのシミュレーション ターゲットでカスタム コード オプションを指定します。

  1. [モデル コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。

  2. [モデル コンフィギュレーション パラメーター] ダイアログ ボックスで、[シミュレーション ターゲット] ペインを選択します。

    カスタム コード オプションが表示されます。

  3. サブペインで、カスタム コードを指定します。

    カスタム コードへの相対パスの指定のガイドラインに従ってください。

    • ソース ファイル — 生成されたソース コード ファイルの一番上にインクルードするコード行を入力します。このコード行は、生成された model.c ソース ファイルの一番上、関数の外側に表示されます。

      たとえば、グローバル変数に対する extern int 宣言をインクルードすることができます。

    • ヘッダー ファイル — 生成コード内のカスタム関数やデータを宣言する、生成された model.h ヘッダー ファイルの一番上にインクルードするコード行を入力します。入力したコード行は常に生成ソース コード ファイルの先頭に配置され、すべての生成コードで表示されます。

      メモ

      カスタム ヘッダー ファイルをインクルードする場合は、ファイル名を二重引用符で囲む必要があります。たとえば、#include ''sample_header.h'' は、カスタム ヘッダー ファイルの有効な宣言の例です。

      このオプションで指定したコードは、単一のバイナリにリンクされる複数のソース ファイルに配置されるので、インクルードできる内容には制限が存在します。たとえば、int x; のようなグローバル変数の定義や、以下のような関数本体はインクルードしないでください。

      void myfun(void)
      {
      ...
      }
      

      上記のようなコード行は、シンボル定義が生成コードのソース ファイルに複数配置されることになるので、リンク エラーを引き起こします。ただし、extern int x;extern void myfun(void); など、変数や関数の extern 宣言をインクルードすることは可能です。

    • 初期化関数 — シミュレーションの開始時に 1 回実行されるコード ステートメントを入力します。このコードを使用して、メモリを割り当てる関数や、カスタム コードのその他の初期化を実行する関数を呼び出します。

    • 終了関数 — シミュレーションの終了時に実行されるコード ステートメントを入力します。このコードを使って、カスタム コードにより割り当てられたメモリを解放したり、その他のクリーンアップ作業を行う関数を呼び出します。

    • インクルード ディレクトリ — コンパイルされるターゲットに直接 ([ヘッダー ファイル] オプションを参照) または間接的にインクルードするカスタム ヘッダー ファイルを含むフォルダー パス リストをスペースで区切って入力します。

    • ソース ファイル — コンパイルし、ターゲットにリンクするソース ファイルのリストを入力します。ソース ファイルは、コンマ、空白、または改行で区切ることが可能です。

    • ライブラリ — ターゲットにリンクするカスタム オブジェクト コードを含むスタティック ライブラリのリストをスペースで区切って入力します。

  4. [OK] をクリックします。

ヒント

カスタム コードの変更を含めるためにターゲットをリビルドする場合は、Stateflow エディターで [コード][C/C++ コード][モデルのビルド] を選択します。

タスク 2: モデルのシミュレーション

エディターのツール バーの再生ボタンをクリックして、モデルをシミュレーションします。

コマンド ライン API を使用したシミュレーション オプションの設定の詳細は、コマンド ライン API を使用した、シミュレーションとコード生成のパラメーターの設定 を参照してください。

関連するトピック