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:

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.

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 .
S
Description
FC11 — Static Allocation and Bounded Storage
Readme 784 KiB
Languages
C 41.2%
Python 40.3%
Makefile 8.5%
Shell 7.2%
Assembly 1.9%
Other 0.9%