Files

38 lines
1.3 KiB
Markdown
Raw Permalink 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 — 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`.