メインコンテンツ

このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。

C29x ハードウェア割り込み

割り込みサービス ルーチンから下流の Function-Call Subsystem をトリガーする

R2025a 以降

  • Hardware Interrupt block

ライブラリ:
C2000 Microcontroller Blockset / F29H85x

説明

Hardware Interrupt ブロックを使用して、選択したイベントに反応する割り込みサービス ルーチン (ISR) をモデルの生成されたコード内に自動的に作成します。ISR は、ブロックのイベント端子に関連付けられた下流の Function-Call Subsystem を実行します。

イベント出力端子に関連付けられた Function-Call Subsystem は、ISR の優先順位と同じ優先順位で実行されます。

このブロックを使用すると、次のことが可能になります。

  • ISR を作成します。

  • ISR の優先順位を設定する。

  • 割り込みプリエンプションを有効または無効にする。

このブロックは、指定された ISR および選択されたイベントに対してのみコードを生成します。構成を変更するには、割り込みおよび特定のトリガー オプションを有効にして、選択した周辺装置の設定を使用します。

たとえば、Hardware Interrupt ブロックで ADC 周辺装置用の ISR を作成するには、次のようにします。

  • モデルには、[Analog to digital Converter] (ADC) ブロックが必要です。

  • Hardware Interrupt ブロックの [割り込みグループ] パラメーターで Analog to digital converter (ADC) を選択し、[割り込み名] パラメーターで ADCA#_INT を選択します。

  • [サービス対象イベント] パラメーターで、イベント名 EOC event または Overflow event を選択します。

カスタム イベントの使用に適さない場合の詳細については、制限 (Embedded Coder)を参照してください。

端子

出力

すべて展開する

このブロックの出力は関数呼び出しです。関数呼び出し出力の数は、ISR で処理するために選択されたイベントと同じになります。

パラメーター

すべて展開する

割り込みグループは、同じタイプのペリフェラルのすべての ISR をリストします。割り込みグループを選択すると、[割り込み名] パラメーターの値のリストが変更されます。

割り込み名は、Hardware Interrupt ブロックに対して生成する ISR を指定します。[割り込み] の名前は、プロセッサの割り込みベクトル テーブル内の特定のエントリに対応します。使用可能な ISR は割り込みグループによって異なります。

この読み取り専用パラメーターは、ターゲット ハードウェアの割り込みベクトル テーブル内の選択された ISR の位置を示します。

選択した [割り込み名] のイベントを処理するには、[サービス対象イベント] グループからイベントまたはカスタム イベントとそれぞれのイベント実行順序を選択します。選択した他のイベントと一緒に実行するカスタム イベントを選択できます。詳細については、制限 (Embedded Coder)を参照してください。

Events to serve

このパラメーターで指定した値により、下流の Function-Call Subsystem の優先順位が設定されます。選択した (ISR) の Simulink® タスクの優先順位は、モデルの基本レートの優先順位を基準とします。

メモ

既定では、モデルの基本サンプル レートの優先順位は 40 に設定されており、優先順位の値が低いほど優先順位の高いタスクであることを示します。これを実現するには、[コンフィギュレーション パラメーター][ソルバー] ペインで [優先順位の値が高いほどタスクの優先順位が高いことを示す] オプションを有効にする必要があります。

選択した割り込みサービス ルーチンの実行中に他のすべての割り込みをブロックするには、[割り込みサービス ルーチンを Atomic サブシステムとして実行] を有効にします。

各イベントの実行後に割り込みサービス ルーチン内のイベント ステータスをクリアするには、このパラメーターを選択します。

制限

ブロックまたはコンフィギュレーション パラメーターから割り込みまたはイベント生成を選択した場合は、カスタム イベントを使用しないでください。生成されたコードをハードウェア ボード上で実行すると、Hardware Interrupt サービス ルーチン内で無期限に処理が停止した状態が生じることがあります。サポートされているイベントをカスタム イベントとして使用する場合は、ブロックからのサポートされているイベント生成が有効になっていないことを確認してください。

また、カスタム イベントの有効化が Initialize Subsystem の一部にならないようにしてください。実行時に実行される必要があります。

バージョン履歴

R2025a で導入