feat: publish FreeRTOS C FC02 card

This commit is contained in:
2026-07-19 16:36:02 +02:00
commit e3420748ee
208 changed files with 57240 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
# FC02 — pierwszy task, TCB i stos taska
Karta jest surowym punktem odniesienia w C dla późniejszej karty FreeRTOS C++.
Uczeń tworzy dwa równorzędne taski przez `xTaskCreate`, śledzi
`void *pvParameters` do jawnego `WorkerContext`, odróżnia kontekst aplikacji od
TCB i stosu taska oraz obserwuje time slicing na Hazard3.
## Kontrolowany eksperyment
- dwa workery o priorytecie 2 liczą niezależnie sumę `1..20000`;
- oba wyniki muszą wynosić `200010000`;
- supervisor o priorytecie 1 uruchamia się po zakończeniu workerów;
- ślad planisty musi zawierać `A -> B -> A` i co najmniej dwa ticki;
- konteksty aplikacji są statyczne, natomiast TCB i stosy pochodzą z `heap_4`;
- E01E12 są deterministycznymi punktami replay dla Neovima, GDB i Hazard3.
Karta nie zawiera C++, wrappera, kolejek, mutexów, ISR ani peryferiów.
## Budowanie i weryfikacja
```sh
make task1
make check
make check-pair
```
`make check` uruchamia kompilację freestanding C11, test kontraktu kontekstu,
test obciążenia hosta, kontrolę ABI i symulator Hazard3. `make check-pair`
porównuje konfigurację i parametry doświadczenia z K02 FreeRTOS C++.
## Materiały
- plan: `doc/card-plan.md`;
- model A1A8: `doc/task01-a1-a8-plan.md`;
- źródło karty: `json/card_source.json`;
- wynik HTML: `web/index.html`;
- wynik TeX: `doc/generated/main.tex`.