koseng1 wrote on Thursday, April 26, 2018:
Hello,
I understand portYIELD_FROM_ISR may trigger a context switch (task activated for deferred processing), but what happens after that deferred task has completed? Does the scheduler switch back to the ISR until the ISR finishes? Or is the deferred task only called after the ISR finishes? In other words for example:
void ISRHandler() {
// … code portion A
portYIELD_FROM_ISR( xHigherPriorityTaskWoken );
// … code portion B
} // end of ISRHandler
Assume higher priority task woken. Will the execution of code look like?
- code portion A … higher priority task … code portion B
- code portion A … code portion B … higher priority task
- code portion A … higher priority task … something else (B is skipped)
Thanks