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

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

9.3.5.2. HAL を使用したソフトウェア ISR の登録

以下に示すコード例に基づいて、次の実行フローが可能です。
  • ソフトウェア IRQ が生成されます。
  • ソフトウェア ISR が制御を取得します。
    • HAL の一般例外ファネルがプロセッサーの制御を取得し、 sw_isr() ISR をディスパッチします。
  • sw_isr() は、ソフトウェア割り込みを処理し、通常のプログラム動作に戻ります。
  • 通常のプログラム操作は、sw_isr_cnt の更新された値で継続します。

例: HALへのソフトウェアISR ISR の登録

#include "system.h"

#include "sys/msw_interrupt.h"

#include "alt_types.h"

...
/* Declare a global variable to hold the incrementing value. */
volatile alt_u32 sw_isr_cnt = 0;
...
int main() {
  /* Register the ISR. */
  alt_niosv_register_msw_interrupt_handler(sw_isr);
  /* Enable software interrupt. */
  alt_niosv_enable_msw_interrupt();
  /* Generate the software interrupt. */
  alt_niosv_trigger_msw_interrupt();
}