このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
リアルタイム システムのビルド プロセス ワークフロー
ビルド プロセスには、モデルからの C または C++ でのコード生成と、生成されたコードからの実行可能プログラムのビルドが含まれます。この例では、コード生成用の汎用リアルタイム (GRT) または組み込みリアルタイム (ERT) のシステム ターゲット ファイル (STF) を使用できます。結果として得られるスタンドアロン プログラムは、外部のタイミングやイベントとは無関係に開発用コンピューター上で実行されます。
作業フォルダー
この例では、slexAircraftExample
モデルのローカル コピーを使用しており、それは自身のフォルダー aircraftexample
に保存されています。"作業フォルダー" を次のように設定します。
MATLAB® の現在のフォルダー ブラウザーで、書き込みアクセス権があるフォルダーに移動します。
作業フォルダーを作成するには、以下の MATLAB コマンドを入力します。
mkdir aircraftexample
aircraftexample
を作業フォルダーにします。cd aircraftexample
slexAircraftExample
モデルを開きます。openExample('slexAircraftExample')
モデルがSimulink® エディターのモデル ウィンドウに表示されます。
モデル ウィンドウで、[ファイル] 、 [名前を付けて保存] を選択します。作業フォルダー
aircraftexample
に移動します。slexAircraftExample
モデルのコピーをmyAircraftExample
として保存します。
ビルド フォルダーとコード生成フォルダー
コードを生成する際、コード ジェネレーターは作業フォルダー内に "ビルド フォルダー" を作成します。ビルド フォルダーの名前は
で、ソース モデルと選択したシステム ターゲット ファイルの名前に基づいています。ビルド フォルダーには、生成されたソース コードとビルド プロセス中に作成されたその他のファイルが格納されます。この例の最後に、ビルド フォルダーの内容を確認します。model
_target
_rtw
モデルに Model ブロック (他のモデルに対する参照) が含まれている場合、参照モデルのコードを整理するために、モデル ビルドはCode generation folderに特殊なサブフォルダーを作成します。これらのコード生成フォルダーは製品のビルド フォルダーと併設され、slprj
と命名されます。詳細については、モデル参照階層向けのコードの生成を参照してください。
slprj
フォルダーの下にある _sharedutils
という名前のサブフォルダーに、モデル間で共有できる生成されたコードが含まれます。
コード生成のためのモデル パラメーターの設定
モデルからコードを生成するには、一部のモデル コンフィギュレーション パラメーターを変更しなければなりません。特に、汎用リアルタイム (GRT) システム ターゲット ファイルと他の大部分のシステム ターゲット ファイルでは、モデルで固定ステップ ソルバーを指定する必要があります。
メモ
可変ステップ ソルバーを指定するモデルについて、モデルでもラピッド シミュレーション (rsim
) または S-Function システム ターゲット ファイルが指定されている場合のみ、コード ジェネレーターはコードを作成します。
myAircraftExample
モデルがまだ開かれていなければ、開きます。[コンフィギュレーション パラメーター] ダイアログ ボックスで、ソルバーのコンフィギュレーション パラメーターの値を指定します。
開始時間:
0.0
終了時間:
60
タイプ:
固定ステップ
ソルバー:
[ode5 (Dormand-Prince)]
固定ステップ サイズ (基本サンプル時間):
0.1
各離散レートを個別のタスクとして扱う:
Off
[適用] をクリックします。
モデルを保存します。
ビルド プロセスの構成
モデルのビルド プロセスを構成するには、システム ターゲット ファイル、ツールチェーンまたはテンプレート makefile、make
コマンドを選択します。
これらの例とほとんどのアプリケーションでは、これらのパラメーターを個々に指定する必要はありません。この例では、すぐ実行できる汎用リアルタイム ターゲット (GRT) のコンフィギュレーションを使用します。GRT システム ターゲット ファイルは、デスクトップ コンピューターで実行されるスタンドアロンの実行可能プログラムをビルドします。
GRT システム ターゲット ファイルを選択するには、以下を行います。
myAircraftExample
モデルがまだ開かれていなければ、開きます。[コンフィギュレーション パラメーター] ダイアログ ボックスの [システム ターゲット ファイル] フィールドで、
grt.tlc
と入力します。[適用] をクリックします。[ツールチェーン] (
[Automatically locate an installed toolchain]
) および [ビルド構成] ([Faster Builds]
) の選択肢が表示されます。モデルを保存します。
メモ
[参照] をクリックすると、システム ターゲット ファイル ブラウザーが開き、MATLAB パス上のシステム ターゲット ファイルが表示されます。一部のシステム ターゲット ファイルには、追加製品が必要です。たとえば、ert.tlc
には Embedded Coder® が必要です。
コード生成パラメーターの設定
myAircraftExample
モデルがまだ開かれていなければ、開きます。[コンフィギュレーション パラメーター] ダイアログ ボックスで、設定を指定します。
[コード生成] のビルドの詳細とデバッグを制御する詳細設定パラメーターについては、既定の設定を使用します。
[詳細なビルド (コマンド表示)] (
RTWVerbose
)[.rtw ファイルを残す] (
RetainRTWFile
)[TLC プロファイル] (
ProfileTLC
)[コード生成時に TLC デバッガーを実行] (
TLCDebug
)[コード生成時に TLC カバレッジを実行] (
TLCCoverage
)[TLC アサーションを有効にする] (
TLCAssert
)
既定の [コード生成] 、 [コメント] 設定を使用します。
[コード生成] 、 [識別子] のオプションは、生成コードの外観を制御します。既定の設定を使用します。
[コード生成] 、 [インターフェイス] を選択します。
[共有コードの配置] リストから、
[共有場所]
を選択します。ビルド プロセスによって、ユーティリティの生成コードがCode generation folder内のサブフォルダーに配置されます。[詳細設定パラメーター] の下で、[クラシック コール インターフェイス] チェック ボックスをオフにします。
[詳細設定パラメーター] の下で、[1 つの出力/更新関数] チェック ボックスをオンにします。
[コード生成] 、 [レポート] で、[コード生成レポートを作成] および [レポートを自動的に開く] を選択します。このアクションにより、ソフトウェアは
myAircraftExample
モデルのコード生成レポートを作成し、表示できるようになります。
[適用] をクリックしてモデルを保存します。
プログラムのビルドおよび実行
ビルド プロセスは、モデルから C コードを生成します。次にそれをコンパイルし、生成したプログラムにリンクして実行可能なイメージを生成します。プログラムをビルドおよび実行するには、次の手順に従います。
myAircraftExample
モデルを開いたまま、次のいずれかの手順を実行します。[アプリ] タブで、[Simulink Coder] アプリを開きます。[C コード] タブで、[ビルド] をクリックします。
Ctrl+B キーを押します。
MATLAB コマンド ラインから
slbuild
コマンドを実行します。
コード生成とコンパイルのメッセージがコマンド ウィンドウに表示されます。初期のメッセージは以下のとおりです。
### Starting build procedure for model: myAircraftExample
その後の多くのメッセージの内容は、コンパイラとオペレーティング システムによって異なります。最終メッセージは、以下のとおりです。
### Created executable myAircraftExample.exe ### Successful completion of build procedure for model: myAircraftExample ### Creating HTML report file index.html
これで、コード生成フォルダーに実行可能ファイル
myAircraftExample.exe
(Microsoft® Windows® プラットフォーム) またはmyAircraftExample
(UNIX® プラットフォーム) が格納されます。さらにビルド プロセスによって、Code generation folder内にslprj
フォルダーとmyAircraftExample_grt_rtw
フォルダーが作成されています。メモ
myAircraftExample
モデルのコード生成後、ビルド プロセスでコード生成レポートが表示されます。コード生成レポートの作成および使用方法の詳細については、レポート生成を参照してください。ビルド後に作業フォルダーの内容を確認するには、
dir
またはls
コマンドを入力してください。>> dir . myAircraftExample.slx slprj .. myAircraftExample.slx.autosave myAircraftExample.exe myAircraftExample_grt_rtw
コマンド ウィンドウから実行可能プログラムを実行するには、「
!myAircraftExample
」と入力します。「!
」では、後続のコマンドがオペレーティング システムに渡され、オペレーティング システムによってスタンドアロンのmyAircraftExample
プログラムが実行されます。>> !myAircraftExample ** starting the model ** ** created myAircraftExample.mat **
ビルド フォルダーに生成されたファイルを表示するには、
dir
またはls
コマンドを再び使用します。生成されるファイルの一覧は、MATLAB のプラットフォームとバージョンによって異なります。次に Windows プラットフォームの一覧の例を示します。>> dir myAircraftExample_grt_rtw . rt_main.obj myAircraftExample_data.c .. rtmodel.h myAircraftExample_data.obj buildInfo.mat rtw_proj.tmw myAircraftExample_private.h codeInfo.mat myAircraftExample.bat myAircraftExample_ref.rsp myAircraftExample.c myAircraftExample_types.h html myAircraftExample.h myAircraftExample.mk rt_logging.obj myAircraftExample.obj
ビルド フォルダーの内容
ビルド プロセスでは、ビルド フォルダーが作成され、
という名前が付けられます。ここで、model
_target
_rtw
はソース モデルの名前で、model
はモデルに対して選択されたシステム ターゲット ファイルです。この例では、ビルド フォルダーに target
myAircraftExample_grt_rtw
という名前が付けられています。
ビルド フォルダーには以下の生成ファイルが含まれます。
ファイル | 説明 |
---|---|
| モデルを実装するスタンドアロンの C コード |
| パラメーターと状態変数の定義を含む include ヘッダー ファイル |
| 共通の include 定義を含むヘッダー ファイル |
| コードで使用されるデータ型の事前宣言 |
| 静的メイン プログラムに生成コードを含めるためのマスター ヘッダー ファイル (名前は不変で、単に |
myAircraftExample
モデルに作成したコード生成レポートで、各ファイルのリンクが表示されます。リンクをクリックしてファイルの内容を確認できます。
ビルド フォルダーには、ビルド プロセスで使用された他のファイルが含まれています。次のようなものがあります。
myAircraftExample.mk
— 指定されたツールチェーンを使用して実行可能ファイルをビルドするための makefileオブジェクト (
.obj
) ファイルmyAircraftExample.bat
— バッチ コントロール ファイルrtw_proj.tmw
— マーカー ファイルbuildInfo.mat
— 生成コードを別の開発環境に再配置するためのビルド情報myAircraftExample_ref.rsp
— コマンド ライン引数をmex
に含めるためのデータ (Windows システムのみ)
ビルド フォルダーには、html
サブフォルダーも含まれています。このサブフォルダーには、コード生成レポートを構成するファイルが格納されています。詳細については、コード生成レポートを参照してください。
カスタム makefile の生成
コードの生成後、コード ジェネレーターはカスタマイズされた makefile model
.mk
を生成します。生成された makefile は、モデルやハーネス プログラム、ライブラリ、ユーザー提供のモジュールから生成されたソース コードのコンパイルとリンクを make
システム ユーティリティに指示します。コード ジェネレーターは、ビルド プロセスの制御に使用するアプローチに関係なく、ファイル model
.mk
を生成します。
ツールチェーン アプローチを使用する場合、コード ジェネレーターはモデルの [ツールチェーン設定] に基づいて
model
.mk
を作成します。makefile の生成はrtwmakecfg.m
API から変更できます。テンプレート makefile アプローチを使用する場合、コード ジェネレーターは
model
.mk
をシステム テンプレート ファイルsystem
.tmf
(ここでsystem
は選択したシステム ターゲット ファイルの名前) から作成します。システム テンプレート makefile はシステム ターゲット ファイルに合わせて設計されています。テンプレート makefile を変更して、コンパイラ、コンパイラのオプション、および実行可能ファイルの作成に使用する追加の情報を指定することができます。
詳細については、ツールチェーン (ToolchainInfo) またはテンプレート makefile のビルド プロセスの設定を参照してください。