ゼロ割り込み待機時間
割り込み処理は割り込み要求を受けてから実行中のタスクをレジスターへ待避させて要求を受けた処理を始める。そのため原理的に割り込み待機時間ゼロは不可能である。ここでわれわれがいう「ゼロ割り込み待機時間」とは高優先度タスクの割り込み要求がRTOSに影響されないということである。つまりembOSでも高優先度の割り込みはCPUなどのシステムによる最悪応答時間は同等になります。
高/低優先度割り込み
ほとんどのCPUは複数の優先度を持つ割り込みに対応している。異なる優先度は2つの影響をもたらす。
- 異なる優先度の割り込みが同時に起きた場合、高優先度のものがまず処理される。
- 割り込みは他の優先度が同じ以下のものからキャンセルされない。
割り込み優先度の段階はCPUと割り込みコントローラによって多様である。embOSではこれを2段階に完全に分類してしまい、それに基づき割り込み処理を行っていく。
つまり低優先度割り込みと高優先度割り込みの違いは
低優先度割り込み
- embOS APIを呼ぶ
- embOSに起因する待機時間が発生
高優先度割り込み
- embOS APIを呼ばない
- embOSに起因する待機時間はゼロ
例
M16CのCPUは8段階の割り込み優先度に対応している。embOSではこのうち上位3つを高優先度として扱う。
ARMのCPUは2段階の割り込み優先度(IRQ<FIQ)に対応している。embOSではこのうちFIQを高優先度として扱う。
割り込み待機時間関連ページ