Files
lab-rv32i-freertos-c-first-…/doc/card-plan.md
T

1.5 KiB
Raw Blame History

FC02 card plan

Position

C pointers and structures
→ heap_4 mechanics in C
→ FC02 raw FreeRTOS task in C
→ C++ language/OOP prerequisites
→ K02 Task<Derived> wrapper in FreeRTOS C++

FC02 and K02 are a controlled pair. They use the same kernel, config, priorities, stack depths, workload and E01E12 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.