組込み・ファームウェア
割り込みに優先度を付けられるマイコンで、優先度の低い割り込みのハンドラを実行中に、優先度の高い割り込みが起きた。一般にどうなるか(割り込みのネストを許す設定とする)。
- A低いハンドラを中断して高いハンドラを実行し、終わったら低いハンドラの続きに戻る
- B低いハンドラが終わるまで、高い割り込みは捨てられる
- C両方のハンドラが同時に、同じCPUで並列に実行される
答えと解説を見る
正解:A. 低いハンドラを中断して高いハンドラを実行し、終わったら低いハンドラの続きに戻る
割り込みに優先度を付けると、急ぎの割り込みは、ほかのハンドラを実行している最中でも割り込んで処理されます。例えばモーターの過電流の検出を高い優先度に、通信の受信を低い優先度にしておけば、受信の処理中でも過電流にすぐ対応できます。ArmのCortex-MのNVICなどがこの仕組みを持っています。同じか低い優先度の割り込みは、今のハンドラが終わるまで待たされます。
- A. 正しい。これを割り込みのネストと呼びます。
- B. 捨てられるのではなく、すぐに処理されます。
- C. 1つのCPUは同時に1つの処理しかしません。