Bird
0
0

You have two ISRs: ISR_A (priority 3) and ISR_B (priority 5). ISR_A uses a FreeRTOS API function that disables interrupts up to priority 4. What happens if ISR_B triggers while ISR_A is running?

hard📝 Application Q8 of 15
FreeRTOS - Interrupt Management

You have two ISRs: ISR_A (priority 3) and ISR_B (priority 5). ISR_A uses a FreeRTOS API function that disables interrupts up to priority 4. What happens if ISR_B triggers while ISR_A is running?

AISR_B will preempt ISR_A immediately
BISR_B will be delayed until ISR_A finishes
CBoth ISRs run simultaneously causing race conditions
DISR_B disables ISR_A automatically
Step-by-Step Solution
Solution:
  1. Step 1: Understand interrupt masking by FreeRTOS API

    FreeRTOS disables interrupts up to priority 4 during some API calls, blocking lower priority interrupts.
  2. Step 2: Analyze ISR priorities

    ISR_B has priority 5, which is lower than 4, so it is masked and delayed until ISR_A finishes.
  3. Final Answer:

    ISR_B will be delayed until ISR_A finishes -> Option B
  4. Quick Check:

    Interrupts below mask priority are delayed [OK]
Quick Trick: FreeRTOS masks interrupts below certain priority during API calls [OK]
Common Mistakes:
  • Assuming lower priority ISR preempts higher priority ISR
  • Thinking ISRs run simultaneously
  • Believing ISR_B disables ISR_A

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More FreeRTOS Quizzes