I notify the low priority task from another task, with higher priority, using xTaskNotifyGive()/ulTaskNotifyTake().
It is not clear from manual if the task from which I make call xTaskNotifyGive (the higher task) will finish its work.
It would be very helpful if somebody can answer me claerly how this functin work, if it calls to context switch, if its work depends on priority task...
FreeRTOS will always run the highest priority task that is able to run. When a task is blocked waiting for a notification it is not able to run, when it receives the notification it is waiting for it is able to run.
If the priority of the task giving the notification is higher than the priority of the task receiving the notification then the giving task will continue to run, because it has the highest priority.
If the priority of the task giving the notification is lower than the priority of the task receiving the notification then the receiving task will start running the moment the notification is received.