Real-Time Workshop User's Guide    

システムターゲットファイルの構造

この節では、システムターゲットファイルの構造と内容を説明します。この節を読むと、Real-Time Workshopに付属するシステムターゲットファイルを参照したい場合があります。これらのファイルのほとんどは、matlabroot\rtw\cのターゲット固有のディレクトリに格納されています。その他のターゲットシステムファイルは、matlabroot\toolbox\rtw\targets\rtwin\rtwinおよびmatlabroot\toolbox\rtw\targets\xpc\xpcに格納されています。

システムターゲットファイルを作成または修正する前に、Target Language Compilerでの作業に関する知識を習得する必要があります。Target Language Compiler Reference Guideは、言語の機能と文法を説明しています。

図 17-2は、システムターゲットファイルの一般的な構造を示しています。

図 17-2: システムターゲットファイルの構造

ブラウザのコメント

この節はオプションです。ファイルの先頭にコメント行を置いて、System Target File Browserでシステムターゲットファイルを識別します。これらの行は、ブラウザに対してのみ意味があります。コード生成中に、Target Language Compilerはこれらをコメントとして取り扱います。

ブラウザのコメントは、その他のコメントまたはTLCのステートメントの前の、ファイルの先頭に置かなければなりません。

コメントは、つぎの指示文を含みます。

つぎのブラウザの情報コメントは、matlabroot\rtw\c\grt\grt.tlcのものです。

詳細は、「カスタムターゲットをSystem Target File Browserに追加」 を参照してください。

Target Language Compiler構成変数

この節では、コード生成プロセス全体に影響するグローバルなTLC変数を設定します。つぎの変数を設定しなければなりません。

Target Language Compilerプログラムのエントリポイント

コード生成プロセスは、通常codegenentry.tlcから始まります。システムターゲットファイルは、下記のようにcodegenentry.tlcを呼びます。

codegenentry.tlcは、その他のTLCファイルを呼びます。

コード生成プロセスをカスタマイズするには、低レベルのTLCファイルを明示的に呼び出し、ユーザのTLC関数をプロセスの各ステージでインクルードすることができます。ガイドラインについては、Target Language Compiler Reference Guideを参照してください。

RTW_OPTIONSセクション

RTW_OPTIONSセクションは、以下の指示文で区切られます。

RTW_OPTIONSセクションの最初の部分は、rtwoptions構造体の配列を定義します。rtwoptions 構造体のフィールドは、Real-Time Workshopページに表示される変数と関連するユーザインタフェース要素を定義します。rtwoptions構造体配列を使って、Real-Time WorkshopページのCategoryメニューをカスタマイズし、各カテゴリに表示されるオプションを定義し、これらのオプションがどのように処理されるかを指定することができます。

Real-Time Workshopページがオープンすると、rtwoptions構造体配列は、スキャンされ、リストされたオプションが表示されます。各オプションは、カレントのオプションの値を表示する割り当てられたユーザインタフェース要素(チェックボックス、エディットフィールド、ポップアップメニュー、プッシュボタン)によって表わされます。

ユーザインタフェース要素は、利用可能または利用不可能(グレイ色)にすることができます。オプションが利用可能な場合は、ユーザはオプションの値を変更できます。

rtwoptions構造体配列の要素は、Real-Time WorkshopページのCategoryメニューの項目に対応するグループに組織化されます。項目の各グループは、タイプCategoryのヘッダ要素で始まります。Categoryヘッダのdefaultフィールドは、カテゴリ内の残る要素のカウントを含んでいなければなりません。

ヘッダの後には、Real-Time Workshopページに表示されるオプションが続きます。各カテゴリのヘッダの後には、最高7個の要素が続きます。

表 17-2は、rtwoptions 構造体のフィールドをまとめたものです。

つぎの例は、S-Functionターゲットに対するシステムターゲットファイルmatlabroot\rtw\c\rtwsfcn\rtwsfcn.tlcから引用されています。コードは、3つの要素のrtwoptions構造体配列を定義します。最初の(ヘッダ)要素のdefaultフィールドは、2に設定され、ヘッダの後の要素数を示します。

最初の要素は、Real-Time WorkshopページのCategoryメニューにRTW S-function code generation options項目を追加します。rtwoptions(2)およびrtwoptions(3)定義されたオプションは、図 17-3のように表示されます。

図 17-3: S-Functionターゲットに対するコード生成オプション

7個よりも多くのオプションを定義したい場合は、1つのシステムターゲットファイル内で複数のCategoryメニューを定義することが可能です。例題として、Tornadoシステムターゲットファイルmatlabroot\rtw\c\tornado\tornado.tlcを参照してください。

ターゲット固有のrtwoptionsの定義の詳しい例は、matlabroot\rtw\cにあるその他のターゲットディレクトリのシステムターゲットファイルを参照してください。

rtwoptionsの定義のシンタックスを確認するために、MATLABコマンドウィンドウにコピーペーストすることで、MATLABでコマンドを実行することができます。

つぎの表に、rtwoptions構造体のフィールドを示します。

表 17-2: rtwoptionsの構造体のフィールドのまとめ
フィールド名
説明
callback
オプション値が変更されたときに呼び出すTLC関数名
default

オプションのデフォルト値(タイプがPushbuttonの場合は空)

enable
onまたはoffonの場合は、オプションは利用可能な項目として表示され、そうでない場合は利用不可能な項目として表示されます。
makevariable
オプションに関連するテンプレートmakeファイルのトークン(存在する場合)。makevariableは、テンプレートmakeファイルの処理中に展開されます。「テンプレートMakeファイルのトークン」を参照してください。
opencallback
ダイアログがオープンしたときに実行するTLCコード。コードの目的は、オプションの表示値と以前の設定を同期させることです。例として、matlabroot\rtw\c\ert\ert.tlcを参照してください。
popupstrings

typePopupの場合、popupstringsはポップアップメニュー内の項目を定義します。項目は、 "|" (垂直バー)キャラクタによって区切られます。つぎの例は、GRTやその他のターゲットで用いられるFunction managementメニューの項目を定義します。

    ['None|Function splitting|File ', ...
     'splitting|Function and file splitting']
    
prompt
オプションのラベル
tlcvariable
オプションに関連するTLC変数名
tooltip
マウスがその項目上にあるときに表示するヘルプ文字列
type
要素のタイプ: Checkbox, Edit, Popup, Pushbutton, Category.

その他のコード生成オプション

「Target Language Compilerの変数とオプション」は、その他のコード生成オプションを説明しています。読みやすさのために、システムターゲットファイルのConfigure RTW code generation settings セクションでこれらの変数を割り当てることを推奨します。

あるいは、次の形式のステートメント

を、Real-Time WorkshopページのSystem target filenameフィールドに付加することが可能です。

ビルドディレクトリ名

システムターゲットファイルの最後の部分は、rtwgensettings構造体のBuildDirSuffixフィールドを定義します。ビルドプロセスは、BuildDirSuffix文字列を、モデル名に付加して、ビルドディレクトリ名を形成します。たとえば、BuildDirSuffixをつぎのように定義した場合、

ビルドディレクトリ名は、model_mytarget_rtwです。


 ビルドプロセスのカスタマイズ カスタムターゲットをSystem Target File Browserに追加