インテルのみ表示可能 — GUID: iga1457455599901
Ixiasoft
インテルのみ表示可能 — GUID: iga1457455599901
Ixiasoft
37.8.2. ソフトウェア割り込み
ソフトウェアでは、適切なVICのコントロールおよびステータスレジスター (CSR) に書き込むことにより、任意のVIC割り込みをトリガーすることができます。ソフトウェアでは、任意のハードウェア割り込みソースに接続されている割り込み、およびハードウェアに接続されていない割り込み (ソフトウェアのみでの割り込み) をトリガーすることができます。
ソフトウェアからの割り込みトリガーは、デバッグに役立ちます。ソフトウェアでは、割り込みがトリガーされるタイミングを制御し、システムの割り込み応答を測定することができます。
ソフトウェアのみでの割り込みを使用し、割り込みの優先順位を変更することができます。優先順位の高いハードウェア割り込みに応答するISRでは、ハードウェアに必要な最小限の処理を実行し、その後、優先レベルの低いソフトウェアのみでの割り込みをトリガーして割り込み処理を完了させることができます。
ソフトウェア割り込みの管理には、次の関数を利用することができます。
- alt_vic_sw_interrupt_set()
- alt_vic_sw_interrupt_clear()
- alt_vic_sw_interrupt_status()
BSPを生成すると、これらの関数の実装は、bsp/hal/drivers/src/altera_vic_sw_intr.cにあります。
ソフトウェア割り込みのレジスター
alt_ic_isr_register( VIC1_INTERRUPT_CONTROLLER_ID, SOFT_IRQ, soft_interrupt_latency_irq, NULL, NULL)
タイマー割り込みのレジスター (比較用)
alt_ic_isr_register( LATENCY_TIMER_IRQ_INTERRUPT_CONTROLLER_ID, LATENCY_TIMER_IRQ, timer_interrupt_latency_irq, LATENCY_TIMER_BASE, NULL);
次のコードでソフトウェア割り込みを生成します。
alt_vic_sw_interrupt_set(VIC1_INTERRUPT_CONTROLLER_ID, SOFT_IRQ);