Main Content

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

ストレージ クラスの TLC コードの記述によるデータ表現の詳細な制御

Embedded Coder ディクショナリまたはカスタム ストレージ クラス デザイナーでプロパティを使用して独自のストレージ クラスを作成しても、生成コードにおけるデータ表現を制御するための要件を満たさない場合は、コードに対するストレージ クラスの効果を明示的に制御する TLC コードを記述できます。たとえば、任意に入れ子にされた構造体を出力するストレージ クラスを作成するには、TLC コードを記述しなければなりません。カスタム ストレージ クラス デザイナーでは、これらの高度なストレージ クラスは [タイプ][Other] に設定されます。このようなストレージ クラスは Embedded Coder ディクショナリでは作成できないため、それらのストレージ クラスをコード マッピング エディターで使用するには、パッケージ内のコード生成定義の参照の説明に従って、ストレージ クラスを含むパッケージを参照するようにモデルのディクショナリを構成しなければなりません。

例については、Generate Code That Dereferences Data from a Literal Memory Addressを参照してください。TLC コードの一般的な情報については、Target Language Compiler を使用する理由を参照してください。

ストレージ クラスのカスタム属性クラスの作成

ストレージ クラスのユーザーによるプロパティ値の指定を許可で説明しているように、ストレージ クラスのユーザーは、インスタンス固有のプロパティで各データ項目に対するストレージ クラスの効果を制御できます。たとえば、組み込みのストレージ クラス ExportToFile には、[ヘッダー ファイル][定義ファイル] など、複数のインスタンス固有のプロパティがあります。

[タイプ][Other] に設定されたストレージ クラスを作成する場合、カスタム ストレージ クラス デザイナーに組み込まれていない独自のインスタンス固有のプロパティを追加するには、パッケージに対する "カスタム属性クラス" を作成します。カスタム属性クラスは、Simulink.CustomStorageClassAttributes のサブクラスとして作成する MATLAB® クラスです。カスタム属性クラスに追加した各プロパティは、ストレージ クラスのユーザーにインスタンス固有のプロパティとして表示されます。

独自のカスタム属性クラスを作成するには、データ クラスの定義を参照してください。

ストレージ クラスの TLC コードの記述

ストレージ クラスの効果を制御するには、生成するコードをデータ項目ごとに指定する TLC コードを記述します。

  1. パッケージ フォルダー (+myPackage など) に tlc フォルダーを作成します。

  2. フォルダー matlabroot/toolbox/rtw/targets/ecoder/csc_templates (開く) から tlc フォルダーに TLC テンプレート (TEMPLATE_v2.tlc など) をコピーします。

  3. テンプレート ファイルのコメントに従って TLC コードを記述します。生成コードでの各データ項目の宣言方法、定義方法、アクセス方法 (値または参照) などを指定する方法がコメントとして記述されています。

カスタム ストレージ クラス デザイナーを使用したストレージ クラスの作成

パッケージでストレージ クラスを作成するには、カスタム ストレージ クラス デザイナーを詳細モードで開きます。

  1. コマンド プロンプトで、次のように入力します。

    cscdesigner -advanced
  2. パッケージを選択し、ストレージ クラスを作成します。

  3. ストレージ クラスの [タイプ]Other に設定します。[他の属性] ペインで、TLC ファイルの名前とカスタム属性クラスの名前を指定します。

  4. [他の属性] ペインでプロパティを設定します。

    • グループ化: このオプションは、複数のデータ項目を生成コードで単一のエンティティにまとめる場合に選択します。たとえば、組み込みのストレージ クラス BitFieldStruct は、複数のデータ項目を単一の構造体変数に集約できるためグループ化されています。

    • TLC ファイル名: TLC ファイルの名前を入力します。カスタム ストレージ クラス デザイナーでは、ファイルがパッケージの tlc フォルダーに存在することが前提となるため、ファイル パスではなくファイルの名前のみを指定します。

    • CSC 属性クラス名: (オプション) カスタム属性クラスを作成した場合に、パッケージ名も含めたクラスの完全な名前を入力します。たとえば、myPackage.myCustomAttsClass のように指定します。詳細については、ストレージ クラスのカスタム属性クラスの作成を参照してください。

  5. [一般] ペインと [コメント] ペインで、残りのプロパティの値を指定します。

ストレージ クラスをデータ オブジェクトに適用するには、パッケージからデータ オブジェクトを作成し、ストレージ クラスを使用するようにオブジェクトを構成します。データ オブジェクトへのカスタム ストレージ クラスの適用の詳細については、ストレージ クラスの適用を参照してください。モデルのストレージ クラスをコード マッピング エディターを使用して適用するには、モデルで使用する Embedded Coder ディクショナリでパッケージを参照するように構成しなければなりません。パッケージを参照すると、ストレージ クラスが Embedded Coder ディクショナリに表示され、コード マッピング エディターで使用できるようになります。詳細については、パッケージ内のコード生成定義の参照を参照してください。

関連するトピック