feat: publish FreeRTOS C FC02 card
This commit is contained in:
@@ -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`;
|
||||
- E01–E12 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 A1–A8: `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`.
|
||||
Reference in New Issue
Block a user