Queues are an excellent workhorse of an RTOS because of their flexibility. Sometimes, all of this flexibility isn't needed and we'd prefer a more lightweight alternative. Direct task notifications are similar to the other communication mechanisms discussed, except that they do not require the communication object to first be instantiated in RAM. They are also faster than semaphores or queues (between 35% and 45% faster).
They do have some limitations, the largest two being that only one task can be notified at a time and notifications can be sent by ISRs but not received.
Direct task notifications have two main components: the notification itself (which behaves very much like how a semaphore or queue behaves when unblocking a task) and a 32-bit notification value. The notification value is optional and has a few different uses. A notifier has...