main
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 -> Ai 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
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.
Languages
C
62.9%
Makefile
16.8%
Shell
15.8%
Assembly
3.1%
HTML
1.4%