コード インターフェイスとコード インターフェイス仕様
生成されたアプリケーションとコンポーネントのコードは、生成された次のコード インターフェイスを通じてターゲット環境サービスと対話します。
ターゲット ソフトウェアで呼び出すことができるエントリポイント関数 (スケジューラなど)
ターゲット ソフトウェアの関数呼び出し (プラットフォーム サービス関数など)
次の図は、ターゲット実行環境におけるコンポーネントとプラットフォーム サービス間の対話の例を示しています。

矢印は関数インターフェイスの呼び出しの方向を示します。ターゲットの関数スケジューラは、コンポーネントのエントリポイント関数 Initialize、F1、F2、および Terminate を呼び出します。コンポーネントはターゲット プラットフォーム サービスを呼び出し、入力の読み取り、出力の書き込み、呼び出し可能な関数間でのデータ転送、および時間値の取得を行います。
ターゲット環境サービスと対話できるコードをコード ジェネレーターで生成するには、次の組み合わせを使用してサービス インターフェイスの要件をコード ジェネレーターに認識させる必要があります。
最上位モデルのモデル要素
コード インターフェイス構成
モデル要素をコード インターフェイス構成で定義されているインターフェイスに関連付けるコード マッピング
下図は、次の関係を示しています。
ターゲット環境サービス インターフェイスの要件 (展開プロセスへの入力)
コード インターフェイス仕様 (ターゲット環境インターフェイスの要件をコード ジェネレーターに伝えるために、どのように Simulink® および Embedded Coder® のツールを使用するか)
ターゲット環境のコードの統合と実行 (コード ジェネレーターの出力に対する処理)

関数やルートレベルの入力端子および出力端子など、インターフェイスを表すモデル要素を、コード インターフェイス構成ファイルで定義されたコード インターフェイスにマッピングすることで、C または C++ のインターフェイス コードを生成する方法をコード ジェネレーターに知らせます。たとえば、Simulink エディターで、ルートレベルの Inport ブロックまたは In Bus Element ブロックを使用して、ターゲット プラットフォームの受信側サービスからデータを読み取るためのインターフェイスをモデル化できます。アプリケーションの展開には、データ通信要件を処理するカスタム ブロックを含める必要がある場合もあります。コンポーネントの展開用に最上位モデルを設計する際には、生成コードに関するモデリング ガイドラインの推奨モデリング ガイドラインに従ってください。
コード ジェネレーターでは、データとサービスの 2 つのタイプのコード インターフェイスがサポートされています。コード マッピング エディターまたはコード マッピング プログラミング インターフェイスを使用して、Embedded Coder アプリでマッピングを設定します。
C コード インターフェイスの場合:
コード マッピングでは、Embedded Coder ディクショナリで定義されているコード インターフェイスの選択が反映されます。プロジェクトまたは組織で、ターゲット実行環境のインターフェイス要件に沿ったコード インターフェイス構成を定義します。その後、その環境に展開する予定の各モデルについて、モデルをその構成に関連付けます。
プロジェクト モデルの展開目的に応じて、データまたはサービスのコード インターフェイス構成を作成および適用できます。どちらのタイプのコード インターフェイスでも、呼び出し可能なエントリポイント インターフェイスの各タイプを関数カスタマイズ テンプレートとして構成します。これにより、コード ジェネレーターが関数のコードをどのように生成するかが定義されます。
次の表では、Embedded Coder ディクショナリで定義できる 2 つのタイプの C コード インターフェイスを比較します。
データ インターフェイス | R2022b において: サービス インターフェイス |
|---|---|
| アプリケーションの展開用。 | コンポーネントの展開用。 |
| 各インターフェイスをストレージ クラスとして構成します。これにより、生成されたコード内でのデータ要素の外観と配置が指定されます。ストレージ クラスは直接アクセス データ通信を適用します。 | 各インターフェイスに対して、生成されたコードの関数プロトタイプ情報とデータ通信方法の要件を指定します。ターゲット プラットフォームの要件に応じて、直接アクセス、実行外、または実行中のデータ通信用のインターフェイスを構成できます。 |
| コード ジェネレーターでは、コードを生成するときに制約を適用します。これにより、特定のターゲット環境で使用するためのコードの統合が簡単になります。制約の詳細については、Service Interface Constraintsを参照してください。 |
データ インターフェイスを使用してコンポーネントを展開用に構成する必要がある場合は、Component Deployment Guidelines for Embedded Coder サポート パッケージを参照してください。ガイドラインに従ってコンポーネント モデルの設計と構成を行うと、コード ジェネレーターは、特定のターゲット プラットフォームのインターフェイス要件に沿ったコードを生成します。
C++ コード生成の場合、データ コード インターフェイスを使用するようにモデルを構成します。コード インターフェイス構成は作成しません。Embedded Coder アプリで、最上位モデルで表されている関数をメソッド プロトタイプにマッピングします。最上位モデルで表されているデータ要素を、データの可視性およびメンバー アクセス関数の設定にマッピングします。