| Real-Time Workshop User's Guide | ![]() |
デバイスドライバの必要条件と制限
デバイスドライバブロックを作成するために、つぎのコンポーネントが必要です。
ユーザのS-Functionコードとハードウェア固有のドライバコードは、Simulinkモデル内でS-Functionブロックとなるコンポーネントにコンパイル、リンクされます。MATLABのmexユーティリティは、このコンポーネントをビルドします(WindowsではDLL、UNIXでは共有ライブラリ)。
Real-Time Workshopが提供するS-FunctionテンプレートをドライバのS-Functionの開発のための出発点として利用することを推奨します。テンプレートファイルは、以下の通りです。
matlabroot/simulink/src/sfuntmpl.c
S-Functionテンプレートのコメントのついたバージョンも利用可能です。matlabroot/simulink/src/sfuntmpl.docを参照してください。
デバイスドライバブロックの制限
mdlRTW関数をもたない場合、パラメータの制約は非インラインドライバと同じです。mdlRTW関数をもつ場合、任意のパラメータタイプがサポートされます。リエントラント性
ドライバの設計において、リエントラント性の問題を考慮します。典型的なリアルタイムプログラムでは、タイマ割り込みはrtOneStepを呼び、rtOneStepはMdlOutputsを呼び、MdlOutputsはユーザの入力 (ADC)および出力(DAC)ドライバを呼び出します。この状況で、ドライバは割り込み可能です。
| インラインおよび非インラインドライバ | ドライバのパラメータ化 | ![]() |