Files
T

25 lines
935 B
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.
```sh
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.