Bird
0
0

Consider an ISR with priority 0x60 and configMAX_SYSCALL_INTERRUPT_PRIORITY set to 0x50. What is the expected behavior if this ISR calls xSemaphoreGiveFromISR()?

medium📝 Predict Output Q5 of 15
FreeRTOS - Interrupt Management

Consider an ISR with priority 0x60 and configMAX_SYSCALL_INTERRUPT_PRIORITY set to 0x50. What is the expected behavior if this ISR calls xSemaphoreGiveFromISR()?

AThe ISR is blocked until the semaphore is available
BThe semaphore is given successfully without issues
CThe call fails because ISR priority is too high
DThe system disables interrupts during the call
Step-by-Step Solution
Solution:
  1. Step 1: Compare ISR priority with configMAX_SYSCALL_INTERRUPT_PRIORITY

    ISR priority 0x60 is lower (numerically higher) than 0x50, so it is allowed to call FreeRTOS API functions.
  2. Step 2: Understand behavior of xSemaphoreGiveFromISR

    The function will execute successfully since the ISR priority is within allowed range.
  3. Final Answer:

    The semaphore is given successfully without issues -> Option B
  4. Quick Check:

    ISR priority below max syscall priority = API call success [OK]
Quick Trick: API calls allowed only if ISR priority ≥ max syscall priority [OK]
Common Mistakes:
  • Confusing numerical priority values
  • Thinking ISR blocks on semaphore
  • Assuming interrupts are disabled during API call

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More FreeRTOS Quizzes