2種類のソフト割り込みは、互いに独立して動作していますので、それぞれの関連付け等の設定はありません。
以下にそれぞれのソフト割り込みを簡単にご説明いたします。
- 1) CP0 CAUSEレジスタによるソフト割り込み(要因数2)
CP0 CAUSEの IP(1:0)ビットをソフトウエアで操作することで割り込みを発生させます。
発生する割り込みは、通常割り込み例外で、CAUSEレジスタの IP(1:0)
フィールドを読むことにより、例外原因を特定します。
このソフト割り込みは、ICUとは関係なく、また ICUでマスクすることもできません。
- 2) ICU SOFTINTREGレジスタによるソフト割り込み(要因数4)
SOFTINTREGレジスタの SOFTINTR(3:0)ビットをソフトウエアで操作することで割り込みを発生させます。
発生する割り込みは、通常割り込み例外で、INT0割り込み(IP2)となります。
ICUの SYSINT1REGの SOFTINTRビットで例外の発生を知ることができ、
SOFTINTREGレジスタの SOFTINTR(3:0)で4種類のうちどれを発生させたか特定できます。
また、MSYSINT1REGの SOFTINTRビットでマスクすることも可能です。
割り込みを ICUで管理できること、タイマ等以外の例外を INT0に集約できることから、
こちらのソフト割り込みの方が使用されることが多いようです。