最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

非同期イベント

非同期のサポート

通常、"周期的な" 割り込みソース (ハードウェア タイマーなど) からコードを生成する予定のモデルに時間を指定します。周期的なクロック シングルレート モデルのブロックは、タイマー割り込みレート (モデルの基本レート) で実行されます。周期的なクロック マルチレート モデルのブロックは、基本レートまたはそのレートの倍数で実行されます。

また、多くのシステムは、システムの周期的なタイミング ソースに対して "非同期" となるイベントに対応して、ブロックの実行をサポートしなければなりません。たとえば、周辺機器は、割り込みを生成して、入力操作の完了の信号を送信します。システムは、たとえば割り込み機器からデータを取得して、このような割り込みを与えなければなりません。

このトピックでは、ブロックを使用して、ハードウェアで生成された割り込みの点検、タイマーの保守、非同期の読み取り/書き込み操作、RTOS (リアルタイム オペレーティング システム) での非同期タスクの発生など、非同期イベントの処理に使用するコードをモデル化および生成する方法について説明します。このブロック ライブラリは、RTOS 例 (VxWorks®) との統合を示しています。ブロックのターゲットは RTOS 例ですが、この章のソース コード解析と他の情報を使用して、別のターゲット RTOS の非同期イベント処理をサポートするブロックを作成することもできます。[1]

リアルタイム オペレーティング システム例の呼び出しのブロック ライブラリ

次の図は、vxlib1 ブロック ライブラリのブロックを示しています。

このライブラリの主要なブロックは Async Interrupt ブロックと Task Sync ブロックです。これらのブロックは、RTOS 例 (VxWorks) をターゲットにしています。これらのブロックに変更を加えて使用し、自分の RTOS アプリケーションをサポートできます。

メモ

このブロックは vxlib1 ライブラリ (Async InterruptTask Sync) でシミュレーションとコード生成に使用できます。これらのブロックは、ターゲット環境でカスタム ブロックを開発するのに役立つ開始点の例を提供します。

RTOS 例以外の RTOS の非同期サポートを実装するには、ガイドラインを使用します。コードの例を使用すると、vxlib1 ライブラリ ブロックをターゲットの RTOS に合わせて調整するときに役に立ちます。このトピックは、カスタマイズされた非同期ライブラリの作成で説明されています。

vxlib1 ライブラリのブロックを使用して、以下の内容を実行できます。

  • 割り込みレベル コードを生成する — Async Interrupt ブロック

  • Function-Call Subsystem を呼び出す RTOS タスクを発生させる — Task Sync ブロック

  • 異なるタスクとして実行中のブロック間でのデータの転送時にデータの整合性を確保する — Protected RT ブロック

  • 異なるタスクとして実行中のブロック間でのデータの転送時に非保護/非確定的モードを使用する — Unprotected RT ブロック

非同期的なコンテキストでの Protected Rate Transition ブロックと Unprotected Rate Transition ブロックの使用は、Rate Transitions ブロックと Asynchronous ブロックを参照してください。レート変換の一般的な情報は、時間ベースのスケジューリングとコード生成を参照してください。

RTOS 統合のためのブロック ライブラリへのアクセス

RTOS 例 (VxWorks) ブロック ライブラリにアクセスするには、MATLAB® コマンド vxlib1 を入力します。

RTOS 統合のためのライブラリ ブロックを使用したコードの生成

vxlib1 ライブラリ ブロックを含むモデルから RTOS 例に互換するアプリケーションを生成するには、モデルに次のコンフィギュレーション パラメーター値を使用します。

  • [コード生成][システム ターゲット ファイル] パラメーター (SystemTargetFile) の参照メニューから、システム ターゲット ファイル ert.tlc (Embedded Coder® ライセンスが必要) を選択します。

  • [コンフィギュレーション パラメーター][コード生成][コード生成のみ] パラメーター (GenCodeOnly) を有効にします。

  • [コンフィギュレーション パラメーター][コード生成][テンプレート][カスタム テンプレート][メイン プログラム例の生成] パラメーター (GenerateSampleERTMain) を有効にします。

  • [コンフィギュレーション パラメーター][コード生成][テンプレート][カスタム テンプレート][ターゲット オペレーティング システム] パラメーター (TargetOS) のメニューから [VxWorksExample] を選択します。

例およびその他の情報

この章のトピックに関連する情報は、以下の場所でも説明しています。

  • tornado.tlc システム ターゲット ファイルと vxlib1 ブロック ライブラリを使用する rtwdemo_async モデル。この例を開くには、MATLAB コマンド プロンプトで rtwdemo_async と入力します。

  • tornado.tlc システム ターゲット ファイルと vxlib1 ブロック ライブラリを使用する rtwdemo_async_mdlreftop モデル。この例を開くには、MATLAB コマンド プロンプトで rtwdemo_async_mdlreftop と入力します。

  • 時間ベースのスケジューリングとコード生成。周期的なモデルの一般的なマルチタタスクとレート変換について説明します。

  • Embedded Coder ドキュメンテーション。タスクの実行とスケジューリングを含む ert.tlc システム ターゲット ファイルについて説明しています。

  • この章で説明されている RTOS 例 (VxWorks) のシステム呼び出しの詳細については、Wind River® Web サイトにある VxWorks システムのドキュメンテーションを参照してください。

関連するトピック


[1] VxWorks is a registered trademark of Wind River Systems, Inc.