6.1.4. 例外の優先度

複数の例外が同時に発生した場合、これらの例外は決まった優先度順に処理されます。各例外が順に処理されてから、ユーザプログラムの実行が継続されます。すべての例外が同時に発生することはあり得ません。例えば、未定義命令例外と SVC 例外は、どちらもある命令の実行によってトリガがかかるため、同時に発生することはありません。

Table 6.2 は、例外とそれに対応するプロセッサモードおよび処理の優先度を示しています。

Table 6.2. 例外の優先度

ベクタアドレス例外のタイプ例外モード優先度(1= 高、6= 低)
0x0リセットスーパーバイザ(SVC)1
0x4未定義命令未定義6
0x8スーパーバイザコール(SVC)スーパーバイザ(SVC)6
0xCプリフェッチアボートアボート5
0x10データアボートアボート2
0x14予約なしなし
0x18割り込み(IRQ)割り込み(IRQ)4
0x1C高速割り込み(FIQ)高速割り込み(FIQ)3

データアボート例外は FIQ 例外よりも優先度が高いので、FIQ の処理前に登録されます。データアボートハンドラが起動しますが、制御はすぐに FIQ ハンドラに渡されます。FIQ の処理が完了すると、データアボートハンドラに制御が戻ります。これにより、FIQ が最初に処理されてデータ転送エラーが検出を免れることはありません。

Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0203GJ
Non-Confidential