feat: publish FreeRTOS C FC11 card
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# FC11 — Static and dynamic allocation
|
||||
|
||||
This card compares two behaviorally equivalent FreeRTOS object sets. One task,
|
||||
queue and timer are allocated through `heap_4`; the other set uses persistent
|
||||
application-owned buffers and the `*Static` APIs. Idle and timer-service task
|
||||
memory is also supplied by the application, so scheduler startup cannot hide a
|
||||
dynamic allocation.
|
||||
|
||||
The decisive runtime relation is:
|
||||
|
||||
```text
|
||||
H1 < H0 dynamic task + queue + timer consume ucHeap
|
||||
H2 = H1 static equivalents consume no ucHeap
|
||||
H3 = H2 scheduler startup consumes no ucHeap
|
||||
```
|
||||
|
||||
Both branches receive `0xCAFE` and execute exactly one timer callback. Handles
|
||||
of dynamic objects must lie in `ucHeap`; handles of static objects must point to
|
||||
named persistent buffers outside that arena.
|
||||
|
||||
```sh
|
||||
make clean
|
||||
make task1 host-test check-abi sim check-determinism
|
||||
python3 /home/user/dev/workspace/stem/tools/card-layouts/tools/build_freertos_c_card.py .
|
||||
python3 /home/user/dev/workspace/stem/tools/card-layouts/tools/render_card.py .
|
||||
```
|
||||
Reference in New Issue
Block a user