IT用語集 › ハードウェア › 割り込みサービスルーチン(ISR)

割り込みサービスルーチン(ISR)

ハードウェア Svenska → 更新: 2026-11-03

割り込みが発生したときにプロセッサが飛び込む関数。別の処理の最中に、借り物の時間で動くコードである。

その先頭アドレスは割り込みベクタテーブルから得られる。Cortex-M では、呼び出し側保存のレジスタをハードウェアが例外フレームに自動で退避するため、ISRは普通のC関数で書ける。古いアーキテクチャでは、アセンブリのプロローグやコンパイラ固有の __interrupt キーワードが必要だった。

基本ルールはどの環境でも共通である。短く保つ、ブロックしない、戻る前に割り込みフラグをクリアする(さもないと即座に再発生する)、メインプログラムとのデータ共有には volatile 変数かクリティカルセクションを使う。重い処理はタスクに引き渡す(遅延割り込み処理を参照)。FreeRTOS に …FromISR() という専用のAPIがあるのは、通常のAPIがスリープしようとする可能性があり、ISRでは絶対に許されないからだ。

← 用語集に戻る