Cortex-Mの割り込みレベルと優先グループの関係がよくわかりません

弊社RTOS「μC3/Compact」、「μC3/Standard」に関するご質問
返信する
アバター
eForce技術担当
記事: 193
登録日時: 2014年4月24日(木) 14:18

Cortex-Mの割り込みレベルと優先グループの関係がよくわかりません

投稿記事 by eForce技術担当 » 2014年7月11日(金) 13:06

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段階の割り込み優先レベルが設定可能です。

返信する