このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
ここでは,システムターゲットファイルの構造体に関する情報,システムターゲットファイルをカスタマイズする場合のガイドライン,骨格となるシステムターゲットファイルを作成するために役立つ基本的なチュートリアルについて説明します。
システムタゲットファルは,ビルドプロセスのコド生成段階を制御します。また,システムターゲットファイルを使用すると,エンドユーザーへのターゲットの表示方法も制御できます。システムタゲットファルは次のものを提供します。
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
で指定されるコ,ルバック関数を使用して,エクスタ,ナルモ,ドパラメ,タ,ExtMode
、ExtModeTransport
、ExtModeMexFile
、ExtModeIntrfLevel
を変更することもできます。
ヘッダコメントには,1を超える命令のグルプを指定できます。これらのグループは,それぞれ異なるターゲットコンフィギュレーションとしてシステムターゲットファイルブラウザーに表示されます。上記の例では,コードの最初の2行によって,ERTターゲットの既定のコンフィギュレーションが指定されます。次の2行では,微软®Visual c++®ソリュション(. sln
)ファleiルを作成およびビルドする構成を指定します。以下の図には、これらのコンフィギュレーションがシステム ターゲット ファイル ブラウザーにどのように表示されるかが示されています。
カスタマズ済みのヘッダコメントのサンプルは,カスタムタ,ゲットコンフィギュレ,ションの作成を参照してください。
システムターゲットファイルのこの節では,全体的なコード生成プロセスに関連するグローバル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
:コ,ドジェネレ,タ,では,プリプロセッサ記号RT
とNRT
を定義して,シミュレションコドをリアルタムコドから区別します。これらの記号は,条件付きコンパ。TargetType
変数は,RT
またはNRT
が定義済みであるかどうかを決定します。
ほとんどのタ,ゲットは,リアルタ,ムコ,ドを作成するように設計されています。これらのタ,ゲットは,以下のようにTargetType
を割り当てます。
%assign TargetType = "RT"
モデル参照シミュレーションターゲット,高速化されたシミュレーションターゲット,RSimターゲット,s函数ターゲットなど,ターゲットの中には,リアルタイムでは使用しないコードを生成するターゲットもあります。このようなタ,ゲットは,以下のようにTargetType
を割り当てます。
%assign TargetType = "NRT"
コ,ド生成プロセスは通常codegenentry.tlc
から始まります。システムタゲットファルは次のようにcodegenentry.tlc
を呼び出します。
%包括“codegenentry.tlc”
メモ:
codegenentry.tlc
および下位レベルTLCファ超市ルは,CodeFormat
、TargetType
および语言
が割り当てられていることを前提にしています。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
節は,以下の命令で囲まれています。
/% begin_rtw_options…END_RTW_OPTIONS % /
RTW_OPTIONS
節の最初の部分は,rtwoptions
構造体の配列を定義します。この構造体は,Rtwoptionsを使用したカスタムタ,ゲットオプションの表示で説明されています。
RTW_OPTIONS
節の2番目の部分は,コ,ド生成プロセスのビルドフォルダ,名およびその他の設定を定義するrtwgensettings
を定義します。rtwgensettings
の詳細にいては,Rtwgensettings構造体を参照してください。
システムタゲットファルの最後の部分はrtwgensettings
構造体を定義します。この構造体には,
ファesc escルに書き込まれ,ビルドプロセスによって使用される情報が格納されています。タ,ゲット開発者の最大の関心の模型
.rtwrtwgensettings
フィ,ルドは,以下のとおりです。
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
構造体配列を使用して,特別な非UI要素を定義することもできます。この要素は,コ,ルバック関数の実行をトリガ,しますが,[コ,ド生成]ペ@ @ンには表示されません。非界面要素を参照してください。
rtwoptions
構造体配列の要素は,グル,プにまとめられています。ア类别
タ▪▪プのヘッダ▪▪要素で始まります。类别
ヘッダ,の既定のフィ,ルドには,そのカテゴリ内に残る要素数が含まれていなければなりません。
类别
ヘッダ,の後には,[コ,ド生成]ペ@ @ンに表示されるオプションが続きます。各カテゴリのヘッダの後には,1以上の定義要素が続きます。
ターゲットオプションの各カテゴリは,[コンフィギュレーションパラメーター]ダイアログボックスの[コ,ド生成]にリストされているオプションに該当します。
表Rtwoptions構造体フィ,ルドのまとめには,rtwoptions
構造体のフィ,ルドが要約されています。
サンプルrtwoptions構造体-以下のrtwoptions
構造体は,サンプルシステムタ,ゲットファ,ル
からの抜粋です。このコ,ドは,構造体配列matlabroot
/工具箱/ rtw / rtwdemos / rtwoptions_demo /usertarget.tlcrtwoptions
を定義しています。最初の(ヘッダ,)要素の既定のフィ,ルドは,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を使用するサンプルシステムタ@ @ゲットファ@ @ルを参照してください。 |
|
コ,ルバック使用のサンプルは,カスタマ@ @ズ済みrtwoptionsを使用するサンプルシステムタ@ @ゲットファ@ @ルを参照してください。 |
|
オプションの既定値( |
|
|
|
オプションに関連付けられているテンプレトmakefileトクン(存在する場合)。 |
modelReferenceParameterCheck |
参照されているモデルおよびその親モデル内でオプションが同じ値を取らなければならないかどうかを指定します。このフィ,ルドに値“上” が指定されている場合,または何も指定されていない場合,オプションの値は同じでなければなりません。このフィ,ルドが“关闭” に指定されている場合,これらのオプション値は異なる値を取ることができます。コンフィギュレ,ションオプションの値一致の制御を参照してください。 |
|
要素は表示されませんが,クロ,ズまたはオ,プンコ,ルバックを起動するために使用されます。非界面要素を参照してください。 |
|
コ,ルバック使用のサンプルは,カスタマ@ @ズ済みrtwoptionsを使用するサンプルシステムタ@ @ゲットファ@ @ルを参照してください。 |
|
“rt_ | _rt |没有的 |
|
オプション用のラベル。 |
|
オプションに関連付けられているTLC変数の名前。 |
|
マウスがア@ @テム上に置かれたときに表示されるヘルプテキスト。 |
|
要素のタ电子邮箱プ: |
非UI要素-タereplicationプがNonUI
である配列rtwoptions
の要素は,コ,ルバックの起動のみを目的としています。NonUI
要素は,[コンフィギュレションパラメタ]ダアログボックスには表示されません。NonUI
要素を使用すると,ダイアログボックスの開閉時に,ユーザーインターフェイスの要素に関連しないコールバックを実行できます。例にいては,次の節カスタマ@ @ズ済みrtwoptionsを使用するサンプルシステムタ@ @ゲットファ@ @ルを参照してください。
メモ
タereplicationプNonUI
または编辑
要素の既定値によって,その要素で許容される値のセットが決まります。
既定値が' 0 '
または' 1 '
である場合は次のとおりです。
タereplicationプNonUI
の場合,要素はブ,ル値を格納する。
タereplicationプ编辑
の場合,要素はint32
型の値を格納する。
既定値に' 0 '
または' 1 '
以外の整数が含まれる場合,要素はint32
型の値を格納します。
既定値に整数が含まれない場合,要素は文字ベクトルとして評価されます。
[コ,ド生成]ペ@ @ンでカスタムオプションを表示および処理するためのrtwoptions
構造体の使用方法のサンプルとして,MATLABファイルコールバック関数を使用した実際のシステムターゲットファイルが用意されています。このサンプルは,コ,ルバックAPIと互換性があります。
サンプルタ、ゲットファ、ルは、以下のフォルダ、(開く)に格納されています。
matlabroot /工具箱/ rtw / rtwdemos / rtwoptions_demo
このサンプルタゲットファルには,以下が含まれています。
usertarget.tlc
:サンプルシステムタゲットファル。このファイルでは,カスタムメニュー,チェックボックスおよびエディットフィールドを定義する方法を説明します。ファ▪▪ルでは,コ▪▪ルバックの使用に▪▪いても説明します。
usertargetcallback.m
:メニュによって起動されるmatlabファルコルバック。
この節を学習する場合は,サンプルファ。サンプルシステムタゲットファルusertarget.tlc
には,以下のカスタムタ,ゲットオプションを表示するためのrtwoptions
の使用方法が説明されています。
(执行模式)メニュ。
[日志执行时间]チェックボックス。
[リアルタeconp econpム割り込みソス]メニュ。このメニュは,外部ファルusertargetcallback.m
で定義されているコ,ルバックを実行します。このメニューに関連付けられているTLC変数は,コールバックに渡され,メニューの現在の値を表示します。
[信号测井缓冲区大小为2倍]エディットフィ,ルド。
[コンフィギュレーションパラメーター]ダイアログボックスにあるサンプルターゲットオプションを操作しながら,サンプルコードを学習してみてください。サンプルタゲットファルを使用するには,以下の手順を行います。
(開く)を作業フォルダ,にします。matlabroot
/工具箱/ rtw / rtwdemos / rtwoptions_demo
使用するモデルを開きます。
[コンフィギュレ,ションパラメ,タ,]ダ,[コ,ド生成]ペ@ @ンを選択します。
[参照]をクリックします。システムタゲットファルブラウザが開きます。usertarget.tlc
を選択します。(好的)をクリックします。
[コ,ド生成]ペ@ @ンにサブタブ[用户首选目标选项(I)]が表示されたことを確認します。
このカテゴリのオプションを操作し,[コンフィギュレーションパラメーター]ダイアログボックスを開閉する際に,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コドを起動する方法
複数の開発環境をサポ,トする方法
システムタゲットファルを更新する際の考慮事項
タゲット固有のコド生成機能を実装しなければならない場合,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
が同じハドウェアデバスを表す文字ベクトルである場合,trueを返します。たとえば,次の呼び出しは真を返します。类型2
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
は,crl値またはエescリアスを含む文字ベクトルを示します。name2
関数RTW.isTflEq
は,
とname1
が同じコド置換ラブラリを表す文字ベクトルである場合,trueを返します。たとえば,次の呼び出しは真を返します。name2
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
を作成します。ターゲットは,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
フォルダ,を作成し,アクセス可能な状態にするには,次を行います。
タゲットルトフォルダmy_ert_target
を作成します。WindowsプラットフォムのMATLABコマンドウィンドウに以下を入力します。
CD c:/work mkdir my_ert_target
タゲットルトフォルダ内に,タゲットファルを保存するサブフォルダを作成します。
mkdir my_ert_target / my_ert_target
これらのフォルダをmatlabパスに追加します。
添加路径c:/work/my_ert_target
テストモデル,S-Functionおよび生成されたコ,ドを保存するためのフォルダ,my_targetmodel
を作成します。
mkdir my_targetmodel
ERTターゲット用の標準のシステムターゲットファイルをコピーし変更して,独自のターゲット用のシステムターゲットファイルを作成します。その後,システムターゲットファイルブラウザーおよび[コンフィギュレーションパラメーター]ダイアログボックス内に新しいターゲットを表示してシステムターゲットファイルを検証します。
システムタゲットファルの編集-システムタゲットファルを編集するには,次の手順を使用します。
作業フォルダ,をタ,ゲットフォルダ,の作成で作成したフォルダ,に変更します。
cd c: / / my_ert_target / my_ert_target工作
c: / / my_ert_target / my_ert_target工作
に
のコピ,を配置し,matlabroot
/ rtw / c / ert /ert.tlcmy_ert_target.tlc
に名前を変更します。ファereplicationルert.tlc
はertタゲット用のシステムタゲットファルです。
任意のテキストエディタ,でmy_ert_target.tlc
を開きます。
システムターゲットファイルをシステムターゲットファイルブラウザーで表示可能にし,関連付けられているTMF,使
コマンドおよびエクスターナルモードのインターフェイスファイル(存在する場合)を定義するヘッダーコメント行を命令で置き換えて,システムターゲットファイルをカスタマイズします。これらの命令の詳細にいては,ヘッダ,コメントを参照してください。
my_ert_target.tlc
のヘッダ,コメントを以下のヘッダ,コメントで置き換えます。
SYSTLC: My ERT-based Target TMF: my_ert_target_lcctmf MAKE: make_rtw
ファereplicationルmy_ert_target.tlc
は,タ,ゲットオプションの継承で説明されているメカニズムを使用して標準のertオプションを継承します。したがって,既存のrtwoptions
構造体定義は必要ありません。RTW_OPTIONS節を、以下のコードのみが含まれるように編集します。
/ % BEGIN_RTW_OPTIONS %----------------------------------------% % 环球套票代码生成配置设置 % %----------------------------------------% rtwgensettings。BuildDirSuffix = '_ert_rtw';END_RTW_OPTIONS % /
RTW_OPTIONS
節の末尾の後にある,命令开始configset_target_component和结束configset_target_component
で区切られたコ,ドを削除します。このコ,ドは,MathWorks社内の開発者のみが使用するコ,ドです。
rtwgenSettings
構造体内のビルドフォルダ,の添字をRtwgensettings構造体で説明されている規則に従って変更します。
添字を_my_ert_target
カスタムタ,ゲットに文字ベクトルに設定するには,以下の行
rtwgensettings。BuildDirSuffix= '_ert_rtw'
を次のように変更します。
rtwgensettings。BuildDirSuffix= '_my_ert_target_rtw'
Ertタ,ゲットからオプションを継承し,Rtwgensettings構造体で説明されたように版本14以降との互換性を宣言するためにrtwgenSettings
構造体を変更します。以下のコ,ドを定義rtwgenSettings
に追加します。
rtwgensettings。本文建立= 'ert.tlc'; rtwgensettings.Version = '1';
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 %/
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オプションを継承し表示できることを以下の手順で検証できます。
新しいモデルを作成します。
モデルエクスプローラーまたは[コンフィギュレーションパラメーター]ダイアログボックスを開きます。
[コ,ド生成]ペ@ @ンを選択します。
[参照]をクリックし、システムタ、ゲットファ、ルブラウザ、を開きます。
ファルブラウザ内で,タゲットのリストをスクロルして,新しいタゲットmy_ert_target.tlc
を探します(この手順では,タ,ゲットフォルダ,の作成で事前に設定されたようにmatlabパスにc: / / my_ert_target / my_ert_target工作
が含まれていることを前提にしています)。
我的基于ert的目标
を選択して,(好的)をクリックします。
[コ,ド生成]ペ▪▪▪▪ンには,ここで,モデルがmy_ert_target.tlc
タ,ゲット用に設定されていることが表示されます。[システムタゲットファル]、[言語]、[ン]および[ビルド構成]フィ,ルドが以下のように表示されます。
[我的目标选择]ペ@ @ンを選択します。タ,ゲットには,rtwoptions
構造体で定義された3のチェックボックスオプションが表示されます。
[コ,ド生成]ペ@ @ンを選択し,システムタ@ @ゲットファ@ @ルブラウザ@ @を再度開きます。
嵌入式编码器タ,ゲット(ert.tlc
)を選択します。タ,ゲットには,標準の ERT オプションが表示されます。
モデルを閉じます。モデルを保存する必要はありません。
骨格となるタゲットのシステムタゲットファルが完成しました。ツールチェーンアプローチを使用する場合,ターゲットにビルドプロセスを呼び出す準備が整っています。
テンプレートmakefileアプローチを使用する場合,システムターゲットファイルヘッダーコメント内のTMFへの参照(my_ert_target_lcc.tmf
)により,TMFファイルが配置されるまで,ターゲットに対してビルドプロセスを呼び出すことはできません。最初に,my_ert_target_lcc.tmf
ファ@ @ルを作成しなければなりません。
ツールチェーンmakefileアプローチをツールチェーン準拠のカスタムターゲットで使用する場合,テンプレートmakefileアプローチに適用される手順を省略します(このセクションをスキップします)。
テンプレートmakefileアプローチを使用する場合,テンプレートmakefileに適用される手順に従います。Ertベスの,ルチェゲットファルの作成に記載されている,ツールチェーン準拠を有効にする関数をシステムターゲットファイルから呼び出す手順は省略します。
提供されるERTテンプレートmakefileをコピーおよび変更して,ターゲットのテンプレートmakefileを作成します。タ,ゲットに最も適合するテンプレ,トmakefileを選択します。この例ではert_lcc64.tmf
を使用しますが,ert_vcx64.tmf
またはert_unix.tmf
も使用できます。
作業フォルダ,が,タ,ゲットフォルダ,の作成で以前に作成したタゲットファルフォルダに設定されたままであることを確認します。
c: / / my_ert_target / my_ert_target工作
c: / / my_ert_target / my_ert_target工作
に
のコピ,を配置し,matlabroot
/工具箱/编码器/编译/ tmf / ert_lcc64.tmfmy_ert_target_lcc.tmf
に名前を変更します。ert_lcc64.tmf
ファaapl . exe .ルは,LCCコンパaapl . exe .ラ用のコンパaapl . exe . exe ERTテンプレ,トmakefileです。
テキストエディタ,でmy_ert_target_lcc.tmf
を開きます。
SYS_TARGET_FILE
パラメ,タ,を変更して,.tlc
ファ▪▪ルのファ▪▪ル参照が使
ファ@ @ルに生成されるようにします。以下の行
SYS_TARGET_FILE = any
を次のように変更します。
SYS_TARGET_FILE = my_ert_target.tlc
my_ert_target_lcc.tmf
への変更内容を保存し,ファ。
これで,タゲットによる,コドとホストベスの実行可能ファルの生成ができるようになりました。次の節では,テストモデルを作成し,my_ert_target
を使用してビルドプロセスをテストします。
この節では,後に行うコ,ド生成で使用するための簡単なテストモデルをビルドします。
作業フォルダ,をc: / / my_targetmodel工作
に設定します。
cd c: / / my_targetmodel工作
このチュ,トリアルでは,my_targetmodel
が作業フォルダ,であることが前提とされていることに注意してください。作成中のターゲットは,作業フォルダー内のビルドフォルダーにコード生成プロセスの出力ファイルを書き込みます。timestwo
功能用のインラインコードの生成時には,ビルドプロセスによって,作業フォルダー内にあるs函数のTLC実装が検索されます。
以下のtimestwo
S-Function用のCファルおよびTLCファルを作業フォルダにコピします。
matlabroot
/工具/模型/ s金宝appimdemos / simfeatures / src /timestwo.c
matlabroot
/工具/模型/ s金宝appimdemos / simfeatures / tlc_c /timestwo.tlc
timestwo
墨西哥ファ苹果苹果ルをc: / / my_targetmodel工作
にビルドします。
墨西哥人timestwo.c
金宝app®ユザ定義の関数ラブラリのS-Functionブロックを使用して以下のモデルを作成します。モデルを作業フォルダ,にtargetmodel
として保存します。
s函数ブロックをダブルクリックして[ブロックパラメーター]ダイアログボックスを開きます。S-Functionの名前timestwo
を入力します。(好的)をクリックします。これで,ブロックはtimestwo
Mexファaapl . exeルにバaapl . exeンドされます。
モデルエクスプローラーまたは[コンフィギュレーションパラメーター]ダイアログボックスを開いて,[ソルバ]ペ@ @ンを選択します。
ソルバ,の[タ电子邮箱プ]を[固定ステップ]
に設定し,[適用]をクリックします。
モデルを保存します。
スコ,プを開き,シミュレ,ションを実行します。timestwo
S-Functionの入力が2倍になったことを確認します。
次の節で使用するためにtargetmodel
モデルは開いたままにしておいてください。次の節では,テストモデルを使用してコ,ドを生成します。
この節では,my_ert_target
カスタムタ,ゲット用にtargetmodel
を設定し、そのタ、ゲットを使用してコ、ドの生成と実行可能ファ、ルのビルドを行います。
[コンフィギュレ,ションパラメ,タ,]ダ,[コ,ド生成]ペ@ @ンを選択します。
[参照]をクリックし、システムタ、ゲットファ、ルブラウザ、を開きます。
ブラウザ,で我的基于ert的目标
を選択し,(好的)をクリックします。
これで,[コンフィギュレ,ションパラメ,タ,]ダ,my_ert_target
の[コ,ド生成]ペ@ @ンが表示されます。
[コ,ド生成]、[レポ,ト]ペ电子邮箱ンで,[コ,ド生成レポ,トを作成]オプションを選択します。
[適用]をクリックしてモデルを保存します。モデルがmy_ert_target
用に設定されます。
モデルを作成します。ビルドに成功すると,matlabコマンドウィンドウに以下のメッセ,ジが表示されます。
###已创建可执行文件:../targetmodel.exe成功完成模型:targetmodel的构建过程
作業フォルダ,には,targetmodel.exe
ファルとビルドフォルダtargetmodel_my_ert_target_rtw
があります。このビルドフォルダには,生成されたコドとその他のファルが含まれています。作業フォルダ,には,slprj
フォルダ,も含まれています。このフォルダ,はビルドプロセスによって内部的に使用されます。
コドジェネレタによって,コド生成レポトも作成されます。
生成されたコ,ドを表示するには[cコ,ド]タブで[コ,ドの表示]をクリックします。コ,ド生成レポートの[コンテン]ペereplicationンでtargetmodel.c
リンクをクリックします。
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函数ブロック用のインライン出力計算を生成したことが確認できます。