Nios® V プロセッサー・ソフトウェア開発者ハンドブック

ID 743810
日付 7/08/2024
Public
ドキュメント目次

9.2.3. ハードウェア ISR の登録

ソフトウェアで ISR をを使用できるようにするには、alt_ic_isr_register() を呼び出して、ISR を登録する必要があります。alt_ic_isr_register() のプロトタイプを以下に示します。
int alt_ic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, void *isr_context, void* flags)

関数には以下のパラメーターがあります。

  • ic_id は、system.h で定義されている割り込みコントローラー識別子 (ID) です。
    • IIC では、ic_id は重要ではありません。
  • irq は、system.h で定義されているデバイスのハードウェア割り込み番号です。
    • IIC の場合、irq は IRQ 番号です。 割り込み優先度は IRQ 番号に逆に対応します。したがって、IRQ 0 は最上位の優先度の割り込みを表し、IRQ 16 は最下位の優先度を表します。
  • isr は、IRQ 番号 irq に応答して呼び出される ISR 関数へのポインターです。
    • ISR 関数のプロトタイプは次のとおりです。
      void (*alt_isr_func) (void* isr_context);

      この関数に提供される入力引数は isr_context です。

      注: isr に対しヌルポインターを登録すると、割り込みがディスエーブルされます。
  • isr_context:
    • デバイスドライバー・インスタンスに関連付けられたデータ構造を指します。
    • 入力引数として ISR 関数に渡されます。コンテキスト固有の情報を ISR に渡すために使用され、任意の ISR 固有の情報を指すことができます。コンテキスト値は HAL に対して不透明です。これは完全にユーザー定義の ISR のために提供されています。
  • flags は予約されています。