I’ve read the section of the manual on using the variables and macros related to using FreeRTOS in an ISR, still a question remains.
Based on one of the examples provided for Cortex-M4, I am using a non-blocking binary sempahore to synchronize a timer interrupt. The interrupt has the HigherPriorityTaskWoken set to pdFALSE. At the required number of 512 buffer samples, I call the macro xSemaphoreGiveFromISR( xTimerSemaphore, &lHigherPriorityTaskWoken ).
What is not clear at this point what the effect of not calling the “portEND_SWITCHING_ISR( HigherPriorityTaskWoken )” macro at the end of the interrupt, since HigherPriorityTaskWoken is set to pdFALSE and no context switch was requested.
The reason I am asking is, when I coded it, I (mistakenly) did not have the portEND_SWITCHING_ISR macro in there, and the code appears to be running OK. Based on what I am seeing, can it be stated that if HigherPriorityTaskWoken set to pdFALSE, that using portEND_SWITCHING_ISR is optional? I will put the portEND_SWITCHING_ISR in the code, and in future apps, I do not have access to it now but would like to know before the next time I update.