| Real-Time Workshop User's Guide | ![]() |
ERTコードモジュール
この節では、ERTターゲットを構成するコードモジュールとヘッダファイルについてまとめ、それらがどこにあるかを説明します。
生成コードモジュール
Real-Time Workshopは、作業ディレクトリ内にビルドディレクトリを作成して、生成されたソースコードを格納します。ビルドディレクトリは、オブジェクト(.obj)ファイル、makeファイル、およびその他のコード生成プロセス中に作成されたファイルを含みます。
ビルドディレクトリのデフォルト名は、model_ert_rtwです。ビルドディレクトリは、以下の生成されたソースコードモジュールを含みます。
model.c は、生成コードのすべてのエントリポイントを定義します。エントリポイントは以下の通りです。
model_stepは、モデルの1時間ステップに対して必要なすべての計算を実現します。model_initializeは、リアルタイムオブジェクトを初期化します。ロギングが可能な場合は、ロギングオブジェクトも初期化します。model_terminateは、ユーザプログラムのメインループが実行を停止した後に要求されるクリーンアップ操作を行います。Real-Time Workshopは、Terminate function required code generation optionオプションを選択した場合にmodel_terminateを生成します。これらのエントリポイントを呼び出す標準的な方法は、マクロMODEL_STEP, MODEL_INITIALIZEおよびMODEL_TERMINATEによるものです。これらのマクロは、matlabroot/rtw/c/ert/ertformat.hに定義されています。つぎのコードは、それらの使用法を示します。
#include "ertformat.h" MODEL_INITIALIZE(1);
model_export.hは、リアルタイムオブジェクトを定義し、モデルコードのエントリポイントに公開可能なインタフェースを提供します。このインタフェースの使用法の例は、「エントリポイントを直接呼び出す方法」を参照してください。
このヘッダファイルは、model.cに固有のパラメータおよびデータ構造体を定義します。
#include "autobuild.h"
を
で置き換えます。#include "model_export.h"
メインプログラムモジュール
Real-Time Workshopは、モジュールmatlabroot/rtw/c/ert/ert_main.c を組み込みアプリケーションの開発の出発点として提供します。ert_main.cは、生成コードの一部分ではありません。ユーザのカスタムな変更やシミュレーションでの利用のための叩き台として提供されています。
ert_main.cを作業ディレクトリにコピーして、変更を行う前に名前をmodel_ert_main.cに変更することを推奨します。ビルドプロセスは、model_ert_main.objをビルドディレクトリに書き出します。
rt_OneStep。rt_OneStepは、MODEL_STEP を呼び出してモデルの1クロック周期に対する処理を実行します。main関数。mainは、シミュレーションでのみ有効です。mainは、リアルタイムの割り込みドリブンな実行に対して変更しなければなりません。「ERTプログラムの実行」には、要求を満たすように変更するためのガイドラインと共に、メインモジュールの詳しい説明が含まれます。
ユーティリティヘッダファイル
以下のサポートヘッダファイルは、matlabroot/rtw/c/ertに提供されています。
ertformat.hに含まれます。 表 9-1は、ERTヘッダファイルのまとめです。
| ファイル |
ディレクトリ |
| autobuild.h |
ビルドディレクトリ |
ertFormat.h |
matlabroot/rtw/c/ert |
log_object.h,log_macros.h* |
matlabroot/rtw/c/ert |
model.h |
ビルドディレクトリ |
model_export.h |
ビルドディレクトリ |
ユーザ作成コードモジュール
生成モデルコードとのインタフェースを行うためにユーザが作成したコードは、カスタマイズされたメインモジュールを含み、割り込みハンドラ、デバイスドライバブロックやその他のS-ファンクション、およびその他の管理コードやサポートコードを含む場合があります。
ユーザ自身のコードモジュールに対する作業ディレクトリを作成することを推奨します。作業ディレクトリは、MATLABパス上にある必要があります。ERTテンプレートmakefileとシステムターゲットファイルを変更して、ビルドプロセスがソースファイルおよびオブジェクトファイルを見つけられるようにする必要があります。この方法に関する情報は、第17章「リアルタイムシステムをターゲットとする」を参照してください。
| The Real-Time Object | ERTプログラムの実行 | ![]() |