This post describes MultiTask (Thread) and interrupt behavior of a Hard-RTOS. This post is a supplement to my previous post on RTOS Threads(Task) and interrupts. Please note that the behavior may differ depending on the RTOS.
The following figure shows the multitasking and interrupt behavior of the Hard-RTOS.
1) Power ON (Reset event occurs)
2) Reset interrupt Reset execution
3) Waiting for event after Reset
4) Timer event occurrence
5) Timer interrupt Timer INT execution
6) After Timer INT ends, execute Hi Level Thread(1) with high priority
7) After High Level Thread(1) ends, execute Low Level Thread(1) with low priority
8) High priority interrupt event occurs
9) Interrupts Low Level Thread(1) and executes Hi INT interrupt with high priority
10) Timer event occurs during Hi INT execution
11) Timer INT standby
12) After Hi INT ends, execute Timer INT
13) After Timer INT ends, execute Hi Level Thread(2)
14) After Hi Level Thread(2) ends, restart Low Level Thread(1) that had been interrupted
15) After Low Level Thread(1) ends, execute Low Level Thread(2)
16) After Low Level Thread(2) ends, wait for event
![](https://oss-ecal.com/wp-content/uploads/2024/05/RTOS.gif)
supplement
Hard-RTOS is an RTOS that I have taken the liberty of defining as an RTOS that emphasizes real-time performance. Emphasis on real-time performance means processing interrupts without going through the RTOS.
Interrupts with higher priority than timer interrupts have a limited response time and must be processed immediately after the event occurs. Examples include communication interrupts and external signal interrupts.