この投稿では、ハード系RTOSのマルチタスク(スレッド)および割込み動作の説明致します。本投稿は、以前に投稿したRTOSのスレッドと割込み動作の補足版です。尚、RTOSによっては異なる動作となるのでご注意ください。
下図のハード系RTOSのマルチタスクと割込みの動作は、次の通りです。
1) Power ON(Resetイベント発生)
2) Reset割込み Reset実行
3) Reset終了後、イベント待ち(wait)
4) タイマイベント発生
5) タイマ割込み Timer INT実行
6) Timer INT終了後、優先順位高のHi Level Thread(1)実行
7) Hi Level Thread(1)終了後、優先順位低のLow Level Thread(1)実行
8) 優先順位高の割込みイベント発生
9) Low Level Thread(1)中断し、優先順位高の割込みHi INT実行
10) Hi INT実行中にタイマイベント発生
11) Timer INTスタンバイ
12) Hi INT終了後、Timer INT実行
13) Timer INT終了後、Hi Level Thread(2)実行
14) Hi Level Thread(2)終了後、中断していたLow Level Thread(1)を再開
15) Low Level Thread(1)終了後、Low Level Thread(2)実行
16) Low Level Thread(2)終了後、イベント待ち
補足)
ハード系RTOSとは、私が勝手にリアルタイム性を重視したRTOSとして定義したRTOSです。リアルタイム性の重視とは、RTOSを介さずに割込みを処理することです。
タイマ割込みより優先順位の高い割込みは、応答時間に制約があり、イベント発生から直ぐに処理を開始する必要がある割込みです。例えば、通信系割込みや外部信号系割込みなどです。