feat: publish FreeRTOS C FC08 card
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# FC08 — mutexes and priority inheritance
|
||||
|
||||
This card is a deterministic Hazard3/RV32I experiment for Chapter 8 of the
|
||||
FreeRTOS Kernel Book. It proves the mechanism, not only the final value.
|
||||
|
||||
```text
|
||||
Low p1 owns mutex
|
||||
→ High p3 blocks on the mutex
|
||||
→ Low effective priority becomes 3
|
||||
→ Medium p2 is Ready but does not run
|
||||
→ Low gives the mutex
|
||||
→ High acquires before Medium runs
|
||||
→ Low returns to priority 1
|
||||
```
|
||||
|
||||
Only public FreeRTOS APIs are used for acceptance assertions. The internal
|
||||
`uxBasePriority` and `uxPriority` fields are shown as debugger evidence, not
|
||||
as application dependencies. No manual `vTaskPrioritySet` substitutes for
|
||||
priority inheritance.
|
||||
|
||||
## Build and evidence
|
||||
|
||||
```sh
|
||||
make task1
|
||||
make host-test
|
||||
make check-abi
|
||||
make sim
|
||||
make check-determinism
|
||||
```
|
||||
|
||||
The final verifier checks the real mutex holder, effective priorities, public
|
||||
task state, three distinct task stacks, protected-resource invariant, exact
|
||||
event order and a stable digest from three clean simulator processes.
|
||||
|
||||
## Interactive views
|
||||
|
||||
- A2 — mutex, owner, waiters and protected resource;
|
||||
- A4 — deterministic task topology;
|
||||
- A5 — complete inheritance and hand-off sequence;
|
||||
- A6 — mutex ownership and effective-priority states;
|
||||
- A7 — handles, stacks, public observations and TCB debugger evidence;
|
||||
- A8 — critical section, scheduler suspension, mutex and gatekeeper choices.
|
||||
|
||||
Source basis: FreeRTOS Kernel Book, Chapter 8. No source example is copied
|
||||
verbatim.
|
||||
Reference in New Issue
Block a user