# FC02 card plan ## Position ```text C pointers and structures → heap_4 mechanics in C → FC02 raw FreeRTOS task in C → C++ language/OOP prerequisites → K02 Task wrapper in FreeRTOS C++ ``` FC02 and K02 are a controlled pair. They use the same kernel, config, priorities, stack depths, workload and `E01–E12` meanings. The variable under study is the language-facing representation: raw C callback/context versus a C++ CRTP wrapper. ## Task01 Two equal-priority CPU-bound workers independently sum `1..20000`. A lower priority supervisor checks both results, task-stack evidence and an observed `A,B,A` scheduling subsequence. Enabled viewpoints: - A1 Context; - A2 Structure; - A3 Dispatch; - A5 Flow; - A6 State; - A7 Runtime. A4 is unavailable because application topology is already complete in A2/A5. A8 is unavailable because the relevant C idioms are attached directly to A2/A3 rather than promoted into a decorative pattern diagram. ## Acceptance - freestanding C11 build for RV32I/Hazard3; - `make check-pair`, context contract, host workload and C-only ABI pass; - simulator returns PASS with two results `200010000`; - E03 proves `xTaskCreate` argument registers; - E06 proves `a0 == &g_worker_a` at callback entry; - E08 proves a real `A,B,A` subsequence; - context, `&handle`, handle/TCB and separate task-stack range are not conflated; - all active UML anchors resolve and every RUN step has an event, strategy and snapshot; - navigation alone never mutates the simulator.