Cortex-MシリーズではCPUベンダーによってハード的に実装されている
割り込みレベルのビット数が違うため割り込みレベルの設定できる範囲が変わります。
例) Spansion社のFM3シリーズ ・・・ 4ビット
Freescale社のKinetis-M4シリーズ ・・・ 4ビット
Cortex-M自体の仕様としては、割り込みレベルをソフトウェア側で8bitの範囲で
表現し、それをプリエンプト 優先レベルビット数、サブ優先レベルビット数に分割しています。
このプリエンプト 優先レベルビットをハードの制限の範囲でuC3が任意に設定できます。
7 hard[4] 0
+------------------------+-----------------------------+
|preempt-bit [7:4] | sub-prioritybit [3:0] |
+------------------------------------------------------+
例に示した2つのチップのシリーズでは設定可能なプリエンプト優先レベルビットは
1?4bitの範囲です。uC3のコンフィギュレーターはこの範囲で優先レベルビット数を
カスタマイズ可能です。そして、その範囲では優先レベルグループは3以上(3?6)の
範囲が適用されます。
たとえばvset_ipl関数で指定する割り込みレベルは0x00(最高)?0xFF(最低)ですが、
優先度レベルグループ3(=プリエンプションビットを4とコンフィギュレータで指定したとき)
の場合
0x00, 0x10, 0x20, ・・・,0xE0, 0xF0
と0x10刻みで16段階の割り込み優先レベルが設定可能です。