このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
コード マッピング エディター – C
説明
コード マッピング エディターは、モデル内のデータ要素をコード生成用に構成できるグラフィカル インターフェイスです。モデル参照階層内の各モデルに独自のコード マッピングがあります。モデルのデータ要素の各カテゴリをモデル全体で特定のストレージ クラスに関連付けます。その後、必要に応じて、特定のデータ要素に対するそれらの設定をオーバーライドします。
ストレージ クラスでは、コード ジェネレーターが関連付けられたデータのコードを生成するときに使用する外観や場所などのプロパティを定義します。
コード生成用にデータ要素や関数を構成するには、コード マッピング エディターに表示されるタブを使用します。
データの既定の設定
入力端子
出力端子
パラメーター
データ ストア
信号/状態
モデルの要素に対して構成できる追加のコード マッピング プロパティがある場合、アクティブなテーブルの行を選択して アイコンをクリックすることで、それらのプロパティを構成できます。
コード生成用に信号を構成する前に、信号をモデル コード マッピングに追加します。コード マッピングの信号を追加または削除するには、信号線の上または下に表示される省略記号で一時停止してアクション バーを開きます。[信号の追加] ボタンまたは [信号の削除] ボタンをクリックします。これらのボタンは、コード マッピング エディターの [信号/状態] タブでも使用できます。
コード マッピング エディター – C を開く
次のいずれかを行います。
Simulink® Coder™ アプリを開きます。[C コード] タブで、[コード インターフェイス] 、 [既定のコード マッピング] を選択するか、[コード インターフェイス] 、 [個々の要素コードのマッピング] を選択します。
Simulink Coder アプリを開きます。[C コード] タブで、Simulink エディター ウィンドウの左下隅にある [コード マッピング] タブをクリックします。
Simulink エディター ウィンドウのモデル キャンバスで、右下隅にあるパースペクティブ コントロールをクリックし、[コード] を選択します。次に、[コード マッピング] タブをクリックします。
例
ルートレベルの Inport ブロックと Outport ブロックについてのコード生成の構成
ルートレベルの Inport ブロックと Outport ブロックについてのモデル全体のコード生成を構成します。大量のデータを使用する大規模なモデルの場合は特に、既定の構成を適用すると時間を節約できます。既定のマッピングを適用した後、個々のデータ要素のマッピングを調整できます。
外部コード ファイル
exDblFloat.h
を書き込み可能なフォルダーにコピーします。copyfile(fullfile(matlabroot,'toolbox','rtw','rtwdemos','exDblFloat.h'));
モデル
rtwdemo_configrpinterface
を開きます。モデルのコピーをファイルexDblFloat.h
と同じ場所に保存します。Simulink Coder アプリを開きます。[C コード] タブにコード マッピング エディターも表示されます。
生成ファイル rtwdemo_configrpinterface.h
および rtwdemo_configrpinterface.c
で入力端子と出力端子のグローバル変数を宣言および定義するようにコード ジェネレーターを構成します。
[C コード] タブで、[コード インターフェイス] 、 [既定のコード マッピング] を選択します。
[データの既定の設定] タブで、[Inports and Outports] の下にある [入力端子] の行を選択します。次に、ストレージ クラスを
[ImportedExternPointer]
に設定します。[出力端子] のストレージ クラスを[ExportedGlobal]
に設定します。選択した 2 つのデータ要素のカテゴリについて、エディターで既定のストレージ クラス設定が更新されます。
コード マッピング エディターで、[入力端子] タブをクリックします。各 Inport のストレージ クラスは
Auto
に設定されています。これは、コード ジェネレーターが最適化を目的として関連するコードの表現を削除または変更する可能性があることを意味しています。最適化が不可能な場合、コード ジェネレーターはモデルの既定の構成を適用します。入力端子に対して既定の構成であるストレージ クラス
ImportedExternPointer
を強制的に使用するようにコード ジェネレーターを構成します。Ctrl キーを押しながら入力端子を選択します。選択したいずれかの入力端子に対して、ストレージ クラスを[Model default: ImportedExternPointer]
に設定します。選択した入力端子について、エディターでストレージ クラス設定が更新されます。モデルのルートの出力端子に対してストレージ クラス
ExportedGlobal
を強制的に使用するようにコード ジェネレーターを構成します。[出力端子] タブをクリックします。Out2
の行を選択します。次に、ストレージ クラスを[Model default: ExportedGlobal]
に設定します。
既定の構成の設定をオーバーライドする必要がある場合など、個々のデータ要素のプロパティを構成するには、それぞれのデータ要素のタイプに対応するタブを使用します。この例では、Inport ブロック In1
の既定のストレージ クラス設定をオーバーライドします。
既定では、入力端子と出力端子の変数に対して、コード ジェネレーターはモデルの Inport ブロックまたは Outport ブロックの名前に基づいて名前を付けます。ストレージ クラス設定が Auto
以外のデータ要素を構成する場合、ストレージ クラス プロパティ [識別子] を設定することで、個々の要素に対するその既定の設定をオーバーライドできます。このプロパティを使用すると、モデルの設計を変更することなくコードの識別子を指定できます。
この例では、Inport ブロックと Outport ブロックの [識別子] を設定します。
コード マッピング エディターで、[入力端子] タブをクリックします。
In1
について、ストレージ クラスを[ImportedExtern]
に設定します。各入力端子の行を選択します。次に、
アイコンをクリックします。[識別子] プロパティを次のように設定します。
In1
をinput1
に設定します。In2
をinput2
に設定します。In3
をinput3
に設定します。In4
をinput4
に設定します。
[出力端子] をクリックします。
出力端子
Out1
を選択します。アイコンをクリックして、[識別子] プロパティを
output
に設定します。
コードを生成し、Inport ブロックと Output ブロックについての生成されたコードが想定どおりであることを確認します。次に例を示します。
rtwdemo_configrpinterface_private.h
に次の宣言が含まれます。/* Exported data declaration */ /* Data with Imported storage */ extern real_T input1; /* '<Root>/In1' */ extern real_T input2; /* '<Root>/In2' */ extern real_T input3; /* '<Root>/In3' */ extern real_T input4; /* '<Root>/In4' */
rtwdemo_configrpinterface.h
に出力構造体ExtY_rtwdemo_configrpinterfac_T
のフィールドとしてoutput
がリストされます。/* External outputs (root outports fed by signals with default storage) */ typedef struct { real_T output; /* '<Root>/Out1' */ } ExtY_rtwdemo_configrpinterfac_T;
次のコード フラグメントは、サンプル レート 1 秒の生成されたエントリポイント ステップ関数で
In2
を表す変数input2
が使用されていることを示しています。/* Model step function for TID1 */ void rtwdemo_configrpinterface_step1(void) /* Sample time: [1.0s, 0.0s] */ { /* Lookup_n-D: '<Root>/Table1D' incorporates: * Inport: '<Root>/In2' */ rtwdemo_configrpinterface_B.Table1D = look1_binlcpw(input2, rtwdemo_configrpinterfac_ConstP.Table1D_bp01Data, rtwdemo_configrpinterfac_ConstP.Table1D_tableData, 10U); . . .
関連する例
- モデル インターフェイス要素の C コード生成の構成
- データ構成アプローチの選択
- 生成されたコードでのデータ表示を制御するストレージ クラスの選択
- 生成された C 関数インターフェイスをモデルのエントリポイント関数用に構成
パラメーター
バージョン履歴
R2020b で導入