I use FreeRTOS with TMS570 series of MCU. I wish to understand the way External Interrupts get processed when the Interrupt Handlers are not written inside a Task(Semaphore is not used for synchronisation of ISR with Scheduler). Kindly explain behaviour of the Scheduler when above case is consider.
Also please do explain about any other solution(if any) for Interrupt Management other than using Queue or Semaphore.
Thanks in Advance!
Tasks only run if an interrupt is not running. If an interrupt runs then the TMS570 jumps to the interrupt handler just like it would if FreeRTOS was not running. When the interrupt handler exits the interrupted task starts running again. So interrupt handlers are never written >inside< a task. You can use FreeRTOS to synchronize a task with an interrupt if you want, that is all. You already mentioned a semaphore, recently notifications were added as a simpler way to do the same thing.