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プログラムの実行 | ![]() |