FC10 — direct-to-task notifications

One receiver task exercises three notification contracts without a queue, semaphore or EventGroup object:

  • three xTaskNotifyGive() calls accumulate to ulTaskNotifyTake(pdTRUE)==3;
  • two eSetValueWithOverwrite posts retain the latest value 0x22;
  • two eSetBits posts combine to 0x24.

The high-priority sender waits for an explicit receiver phase and public eBlocked state before every batch. Therefore the receiver cannot run between posts and accidentally turn 3 into 1+1+1. A zero-time probe proves that the slot value is cleared between protocols.

make task1 host-test check-abi sim check-determinism

The canonical Hazard3 run commits E01E12 and prints digest c60747cb. Interactive views A2, A3, A5, A6, A7 and A8 connect the target handle, TCB slot, flow, state, runtime evidence and protocol choices.

Source basis: FreeRTOS Kernel Book, Chapter 10.

S
Description
FC10 — Direct-to-task Notifications
Readme 788 KiB
Languages
C 69%
Makefile 14.2%
Shell 11.9%
Assembly 3.4%
HTML 1.5%