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

50 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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<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.