27 lines
1.0 KiB
Markdown
27 lines
1.0 KiB
Markdown
# FC09 — Event Groups and multi-event synchronization
|
|
|
|
This deterministic card implements two distinct protocols on one genuine
|
|
FreeRTOS EventGroup:
|
|
|
|
1. a priority-3 coordinator waits for **ALL** independent readiness bits;
|
|
2. coordinator, worker A and worker B cross a three-party
|
|
`xEventGroupSync()` barrier.
|
|
|
|
READY (`0x01`, `0x02`) and SYNC (`0x10`, `0x20`, `0x40`) masks are disjoint.
|
|
The partial mask cannot release either protocol. Every participant receives a
|
|
return value containing `SYNC_ALL`, while the group value becomes zero after
|
|
the barrier's automatic clear.
|
|
|
|
```sh
|
|
make task1 host-test check-abi sim check-determinism
|
|
```
|
|
|
|
The test links upstream FreeRTOS V11.3.0 `event_groups.c`, uses finite
|
|
timeouts, records eleven commit-last events and prints a stable digest from
|
|
three clean Hazard3 processes.
|
|
|
|
Interactive views: A2 structure, A4 participant topology, A5 execution flow,
|
|
A6 mask/state machine, A7 runtime evidence and A8 synchronization patterns.
|
|
|
|
Source basis: FreeRTOS Kernel Book, Chapter 9.
|