主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

システムタゲットファルのカスタマズ

ここでは,システムターゲットファイルの構造体に関する情報,システムターゲットファイルをカスタマイズする場合のガイドライン,骨格となるシステムターゲットファイルを作成するために役立つ基本的なチュートリアルについて説明します。

システムタゲットファルを使用したコド生成の制御

システムタゲットファルは,ビルドプロセスのコド生成段階を制御します。また,システムターゲットファイルを使用すると,エンドユーザーへのターゲットの表示方法も制御できます。システムタゲットファルは次のものを提供します。

  • TLC変数CodeFormatの値など,ビルドプロセスに不可欠な変数の定義

  • コドを生成する最上位TLCプログラムへのメンエントリポント

  • システムタゲットファルブラウザ内に表示されるタゲット情報

  • ターゲット固有のコード生成オプション(およびビルドプロセスに関連するその他のパラメーター)の定義と,それらのオプションやパラメーターを[コンフィギュレーションパラメーター]ダイアログボックスで表示を行うためのメカニズム

  • 他のターゲット(組み込みリアルタイム(ERT)ターゲットなど)からオプションを継承するためのメカニズム

システムターゲットファイルは,目标语言编译器(TLC)ファイルですが,嵌入式MATLAB®コ,ドが含まれていることに注意してください。システムタゲットファルの作成または変更を行うには、TLC および MATLAB 言語に関する実用的な知識が必要です。目标语言编译器およびスクリプトと関数では,tlc言語とmatlab言語の両方の機能および構文にいて説明しています。

この節を参照する場合に,コードジェネレーターに対して用意されているシステムターゲットファイルを参照しなければならない場合もあります。これらのファ电子邮箱ルは,ほとんどの場合,matlabroot/ rtw / c開く)内のタ,ゲット固有のフォルダ,内に格納されています。追加のシステムタゲットファルはmatlabroot/工具箱/ rtw /目标開く)の下に保存されます。

システムタゲットファルの命名および保存場所に関する規則

ターゲットがシステムターゲットファイルブラウザーに表示され,ビルドプロセス内で起動されるには,システムターゲットファイルがMATLABパス上のフォルダーに配置されていなければなりません。フォルダおよびファルの命名規則に記載されているシステムターゲットファイルおよび関連ターゲットファイルの保存場所および命名に関する規則に従ってください。

システムタゲットファル構造体

概要

この節では,システムタ,ゲットファ,ルの構造体と内容を説明します。以下のリストに、システム ターゲット ファイルの一般的な構造体を示します。このリストは、システム ターゲット ファイルの完全なコード リストではないことに注意してください。リストは、システム ターゲット ファイルを構成する各部分からの抜粋で構成されています。

%%---------------------------- %% 头评论部分  %%---------------------------- %% 实时目标% % TMF SYSTLC:例子:my_target。初始注释包含STF浏览器的指令。文档、日期、版权和其他信息请参见. ...%selectfile NULL_FILE…%%---------------------------- %% 薄层色谱配置变量部分  %%---------------------------- %% 分配代码格式,语言,目标类型。% % %分配CodeFormat = " Embedded-C " %分配TargetType =“RT”%分配语言= " C " %% %%---------------------------- %% 薄层色谱程序入口点  %%---------------------------- %% 调用入口点函数。%包括“codegenentry.tlc”%% %%---------------------------- %% (OPTIONAL) Generate Files for Build Process %%---------------------------- %include "mytarget_genfiles.tlc" %%---------------------------- %% RTW_OPTIONS Section %%---------------------------- /% BEGIN_RTW_OPTIONS %% Define rtwoptions structure array. This array defines target-specific %% code generation variables, and controls how they are displayed. rtwoptions(1).prompt = 'example code generation options'; ... rtwoptions(6).prompt = 'Show eliminated blocks'; rtwoptions(6).type = 'Checkbox'; ... %----------------------------------------% % Configure RTW code generation settings % %----------------------------------------% ... %%---------------------------- %% rtwgensettings Structure %%---------------------------- %% Define suffix text for naming build folder here. rtwgensettings.BuildDirSuffix = '_mytarget_rtw' %% Callback compatibility declaration rtwgensettings.Version = '1'; %% (OPTIONAL) target inheritance declaration rtwgensettings.DerivedFrom = 'ert.tlc'; %% (OPTIONAL) other rtwGenSettings fields... ... END_RTW_OPTIONS %/ %%---------------------------- %% targetComponentClass - MATHWORKS INTERNAL USE ONLY %% REMOVE NEXT SECTION FROM USER_DEFINED CUSTOM TARGETS %%---------------------------- /% BEGIN_CONFIGSET_TARGET_COMPONENT targetComponentClass = 'Simulink.ERTTargetCC'; END_CONFIGSET_TARGET_COMPONENT %/

既存のシステムタゲットファルに基づいたカスタムタゲットを作成している場合,targetComponentClassの節(命令BEGIN_CONFIGSET_TARGET_COMPONENTおよびEND_CONFIGSET_TARGET_COMPONENTで囲まれている)を削除しなければなりません。このセクションは,MathWorks社によって開発されるタ,ゲット用に予約済みです。

ヘッダ,コメント

ファaapl . exeルの最初にあるこれらの行は,tlcコメントとして定式化されています。これらの行には,システムターゲットファイルブラウザーとビルドプロセスで必要な情報が格納されています。ブラウザーコメントは,ファイルの最初,つまり,その他のコメントやTLCステートメントより前に配置しなければならないことに注意してください。

コメントの存在によって,コードジェネレーターでシステムターゲットファイルを検出できるようになります。システムターゲットファイルブラウザーの起動時に,コードジェネレーターによってMATLABパスがスキャンされ,形式化されたヘッダーコメントをもつTLCファイルが検出されます。コメントには,以下の命令が含まれます。

  • Systlc:ブラウザ,に表示される記述子。

  • TMF:ビルドプロセス中に使用するテンプレ,トmakefile (TMF)の名前。タゲットが選択されると,[コンフィギュレションパラメタ]ダアログボックスの[コ,ド生成]ペ@ @ンにあるテンプレ,トmakefileフィルドにこのファル名が表示されます。

  • Make:ビルドプロセス中に使用する使コマンド。タゲットが選択されると,[コンフィギュレションパラメタ]ダアログボックスの[コ,ド生成]ペ@ @ンにある[makeコマンド]フィ,ルドにこのコマンドが表示されます。

以下のヘッダ,コメントは,matlabroot/ rtw / c / ert /ert.tlcからのヘッダ,コメントです。

SYSTLC:为嵌入式编码器创建可视化C/ c++解决方案文件\ %% TMF: RTW。MSVCBuild MAKE: make_rtw…

各コメントの最大行数は2行です。

システムタゲットファルでTMFフィルドを指定しない場合でも,ファルは有効になります。パラメタ[TemplateMakefile]の値を変更するには,rtwgensettings。SelectCallbackで指定されるコ,ルバック関数を代わりに使用できます。

rtwgensettings。SelectCallbackで指定されるコ,ルバック関数を使用して,エクスタ,ナルモ,ドパラメ,タ,ExtModeExtModeTransportExtModeMexFileExtModeIntrfLevelを変更することもできます。

ヘッダコメントには,1を超える命令のグルプを指定できます。これらのグループは,それぞれ異なるターゲットコンフィギュレーションとしてシステムターゲットファイルブラウザーに表示されます。上記の例では,コードの最初の2行によって,ERTターゲットの既定のコンフィギュレーションが指定されます。次の2行では,微软®Visual c++®ソリュション(. sln)ファleiルを作成およびビルドする構成を指定します。以下の図には、これらのコンフィギュレーションがシステム ターゲット ファイル ブラウザーにどのように表示されるかが示されています。

カスタマズ済みのヘッダコメントのサンプルは,カスタムタ,ゲットコンフィギュレ,ションの作成を参照してください。

TLCコンフィギュレ,ション変数

システムターゲットファイルのこの節では,全体的なコード生成プロセスに関連するグローバルTLC変数が割り当てられます。

組み込みタ,ゲットでは,ほとんどの場合,ertタ,ゲット(ert.tlc)が使用しているグロ,バルTLC変数設定を使用しなければなりません。特に重要なのは,システムタ,ゲットファルがTLC変数CodeFormat“Embedded-C”値を使用して,tlcファルのRTW_OPTIONSセクションにある,対応するrtwgensettings。本文建立= 'ert.tlc'を使用することです。以下の変数に値が割り当てられていることを確認します。

  • CodeFormat: tlc変数CodeFormatは生成コ,ドの機能を選択します。この変数の“Embedded-C”値はertタ,ゲットによって使用されます。Ertベ,スのタ,ゲットは,CodeFormatの値として“Embedded-C”を指定しなければなりません。この選択は,量産コード,最小のメモリ使用量,静的メモリ割り当ておよび生成されたコードへの簡素化されたインターフェイスを実現するために設計されています。

    TLC変数CodeFormatのその他の値の詳細にいては,製品間でのシステムタゲットファルのサポトの比較を参照してください。

  • 语言:有効な値はCのみです。この値は,コンフィギュレ,ションパラメ,タ,TargetLangによる指定に従ってCまたはc++コ,ド生成をサポ,トします。

  • TargetType:コ,ドジェネレ,タ,では,プリプロセッサ記号RTNRTを定義して,シミュレションコドをリアルタムコドから区別します。これらの記号は,条件付きコンパ。TargetType変数は,RTまたはNRTが定義済みであるかどうかを決定します。

    ほとんどのタ,ゲットは,リアルタ,ムコ,ドを作成するように設計されています。これらのタ,ゲットは,以下のようにTargetTypeを割り当てます。

    %assign TargetType = "RT"

    モデル参照シミュレーションターゲット,高速化されたシミュレーションターゲット,RSimターゲット,s函数ターゲットなど,ターゲットの中には,リアルタイムでは使用しないコードを生成するターゲットもあります。このようなタ,ゲットは,以下のようにTargetTypeを割り当てます。

    %assign TargetType = "NRT"

TLCプログラムのエントリポ▪▪▪▪ントおよび関連する%包括

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

%包括“codegenentry.tlc”

メモ:

codegenentry.tlcおよび下位レベルTLCファ超市ルは,CodeFormatTargetTypeおよび语言が割り当てられていることを前提にしています。codegenentry.tlcを含める前にこれらの変数を設定してください。

タゲット固有のコド生成機能を実装しなければならない場合,tlcファルmytarget_genfiles.tlcをシステムタゲットファルに含めなければなりません。このファ电子邮箱ルには,codegenentry.tlcを呼び出す前後にカスタムTLCコ,ドを実行するためのメカニズムが用意されています。このメカニズムの詳細は,以下を参照してください。

  • メンのコド生成エントリポント後の実行のためのカスタムTLCコドのサンプルは,mytarget_genfiles.tlcの使用を参照してください。

  • ビルドプロセスに関する一般的な情報およびその他のビルドプロセスカスタマイズ化フックに関する情報は,タ,ゲットの開発とビルドプロセスを参照してください。

コ,ド生成プロセスをカスタマcodegenentry.tlcで起動される)を直接呼び出し,プロセスの各ステージに独自のTLC関数を含める方法が挙げられます。この手法は,注意して使用しなければなりません。詳細にいては,薄层色谱文件を参照してください。

codegenentry.tlcによって呼び出される低水準関数は以下のとおりです。

  • genmap.tlc:ブロック名を対応する言語固有のブロックタゲットファルにマップします。

  • commonsetup.tlc:グロ,バル変数を設定します。

  • commonentry.tlc:コ,ドの生成プロセスを開始します。

RTW_OPTIONS節

RTW_OPTIONS節は,以下の命令で囲まれています。

/% begin_rtw_options…END_RTW_OPTIONS % /

RTW_OPTIONS節の最初の部分は,rtwoptions構造体の配列を定義します。この構造体は,Rtwoptionsを使用したカスタムタ,ゲットオプションの表示で説明されています。

RTW_OPTIONS節の2番目の部分は,コ,ド生成プロセスのビルドフォルダ,名およびその他の設定を定義するrtwgensettingsを定義します。rtwgensettingsの詳細にいては,Rtwgensettings構造体を参照してください。

Rtwgensettings構造体

システムタゲットファルの最後の部分はrtwgensettings構造体を定義します。この構造体には,模型.rtwファesc escルに書き込まれ,ビルドプロセスによって使用される情報が格納されています。タ,ゲット開発者の最大の関心のrtwgensettingsフィ,ルドは,以下のとおりです。

  • rtwgensettings。版本:このプロパティを使用すると,rtwoptionsコ,ルバックが有効になり,rtwgensettings。SelectCallbackでコルバックAPIが使用できるようになります。

    メモ

    コ,ルバックを使用するには,以下を“設定しなければなりません”

    rtwgensettings。版本= '1';

    上記のステトメントをシステムタゲットファルの配置RTW代码生成设置セクションに追加します。

  • rtwgensettings。本文建立:この構造体フィ,ルドは,オプションの継承先のシステムタ,ゲットファ,ルを定義します。タ,ゲットオプションの継承を参照してください。

  • rtwgensettings。SelectCallback:この構造体フィ,ルドは,関数SelectCallbackを指定します。rtwgensettings。版本= '1';を設定しないとコ,ルバックは無視されます。SelectCallbackは,タ,ゲットの個別のオプションではなく,タ,ゲット自体に関連付けられています。関数SelectCallbackは,次のときにトリガ,されます。

    • モデルを読み込みます。

    • [コンフィギュレーションパラメーター]ダイアログボックスでコンフィギュレーション設定を更新します。

    • モデルを作成します。

    関数SelectCallbackは,コンフィギュレションパラメタの設定(または無効化)に役立ます。

    以下のコ,ドを実行すると関数SelectCallbackが▪▪ンスト▪▪ルされます。

    rtwgensettings。SelectCallback= 'my_select_callback_handler(hDlg,hSrc)';

    関数SelectCallbackへの引数(hSrc处理)は,コ,ルバックAPI関数によって使用されるプラ,ベ,トデ,タのハンドルです。

    メモ:

    開発したカスタムタ,ゲットにモデル参照との互換性をもたせる場合は,関数SelectCallbackを実装し,モデル参照の互換性を宣言しなければなりません。モデル参照のサポ,トを参照してください。

  • rtwgensettings。ActivateCallback:このプロパティは,関数ActivateCallbackを指定します。関数ActivateCallbackは,モデルのアクティブなコンフィギュレ,ションセットが変更された場合にトリガ,されます。このトリガーは,モデルの読み込み中に発生する場合,また,ユーザーがアクティブなコンフィギュレーションセットを変更した時に発生する場合があります。

    以下のコ,ドを実行すると関数ActivateCallbackが▪▪ンスト▪▪ルされます。

    rtwgensettings。ActivateCallback = 'my_activate_callback_handler(hDlg,hSrc)';

    関数ActivateCallbackへの引数(hSrc处理)は,コ,ルバックAPI関数によって使用されるプラ,ベ,トデ,タのハンドルです。

  • rtwgensettings。PostApplyCallback:このプロパティは,関数PostApplyCallbackを指定します。関数PostApplyCallbackは,[コンフィギュレションパラメタ]ダアログボックスでオプションを編集後に[適用]ボタンまたは(好的)ボタンをクリックするとトリガ,されます。関数PostApplyCallbackは,コンフィギュレ,ションセットへの変更の適用後に呼び出されます。

    以下のコ,ドを実行すると関数PostApplyCallbackが▪▪ンスト▪▪ルされます。

    rtwgensettings。PostApplyCallback = 'my_postapply_callback_handler(hDlg,hSrc)';

    関数PostApplyCallbackへの引数(hSrc处理)は,コ,ルバックAPI関数によって使用されるプラ,ベ,トデ,タのハンドルです。

  • rtwgensettings。BuildDirSuffix:ほとんどのターゲットでは,ターゲットによって作成されるビルドフォルダーを識別するフォルダー名の接尾辞が定義されます。ビルドプロセスは,rtwgensettings。BuildDirSuffixフィ,ルド内で定義された接尾辞をモデル名に追加して,ビルドフォルダ,の名前を構成します。たとえば,rtwgensettings。BuildDirSuffixを以下のように定義した場合,

    rtwgensettings。BuildDirSuffix= '_mytarget_rtw'

    ビルドフォルダ,には,模型_mytarget_rtwという名前が付けられます。

追加のコ,ド生成オプション

TLCによる生成コ,ドの構成には,追加のTLCコド生成変数にいての説明が記載されています。ターゲットのエンドユーザーは,次の形式のMATLABコマンドを入力することによって,これらの変数を割り当てることができます。

set_param (modelName TLCOptions, -aVariable = val);

詳細にいては,コ,ド生成のTLCの指定を参照してください。

ただし,システムターゲットファイル内でこれらの変数を割り当てるための推奨される手法は,以下の形式のステートメントを使用する手法です。

%assign变量= val

これらの割り当ては,システムタ,ゲットファ,ルでコメント[配置RTW代码生成设置]を入力した後の節に追加して,読みやすくすることをお勧めします。

モデル参照の注意事項

コードジェネレーターのモデル参照機能をサポートするために行う必要のあるシステムターゲットファイルおよびその他の変更に関する重要な情報については,モデル参照のサポ,トを参照してください。

カスタムタ,ゲットオプションの定義と表示

Rtwoptionsを使用したカスタムタ,ゲットオプションの表示

システムタゲットファル内でrtwoptions構造体をカスタマズすると,[コンフィギュレションパラメタ]ダアログボックスの[コ,ド生成]ペ@ @ンでのオプションの表示を制御できます。

rtwoptions構造体のフィールドは,変数や関連するユーザーインターフェイスの要素を[コンフィギュレーションパラメーター]ダイアログボックス内に表示されるように定義します。rtwoptions構造体配列を使用すると,ダイアログボックス内に表示されるターゲット固有のオプションを定義し,オプションをカテゴリ別に整理します。これらのオプションの処理方法の指定には,コ,ルバック関数を記述する方法もあります。

[コ,ド生成]ペ电子邮箱ンが表示されると,rtwoptions構造体配列がスキャンされ,オプションのリストが表示されます。割り当てられているユーザーインターフェイス要素(チェックボックス,エディットフィールド,メニュー,プッシュボタンなど)によって表現される各オプションには,現在のオプション値が表示されます。

ユーザーインターフェイス要素は,有効または無効(グレー表示)の状態のいずれかの状態を取れます。オプションが有効になっている場合,オプションの値を変更できます。あるオプションが無効になっている場合,そのオプションでは既定値が使用され,オプションの値を変更することはできません。

rtwoptions構造体配列を使用して,特別な非UI要素を定義することもできます。この要素は,コ,ルバック関数の実行をトリガ,しますが,[コ,ド生成]ペ@ @ンには表示されません。非界面要素を参照してください。

rtwoptions構造体配列の要素は,グル,プにまとめられています。ア类别タ▪▪プのヘッダ▪▪要素で始まります。类别ヘッダ,の既定のフィ,ルドには,そのカテゴリ内に残る要素数が含まれていなければなりません。

类别ヘッダ,の後には,[コ,ド生成]ペ@ @ンに表示されるオプションが続きます。各カテゴリのヘッダの後には,1以上の定義要素が続きます。

ターゲットオプションの各カテゴリは,[コンフィギュレーションパラメーター]ダイアログボックスの[コ,ド生成]にリストされているオプションに該当します。

Rtwoptions構造体フィ,ルドのまとめには,rtwoptions構造体のフィ,ルドが要約されています。

サンプルrtwoptions構造体-以下のrtwoptions構造体は,サンプルシステムタ,ゲットファ,ルmatlabroot/工具箱/ rtw / rtwdemos / rtwoptions_demo /usertarget.tlcからの抜粋です。このコ,ドは,構造体配列rtwoptionsを定義しています。最初の(ヘッダ,)要素の既定のフィ,ルドは,4に設定されています。これは,ヘッダーに続く要素の数を示しています。

rtwoptions(1)。提示= 'userPreferred target options (I)'; rtwoptions(1).type = 'Category'; rtwoptions(1).enable = 'on'; rtwoptions(1).default = 4; % number of items under this category % excluding this one. rtwoptions(1).popupstrings = ''; % At the first item, user has to rtwoptions(1).tlcvariable = ''; % initialize all supported fields rtwoptions(1).tooltip = ''; rtwoptions(1).callback = ''; rtwoptions(1).makevariable = ''; rtwoptions(2).prompt = 'Execution Mode'; rtwoptions(2).type = 'Popup'; rtwoptions(2).default = 'Real-Time'; rtwoptions(2).popupstrings = 'Real-Time|UserDefined'; rtwoptions(2).tlcvariable = 'tlcvariable1'; rtwoptions(2).tooltip = ['See this text as tooltip']; rtwoptions(3).prompt = 'Log Execution Time'; rtwoptions(3).type = 'Checkbox'; rtwoptions(3).default = 'on'; rtwoptions(3).tlcvariable = 'RL32LogTETModifier'; rtwoptions(3).tooltip = ['']; % no tooltip rtwoptions(4).prompt = 'Real-Time Interrupt Source'; rtwoptions(4).type = 'Popup'; rtwoptions(4).default = 'Timer'; rtwoptions(4).popupstrings = 'Timer|5|6|7|8|9|10|11|12|13|14|15'; rtwoptions(4).tlcvariable = 'tlcvariable3'; rtwoptions(4).callback = 'usertargetcallback(hDlg, hSrc, ''tlcvariable3'')'; rtwoptions(4).tooltip = ['']; rtwoptions(4).tooltip = ['See TLC file for how to use reserved '... ' keyword ''hDlg'', and ''hSrc''.']; ... rtwoptions(5).prompt = 'Signal Logging Buffer Size in Doubles'; rtwoptions(5).type = 'Edit'; rtwoptions(5).default = '100000'; rtwoptions(5).tlcvariable = 'tlcvariable2'; rtwoptions(5).tooltip = [''];

最初の要素は,[用户首选目标选项(I)]ペンを[コンフィギュレションパラメタ]ダアログボックスの[コ,ド生成]に追加します。ペ电子邮箱ンには,rtwoptions (2)rtwoptions (3)rtwoptions (4)およびrtwoptions (5)で定義されたオプションが表示されます。

多数のオプションを定義する場合,1のシステムタル内で複数の类别グル,プを定義できます。

rtwoptions構造体とコールバックは,TLCファイルへの組み込みですが,MATLABコードで記述されていることに注意してください。rtwoptions構造体の定義とコードの構文を検証するには,コマンドをコピーしてMATLABコマンドウィンドウに貼り付けてMATLABプロンプトで実行します。

usertarget.tlcおよびそれに用意されているサンプルcallbackファルの詳細にいては,カスタマ@ @ズ済みrtwoptionsを使用するサンプルシステムタ@ @ゲットファ@ @ルを参照してください。タ,ゲット固有のrtwoptions定義の他の例は,matlabroot/ rtw / c開く)の目标.tlcファ@ @ルを参照してください。

Rtwoptions構造体フィ,ルドのまとめには,rtwoptions構造体のフィ,ルドがリストされています。

Rtwoptions構造体フィ,ルドのまとめ

フィ,ルド名 説明

回调

コ,ルバック使用のサンプルは,カスタマ@ @ズ済みrtwoptionsを使用するサンプルシステムタ@ @ゲットファ@ @ルを参照してください。

closecallback
(过时的)

closecallbackは使用しないでください。
代わりにrtwgensettings。PostApplyCallbackを使用してください(Rtwgensettings構造体を参照)。

closecallbackは無視されます。

コ,ルバック使用のサンプルは,カスタマ@ @ズ済みrtwoptionsを使用するサンプルシステムタ@ @ゲットファ@ @ルを参照してください。

默认的

オプションの既定値(类型按钮の場合は空)。

启用

“上”または“关闭”でなければなりません。“上”の場合,オプションは有効なア。それ以外の場合は,無効なア。

makevariable

オプションに関連付けられているテンプレトmakefileトクン(存在する場合)。makevariableは,テンプレ,トmakefileの処理中に展開されます。テンプレ,トmakefileト,クンを参照してください。

modelReferenceParameterCheck 参照されているモデルおよびその親モデル内でオプションが同じ値を取らなければならないかどうかを指定します。このフィ,ルドに値“上”が指定されている場合,または何も指定されていない場合,オプションの値は同じでなければなりません。このフィ,ルドが“关闭”に指定されている場合,これらのオプション値は異なる値を取ることができます。コンフィギュレ,ションオプションの値一致の制御を参照してください。

NonUI

要素は表示されませんが,クロ,ズまたはオ,プンコ,ルバックを起動するために使用されます。非界面要素を参照してください。

opencallback
(过时的)

opencallbackは使用しないでください。
代わりにrtwgensettings。SelectCallbackを使用してください(Rtwgensettings構造体を参照)。

コ,ルバック使用のサンプルは,カスタマ@ @ズ済みrtwoptionsを使用するサンプルシステムタ@ @ゲットファ@ @ルを参照してください。

popupstrings

类型弹出の場合,popupstringsによってメニュ内のアテムが定義されます。アesc escア,“|”(縦棒)文字によって区切られます。以下の例では,grtタ,ゲットによって使用される[matファ@ @ル変数名の修飾子]メニュ.が定義されます。

“rt_ | _rt |没有的

提示

オプション用のラベル。

tlcvariable

オプションに関連付けられているTLC変数の名前。

工具提示

マウスがア@ @テム上に置かれたときに表示されるヘルプテキスト。

类型

要素のタ电子邮箱プ:复选框编辑NonUI弹出按钮,または类别

非UI要素-タereplicationプがNonUIである配列rtwoptionsの要素は,コ,ルバックの起動のみを目的としています。NonUI要素は,[コンフィギュレションパラメタ]ダアログボックスには表示されません。NonUI要素を使用すると,ダイアログボックスの開閉時に,ユーザーインターフェイスの要素に関連しないコールバックを実行できます。例にいては,次の節カスタマ@ @ズ済みrtwoptionsを使用するサンプルシステムタ@ @ゲットファ@ @ルを参照してください。

メモ

タereplicationプNonUIまたは编辑要素の既定値によって,その要素で許容される値のセットが決まります。

  • 既定値が' 0 'または' 1 'である場合は次のとおりです。

    • タereplicationプNonUIの場合,要素はブ,ル値を格納する。

    • タereplicationプ编辑の場合,要素はint32型の値を格納する。

  • 既定値に' 0 'または' 1 '以外の整数が含まれる場合,要素はint32型の値を格納します。

  • 既定値に整数が含まれない場合,要素は文字ベクトルとして評価されます。

カスタマ@ @ズ済みrtwoptionsを使用するサンプルシステムタ@ @ゲットファ@ @ル

[コ,ド生成]ペ@ @ンでカスタムオプションを表示および処理するためのrtwoptions構造体の使用方法のサンプルとして,MATLABファイルコールバック関数を使用した実際のシステムターゲットファイルが用意されています。このサンプルは,コ,ルバックAPIと互換性があります。

サンプルタ、ゲットファ、ルは、以下のフォルダ、(開く)に格納されています。

matlabroot /工具箱/ rtw / rtwdemos / rtwoptions_demo

このサンプルタゲットファルには,以下が含まれています。

  • usertarget.tlc:サンプルシステムタゲットファル。このファイルでは,カスタムメニュー,チェックボックスおよびエディットフィールドを定義する方法を説明します。ファ▪▪ルでは,コ▪▪ルバックの使用に▪▪いても説明します。

  • usertargetcallback.m:メニュによって起動されるmatlabファルコルバック。

この節を学習する場合は,サンプルファ。サンプルシステムタゲットファルusertarget.tlcには,以下のカスタムタ,ゲットオプションを表示するためのrtwoptionsの使用方法が説明されています。

  • (执行模式)メニュ。

  • [日志执行时间]チェックボックス。

  • [リアルタeconp econpム割り込みソス]メニュ。このメニュは,外部ファルusertargetcallback.mで定義されているコ,ルバックを実行します。このメニューに関連付けられているTLC変数は,コールバックに渡され,メニューの現在の値を表示します。

  • [信号测井缓冲区大小为2倍]エディットフィ,ルド。

[コンフィギュレーションパラメーター]ダイアログボックスにあるサンプルターゲットオプションを操作しながら,サンプルコードを学習してみてください。サンプルタゲットファルを使用するには,以下の手順を行います。

  1. matlabroot/工具箱/ rtw / rtwdemos / rtwoptions_demo開く)を作業フォルダ,にします。

  2. 使用するモデルを開きます。

  3. [コンフィギュレ,ションパラメ,タ,]ダ,[コ,ド生成]ペ@ @ンを選択します。

  4. [参照]をクリックします。システムタゲットファルブラウザが開きます。usertarget.tlcを選択します。(好的)をクリックします。

  5. [コ,ド生成]ペ@ @ンにサブタブ[用户首选目标选项(I)]が表示されたことを確認します。

  6. このカテゴリのオプションを操作し,[コンフィギュレーションパラメーター]ダイアログボックスを開閉する際に,MATLABコマンドウィンドウに表示されるメッセージを確認してください。これらのメッセージは,システムターゲットファイル内のコードまたはシステムターゲットファイルから起動されたコールバックから出力されます。

タ,ゲットオプションの継承

ert.tlcには,嵌入式编码器®コ,ド生成オプションの基本的なセットがあります。作成中のタ,ゲットがert.tlcベースの場合は,システムターゲットファイルは,通常,ERT内で定義されるオプションを継承しなければなりません。

rtwgensettings構造体内のrtwgensettings。本文建立フィルドを使用して,オプションの継承先のシステムタゲットファルを定義します。このメカニズムを使用するために,カスタムタ,ゲットを以下の手順で変換しなければなりません。

次の例のようにrtwgensettings。本文建立フィ,ルドの値を設定します。

rtwgensettings。本文建立= 'stf.tlc';

上記の月31には,継承するオプションを含むシステムタ,ゲットファ,ルの名前が入ります。以下に例を示します。

rtwgensettings。本文建立= 'ert.tlc';

[コンフィギュレーションパラメーター]ダイアログボックスによってコードのこの行が実行されると,stf.tlcからのオプションが自動的に含まれます。stf.tlcが,新しいレイアウトに変換されたMathWorksの内部システムターゲットファイルである場合,ダイアログボックスには,その新しいレイアウトを使用して継承されたオプションが表示されます。

サポトされていないオプションの処理-作成中のタ,ゲットが,ert.tlcから継承されたすべてのオプションをサポートしていない場合,サポートされていないオプション設定を検出し,警告またはエラーメッセージが表示されるようにしなければなりません。場合によっては,ターゲットがサポートしていないオプションをユーザーが選択した場合に,ビルドプロセスを中止しなければならないことがあります。たとえば,タ,ゲットが[メ电子邮箱ンプログラム例の生成]オプションをサポートしていない場合にこのオプションが選択された場合,ビルドプロセスが先に進まないようにしなければなりません。

作成中のターゲットですべての継承されたERTオプションがサポートされていない場合でも,それらのERTオプションは,[コンフィギュレーションパラメーター]ダイアログボックスの[コ,ド生成]ペ@ @ン内に保持されていなければなりません。システムタゲットファルのrtwoptions構造体からのサポ,トされていないオプションの単純な削除は行わないでください。コードジェネレーターが最適化を実行するときにこのコードジェネレーターにスキャンされるように,オプションはダイアログボックスに存在しなければなりません。

たとえば,ユ,ザ,が[1 emfの出力/更新関数]オプションをオフにしないようにするには,このオプションをダイアログボックスから削除し,単純にTLC変数CombineOutputUpdateFcnsに割り当てる方法が合理的に見えるかもしれません。しかし,オプションがダイアログボックスに含まれていない場合,コードジェネレーターは出力関数と更新関数は“組み合わせられるべきではない”と判断します。この結果として,効率の悪いコ,ドが生成されることになります。

システムタゲットファルをカスタマズするためのヒントと手法

はじめに

この節では,以下の内容を含む,システムターゲットファイルをカスタマイズするための手法が説明されています。

  • システムタゲットファルからカスタムTLCコドを起動する方法

  • 複数の開発環境をサポ,トする方法

  • システムタゲットファルを更新する際の考慮事項

必須%includeおよび推奨される%include

タゲット固有のコド生成機能を実装しなければならない場合,tlcファルmytarget_genfiles.tlcをシステムタゲットファルに含めることをお勧めします。

必要となるTLC環境のシステムタゲットファルによるセットアップが完了したら,codegenentry.tlcを含めて,標準のコ,ド生成プロセスが起動するようにしなければなりません。

mytarget_genfiles.tlcでは,メインコード生成のエントリポイントの後にカスタムTLCコードを実行するメカニズムが使用できます。mytarget_genfiles.tlcの使用を参照してください。

mytarget_genfiles.tlcの使用-mytarget_genfiles.tlc(オプション)はターゲットビルドプロセスの一部として追加ファイルを生成するターゲット固有TLCファイルを起動するセントラルファイルとして使用できます。たとえば,ターゲットによって、開発環境用のサブ makefile またはプロジェクト ファイルが作成されたり、自動ダウンロードを行うためにデバッガー用のコマンド スクリプトが作成されたりする場合があります。

その後,ビルドプロセスは,これらの生成済みのファイルを使プロセスから直接起動するか,実行可能ファイルが作成されてから起動できます。これは,STF_make_rtw_hookファ▪▪ルによるビルドプロセスのカスタマ▪▪ズで説明されている月31_make_rtw_hook.mのメカニズムを使用して行われます。

次のTLCコ,ドは,サンプルのmytarget_genfiles.tlcファ@ @ルを示しています。

%selectfile NULL_FILE %assign ModelName = CompiledModel。Name %%创建调试器脚本%assign model_script_file = "%.cfg" %assign script_file = "debugger_script_template. cfg"tlc" %if RTWVerbose %selectfile STDOUT ###正在创建% %selectfile NULL_FILE %endif %include "%" %openfile bld_file = "%" % %closefile bld_file

タゲットオプション値に対するエリアスを処理する

この節では,タ,ゲットデバProdHWDeviceType)およびコド置換ラブラリ(CodeReplacementLibrary)用のユーザー指定値のテスト時に,エイリアス値またはレガシ値を検出および解決するために使用できるユーティリティ関数について説明します。

RTW.isHWDeviceTypeEq -2つのターゲットデバイスタイプ値が同じハードウェアデバイスを表しているかどうかをテストするために,以下の関数を実行します。

result = RTW.isHWDeviceTypeEq(type1,type2)

上記で,类型1および类型2は,タ,ゲットデバ,。

関数RTW.isHWDeviceTypeEqは,类型1类型2が同じハドウェアデバスを表す文字ベクトルである場合,trueを返します。たとえば,次の呼び出しは真を返します。

RTW.isHWDeviceTypeEq(“指定”、“通用- >自定义”)

タゲットデバスタプオプションProdHWDeviceTypeの説明にいては,[ハ,ドウェア実行]ペンのパラメタデバスベンダおよびデバ▪▪スタ▪▪プに関するコマンドラ@ @ン情報を参照してください。

RTW.resolveHWDeviceType -値がエイリアス値またはレガシ値である可能性がある場合にハードウェアデバイスのデバイスタイプ値を返すには,以下の関数を起動します。

result = RTW.resolveHWDeviceType(type)

上記で,类型は,タ,ゲットデバ,。

関数RTW.resolveHWDeviceTypeは,デバ▪▪スのデバ▪▪スタ▪▪プ値を返します。たとえば,以下の呼び出しは,いずれも“通用- >自定义”を返します。

RTW.resolveHWDeviceType(“指定”)RTW.resolveHWDeviceType(通用- >自定义)

タゲットデバスタプオプションProdHWDeviceTypeの説明にいては,[ハ,ドウェア実行]ペンのパラメタデバスベンダおよびデバ▪▪スタ▪▪プに関するコマンドラ@ @ン情報を参照してください。

RTW.isTflEq -2つのコード置換ライブラリ(CRL)名が同じCRLを表しているかどうかをテストするために,以下の関数を呼び出します。

result = RTW.isTflEq(name1,name2)

上記で,name1およびname2は,crl値またはエescリアスを含む文字ベクトルを示します。

関数RTW.isTflEqは,name1name2が同じコド置換ラブラリを表す文字ベクトルである場合,trueを返します。たとえば,次の呼び出しは真を返します。

RTW.isTflEq('GNU','GNU C99 extensions')

CodeReplacementLibraryのパラメタにいては,コド置換ラブラリを参照してください。

RTW.resolveTflName -値がエイリアス値またはレガシ値である可能性がある場合にコード置換ライブラリのCRL値を返すには,以下の関数を起動します。

result = RTW.resolveTflName(name)

上記で,的名字は,crl値またはエescリアスを含む文字ベクトルです。

関数RTW.resolveTflNameは,参照されるコ,ド置換ラ,ブラリの値を返します。たとえば,以下の呼び出しは,いずれも“GNU C99扩展”を返します。

RTW.resolveTflName环球套票(GNU的)。resolveTflName('GNU C99 extensions')

CodeReplacementLibraryのパラメタにいては,コド置換ラブラリを参照してください。

複数の開発環境のサポ,ト

ターゲットによっては,複数の開発環境をサポート(2つ以上のクロスコンパイラを使用している場合など)または複数のモードでのコード生成をサポート(バイナリ実行可能ファイルとコンパイラ用のプロジェクトファイルを生成する場合など)しなければならない場合があります。

この要件に対する1。各システムタゲットファルが開発環境用のテンプレトmakefileを呼び出します。この方法では,2の異なるタ。

カスタムシステムタゲットファルの更新

カスタムシステムターゲットファイルを更新すると,更新されたシステムターゲットファイルを使用する,読み込むモデルのオプション値に影響を与えることがあります。あるオプションを無効にすると,更新されたシステムターゲットファイルはそのオプションの既定値を使用します。モデルでそのオプションについて値が異なっていると,更新されたシステムターゲットファイルを使用してモデルを読み込むときに,モデルからの値は破棄され,システムターゲットファイルは代わりに既定値を使用します。

カスタムタ,ゲットコンフィギュレ,ションの作成

はじめに

このチュ,トリアルは,カスタムタ,ゲットのサンプルで説明されたサンプルタゲットガドを補足するものです。概要およびサンプル ファイルについては、まずサンプル ターゲットを行ってください。

このチュ,トリアルでは,ertベ,スのタ,ゲットmy_ert_targetを作成するプロセスを順を追って説明します。この演習では,カスタムターゲットの作成時に通常行う以下のようないくつかのタスクについて説明します。

  • タ,ゲットフォルダ,の設定とmatlabパスの変更。

  • カスタムターゲットのシステムターゲットファイルブラウザーへの表示,ERTオプションの継承,ターゲット固有のオプションの表示,および既定のホストベースコンパイラを使用したコードの生成が行われるように標準のシステムターゲットファイルおよびTMFに変更を加える。

  • インラインs函数のある簡単なモデルを使用してカスタムターゲットでビルドプロセスをテストする。

この演習では,実行可能な骨格となるertベ,スタ,ゲットを実装します。このタ,ゲットは,カスタムの組み込みタ,ゲットの完全な実装の開始点として役立,ます。

My_ert_targetの概要

以下の節では,骨格となるタ,ゲットmy_ert_targetを作成します。ターゲットは,ERTターゲットの標準オプションを継承およびサポートし,[コンフィギュレーションパラメーター]ダイアログボックスで追加のターゲット固有のオプションを表示します(My_ert_targetのタ,ゲット固有のオプションを参照)。

My_ert_targetのタ,ゲット固有のオプション

my_ert_targetは,ツールチェーンベースのビルドをサポートし,ホストシステム上で実行するコードおよび実行可能ファイルを生成します。my_ert_targetは,微软视窗®プラットフォ,ムで低成本航空コンパ@ @ラを使用します。選択したコンパラは入手が簡単であり,コドジェネレタに同梱されています。微软Windows プラットフォームでは、別のコンパイラを使用する場合、以下の MATLAB コマンドにより低成本航空を既定のコンパ@ @ラとして一時的に設定できます。

墨西哥人设置

コンピュタにンストルされているサポト対象のコンパラへのリンクが表示されます。低成本航空リンクをクリックします。

メモ:

Linux®システムで,aapl . exe, aapl . exe, aapl . exe, aapl . exe, aapl . exe, aapl . exe。ある場合,Linuxフォルダ,構文を使用して演習を終了できます。

my_ert_targetは,テンプレ,トmakefileベ,スのビルドもサポ,トします。テンプレ,トmakefileアプローチによるこのターゲットの使用の詳細については、ERTベ,スのテンプレ,トmakefileの作成を参照してください。

Ertタゲットと互換性のあるモデルを使用してmy_ert_targetをテストできます(システムタゲットファルの構成(嵌入式编码)を参照)。生成されたプログラムは,ertによって生成されたプログラムとまったく同様に動作します。

タ,ゲットのテストを簡略化するために,非常に簡単な固定ステップモデルtargetmodelを使用してテストすることをお勧めします(テストモデルとS-Functionの作成を参照)。targetmodel内のs函数ブロックは,timestwoサンプルのソスコドを使用し,完全にンランなコドを生成します。timestwoのS-Function例に関する詳細な説明にいては,s函数的例子および带有TLC的内联s函数を参照してください。

タ,ゲットフォルダ,の作成

推奨される規則に従って,ターゲットファイルを保存するためのフォルダーを作成し,MATLABパスに追加します(フォルダおよびファルの命名規則を参照)。また,テストモデル,s函数および生成されたコードを保存するためのフォルダーも作成します。

このサンプルでは,タ,ゲットフォルダ,とモデルフォルダ,がフォルダ,c: /工作内にあることを前提としています。タゲットフォルダとモデルフォルダをmatlabフォルダリ内(まり,)matlabrootフォルダ内またはその配下)に配置しないでください。

フォルダ,を作成し,アクセス可能な状態にするには,次を行います。

  1. タゲットルトフォルダmy_ert_targetを作成します。WindowsプラットフォムのMATLABコマンドウィンドウに以下を入力します。

    CD c:/work mkdir my_ert_target
  2. タゲットルトフォルダ内に,タゲットファルを保存するサブフォルダを作成します。

    mkdir my_ert_target / my_ert_target
  3. これらのフォルダをmatlabパスに追加します。

    添加路径c:/work/my_ert_target
  4. テストモデル,S-Functionおよび生成されたコ,ドを保存するためのフォルダ,my_targetmodelを作成します。

    mkdir my_targetmodel

Ertベスの,ルチェゲットファルの作成

ERTターゲット用の標準のシステムターゲットファイルをコピーし変更して,独自のターゲット用のシステムターゲットファイルを作成します。その後,システムターゲットファイルブラウザーおよび[コンフィギュレーションパラメーター]ダイアログボックス内に新しいターゲットを表示してシステムターゲットファイルを検証します。

システムタゲットファルの編集-システムタゲットファルを編集するには,次の手順を使用します。

  1. 作業フォルダ,をタ,ゲットフォルダ,の作成で作成したフォルダ,に変更します。

    cd c: / / my_ert_target / my_ert_target工作
  2. c: / / my_ert_target / my_ert_target工作matlabroot/ rtw / c / ert /ert.tlcのコピ,を配置し,my_ert_target.tlcに名前を変更します。ファereplicationルert.tlcはertタゲット用のシステムタゲットファルです。

  3. 任意のテキストエディタ,でmy_ert_target.tlcを開きます。

  4. システムターゲットファイルをシステムターゲットファイルブラウザーで表示可能にし,関連付けられているTMF,使コマンドおよびエクスターナルモードのインターフェイスファイル(存在する場合)を定義するヘッダーコメント行を命令で置き換えて,システムターゲットファイルをカスタマイズします。これらの命令の詳細にいては,ヘッダ,コメントを参照してください。

    my_ert_target.tlcのヘッダ,コメントを以下のヘッダ,コメントで置き換えます。

    SYSTLC: My ERT-based Target TMF: my_ert_target_lcctmf MAKE: make_rtw
  5. ファereplicationルmy_ert_target.tlcは,タ,ゲットオプションの継承で説明されているメカニズムを使用して標準のertオプションを継承します。したがって,既存のrtwoptions構造体定義は必要ありません。RTW_OPTIONS節を、以下のコードのみが含まれるように編集します。

    / % BEGIN_RTW_OPTIONS  %----------------------------------------% % 环球套票代码生成配置设置  % %----------------------------------------% rtwgensettings。BuildDirSuffix = '_ert_rtw';END_RTW_OPTIONS % /
  6. RTW_OPTIONS節の末尾の後にある,命令开始configset_target_component和结束configset_target_componentで区切られたコ,ドを削除します。このコ,ドは,MathWorks社内の開発者のみが使用するコ,ドです。

  7. rtwgenSettings構造体内のビルドフォルダ,の添字をRtwgensettings構造体で説明されている規則に従って変更します。

    添字を_my_ert_targetカスタムタ,ゲットに文字ベクトルに設定するには,以下の行

    rtwgensettings。BuildDirSuffix= '_ert_rtw'

    を次のように変更します。

    rtwgensettings。BuildDirSuffix= '_my_ert_target_rtw'
  8. Ertタ,ゲットからオプションを継承し,Rtwgensettings構造体で説明されたように版本14以降との互換性を宣言するためにrtwgenSettings構造体を変更します。以下のコ,ドを定義rtwgenSettingsに追加します。

    rtwgensettings。本文建立= 'ert.tlc'; rtwgensettings.Version = '1';
  9. 3のチェックボックスのあるタゲット固有のオプションのカテゴリを定義するrtwoptions構造体をBEGIN_RTW_OPTIONS命令のすぐ後に追加します。以下のコ,ドは,これまでのrtwgenSettingsの変更を含む,完全なRTW_OPTIONSセクションを示しています。

    /% BEGIN_RTW_OPTIONS rtwoptions(1)。prompt =“我的目标选项”;rtwoptions(1)。类型= 'Category'; rtwoptions(1).enable = 'on'; rtwoptions(1).default = 3; % number of items under this category % excluding this one. rtwoptions(1).popupstrings = ''; rtwoptions(1).tlcvariable = ''; rtwoptions(1).tooltip = ''; rtwoptions(1).callback = ''; rtwoptions(1).makevariable = ''; rtwoptions(2).prompt = 'Demo option 1'; rtwoptions(2).type = 'Checkbox'; rtwoptions(2).default = 'off'; rtwoptions(2).tlcvariable = 'DummyOpt1'; rtwoptions(2).makevariable = ''; rtwoptions(2).tooltip = ['Demo option1 (non-functional)']; rtwoptions(2).callback = ''; rtwoptions(3).prompt = 'Demo option 2'; rtwoptions(3).type = 'Checkbox'; rtwoptions(3).default = 'off'; rtwoptions(3).tlcvariable = 'DummyOpt2'; rtwoptions(3).makevariable = ''; rtwoptions(3).tooltip = ['Demo option2 (non-functional)']; rtwoptions(3).callback = ''; rtwoptions(4).prompt = 'Demo option 3'; rtwoptions(4).type = 'Checkbox'; rtwoptions(4).default = 'off'; rtwoptions(4).tlcvariable = 'DummyOpt3'; rtwoptions(4).makevariable = ''; rtwoptions(4).tooltip = ['Demo option3 (non-functional)']; rtwoptions(4).callback = ''; %----------------------------------------% % Configure RTW code generation settings % %----------------------------------------% rtwgensettings.BuildDirSuffix = '_my_ert_target_rtw'; rtwgensettings.DerivedFrom = 'ert.tlc'; rtwgensettings.Version = '1'; rtwgensettings.SelectCallback = 'enableToolchainCompliant(hSrc, hDlg)'; %SelectCallback provides toolchain approach support, but requires custom function %Omit this SelectCallback if using the template makefile approach END_RTW_OPTIONS %/
  10. my_ert_target.tlcへの変更内容を保存し,ファ。

関数ToolchainCompliantの作成-ツールチェーンアプローチを使用してビルドを有効にするには,カスタムシステムターゲットファイルの終端付近のSelectCallbackに対応する関数を作成します。この関数は。

function enableToolchainCompliant(hSrc, hDlg) %以下参数启用工具链兼容。slConfigUISetVal(hDlg, hSrc, 'UseToolchainInfoCompliant', 'on');slConfigUISetVal(hDlg, hSrc, 'GenerateMakefile','on');对于工具链遵从性,以下参数不需要。。但是,建议设置这些默认值并禁用参数(如图所示)。slConfigUISetVal(hDlg, hSrc, 'RTWCompilerOptimization','off');slConfigUISetVal(hDlg, hSrc, 'MakeCommand','make_rtw');slConfigUISetEnabled(hDlg, hSrc, 'RTWCompilerOptimization',false);slConfigUISetEnabled(hDlg, hSrc, 'MakeCommand',false);hSrc.refreshDialog; end

メモ

テンプレートmakefileアプローチを使用する場合,システムターゲットファイルからツールチェーン準拠を有効にする関数の呼び出しを省略します。その代わり,ERTベ,スのテンプレ,トmakefileの作成に記載されている情報を使用します。

システムタゲットファルの表示-この時点では,タ,ゲットがertオプションを継承し表示できることを以下の手順で検証できます。

  1. 新しいモデルを作成します。

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

  3. [コ,ド生成]ペ@ @ンを選択します。

  4. [参照]をクリックし、システムタ、ゲットファ、ルブラウザ、を開きます。

  5. ファルブラウザ内で,タゲットのリストをスクロルして,新しいタゲットmy_ert_target.tlcを探します(この手順では,タ,ゲットフォルダ,の作成で事前に設定されたようにmatlabパスにc: / / my_ert_target / my_ert_target工作が含まれていることを前提にしています)。

  6. 我的基于ert的目标を選択して,(好的)をクリックします。

  7. [コ,ド生成]ペ▪▪▪▪ンには,ここで,モデルがmy_ert_target.tlcタ,ゲット用に設定されていることが表示されます。[システムタゲットファル][言語][ン]および[ビルド構成]フィ,ルドが以下のように表示されます。

  8. [我的目标选择]ペ@ @ンを選択します。タ,ゲットには,rtwoptions構造体で定義された3のチェックボックスオプションが表示されます。

  9. [コ,ド生成]ペ@ @ンを選択し,システムタ@ @ゲットファ@ @ルブラウザ@ @を再度開きます。

  10. 嵌入式编码器タ,ゲット(ert.tlc)を選択します。タ,ゲットには,標準の ERT オプションが表示されます。

  11. モデルを閉じます。モデルを保存する必要はありません。

骨格となるタゲットのシステムタゲットファルが完成しました。ツールチェーンアプローチを使用する場合,ターゲットにビルドプロセスを呼び出す準備が整っています。

テンプレートmakefileアプローチを使用する場合,システムターゲットファイルヘッダーコメント内のTMFへの参照(my_ert_target_lcc.tmf)により,TMFファイルが配置されるまで,ターゲットに対してビルドプロセスを呼び出すことはできません。最初に,my_ert_target_lcc.tmfファ@ @ルを作成しなければなりません。

ERTベ,スのテンプレ,トmakefileの作成

ツールチェーンmakefileアプローチをツールチェーン準拠のカスタムターゲットで使用する場合,テンプレートmakefileアプローチに適用される手順を省略します(このセクションをスキップします)。

テンプレートmakefileアプローチを使用する場合,テンプレートmakefileに適用される手順に従います。Ertベスの,ルチェゲットファルの作成に記載されている,ツールチェーン準拠を有効にする関数をシステムターゲットファイルから呼び出す手順は省略します。

提供されるERTテンプレートmakefileをコピーおよび変更して,ターゲットのテンプレートmakefileを作成します。タ,ゲットに最も適合するテンプレ,トmakefileを選択します。この例ではert_lcc64.tmfを使用しますが,ert_vcx64.tmfまたはert_unix.tmfも使用できます。

  1. 作業フォルダ,が,タ,ゲットフォルダ,の作成で以前に作成したタゲットファルフォルダに設定されたままであることを確認します。

    c: / / my_ert_target / my_ert_target工作
  2. c: / / my_ert_target / my_ert_target工作matlabroot/工具箱/编码器/编译/ tmf / ert_lcc64.tmfのコピ,を配置し,my_ert_target_lcc.tmfに名前を変更します。ert_lcc64.tmfファaapl . exe .ルは,LCCコンパaapl . exe .ラ用のコンパaapl . exe . exe ERTテンプレ,トmakefileです。

  3. テキストエディタ,でmy_ert_target_lcc.tmfを開きます。

  4. SYS_TARGET_FILEパラメ,タ,を変更して,.tlcファ▪▪ルのファ▪▪ル参照が使ファ@ @ルに生成されるようにします。以下の行

    SYS_TARGET_FILE = any

    を次のように変更します。

    SYS_TARGET_FILE = my_ert_target.tlc
  5. my_ert_target_lcc.tmfへの変更内容を保存し,ファ。

これで,タゲットによる,コドとホストベスの実行可能ファルの生成ができるようになりました。次の節では,テストモデルを作成し,my_ert_targetを使用してビルドプロセスをテストします。

テストモデルとS-Functionの作成

この節では,後に行うコ,ド生成で使用するための簡単なテストモデルをビルドします。

  1. 作業フォルダ,をc: / / my_targetmodel工作に設定します。

    cd c: / / my_targetmodel工作

    このチュ,トリアルでは,my_targetmodelが作業フォルダ,であることが前提とされていることに注意してください。作成中のターゲットは,作業フォルダー内のビルドフォルダーにコード生成プロセスの出力ファイルを書き込みます。timestwo功能用のインラインコードの生成時には,ビルドプロセスによって,作業フォルダー内にあるs函数のTLC実装が検索されます。

  2. 以下のtimestwoS-Function用のCファルおよびTLCファルを作業フォルダにコピします。

    • matlabroot/工具/模型/ s金宝appimdemos / simfeatures / src /timestwo.c

    • matlabroot/工具/模型/ s金宝appimdemos / simfeatures / tlc_c /timestwo.tlc

  3. timestwo墨西哥ファ苹果苹果ルをc: / / my_targetmodel工作にビルドします。

    墨西哥人timestwo.c
  4. 金宝app®ユザ定義の関数ラブラリのS-Functionブロックを使用して以下のモデルを作成します。モデルを作業フォルダ,にtargetmodelとして保存します。

  5. s函数ブロックをダブルクリックして[ブロックパラメーター]ダイアログボックスを開きます。S-Functionの名前timestwoを入力します。(好的)をクリックします。これで,ブロックはtimestwoMexファaapl . exeルにバaapl . exeンドされます。

  6. モデルエクスプローラーまたは[コンフィギュレーションパラメーター]ダイアログボックスを開いて,[ソルバ]ペ@ @ンを選択します。

  7. ソルバ,の[タ电子邮箱プ][固定ステップ]に設定し,[適用]をクリックします。

  8. モデルを保存します。

  9. スコ,プを開き,シミュレ,ションを実行します。timestwoS-Functionの入力が2倍になったことを確認します。

次の節で使用するためにtargetmodelモデルは開いたままにしておいてください。次の節では,テストモデルを使用してコ,ドを生成します。

タ,ゲットの動作の確認

この節では,my_ert_targetカスタムタ,ゲット用にtargetmodelを設定し、そのタ、ゲットを使用してコ、ドの生成と実行可能ファ、ルのビルドを行います。

  1. [コンフィギュレ,ションパラメ,タ,]ダ,[コ,ド生成]ペ@ @ンを選択します。

  2. [参照]をクリックし、システムタ、ゲットファ、ルブラウザ、を開きます。

  3. ブラウザ,で我的基于ert的目标を選択し,(好的)をクリックします。

  4. これで,[コンフィギュレ,ションパラメ,タ,]ダ,my_ert_target[コ,ド生成]ペ@ @ンが表示されます。

  5. [コ,ド生成][レポ,ト]ペ电子邮箱ンで,[コ,ド生成レポ,トを作成]オプションを選択します。

  6. [適用]をクリックしてモデルを保存します。モデルがmy_ert_target用に設定されます。

  7. モデルを作成します。ビルドに成功すると,matlabコマンドウィンドウに以下のメッセ,ジが表示されます。

    ###已创建可执行文件:../targetmodel.exe成功完成模型:targetmodel的构建过程

    作業フォルダ,には,targetmodel.exeファルとビルドフォルダtargetmodel_my_ert_target_rtwがあります。このビルドフォルダには,生成されたコドとその他のファルが含まれています。作業フォルダ,には,slprjフォルダ,も含まれています。このフォルダ,はビルドプロセスによって内部的に使用されます。

    コドジェネレタによって,コド生成レポトも作成されます。

  8. 生成されたコ,ドを表示するには[cコ,ド]タブで[コ,ドの表示]をクリックします。コ,ド生成レポートの[コンテン]ペereplicationンでtargetmodel.cリンクをクリックします。

  9. targetmodel.cでモデルステップ関数targetmodel_stepを探します。以下のコードを確認してください。

    /* S-Function Block: /S-Function */ /* input乘以2 */ targetmodel_B. target - function BlockSFunction = targetmodel_B。SineWave * 2.0;

    このコ,ドが存在することで,my_ert_targetカスタムターゲットが,モデルのs函数ブロック用のインライン出力計算を生成したことが確認できます。

関連するトピック