chore: preserve current FreeRTOS and C card updates
This commit is contained in:
@@ -314,7 +314,7 @@
|
||||
},
|
||||
{
|
||||
"title": "A6 — State", "order": 50, "content_kind": "prose", "asset_page_mode": "one-per-page",
|
||||
"content_tex": "Statyczny lifetime context, diagnostyczny trace_state i rzeczywiste stany taska kernela to trzy różne osie.",
|
||||
"content_tex": "Statyczny lifetime context, diagnostyczny \\texttt{trace\\_state} i rzeczywiste stany taska kernela to trzy różne osie.",
|
||||
"assets": [{
|
||||
"path": "assets/a6-state.png", "html_path": "assets/a6-state.svg", "source_path": "assets/a6-state.puml",
|
||||
"caption": "A6 STATE — korelacja stanu kontekstu z Ready, Running, time slice i Deleted.", "label": "fig:a6-state", "alt": "Oddzielne tory stanu diagnostycznego i stanu FreeRTOS.", "kind": "diagram", "width": 1.0,
|
||||
@@ -370,17 +370,17 @@
|
||||
"task01": {
|
||||
"title": "Pierwszy task FreeRTOS — callback, context, TCB i stos",
|
||||
"uuid": "a2538a1a-3c37-4c14-a6ea-db5aba8fd038",
|
||||
"prompt_tex": "Przejdź po aktywnych perspektywach A1, A2, A3, A5, A6 i A7. Dla kroków RUN użyj Enter lub F2 i udowodnij w Hazard3/GDB przepływ \\texttt{xTaskCreate -> sum_task_entry -> WorkerContext -> vTaskDelete}.",
|
||||
"prompt_tex": "Przejdź po aktywnych perspektywach A1, A2, A3, A5, A6 i A7. Dla kroków RUN użyj Enter lub F2 i udowodnij w Hazard3/GDB przepływ \\texttt{xTaskCreate -> sum\\_task\\_entry -> WorkerContext -> vTaskDelete}.",
|
||||
"criterion": "Program wypisuje PASS; oba wyniki wynoszą 200010000; E06 pokazuje a0=&workerA; trace zawiera A-B-A; context, TCB i stack są rozdzielone.",
|
||||
"conclusion_tex": "Surowe API C przekazuje zachowanie i dane oddzielnie: \\texttt{TaskFunction_t} wybiera kod, a \\texttt{void*} niesie adres jawnego kontekstu. Scheduler, TCB i stos pozostają własnością FreeRTOS.",
|
||||
"conclusion_tex": "Surowe API C przekazuje zachowanie i dane oddzielnie: \\texttt{TaskFunction\\_t} wybiera kod, a \\texttt{void*} niesie adres jawnego kontekstu. Scheduler, TCB i stos pozostają własnością FreeRTOS.",
|
||||
"flow": [
|
||||
{"kind": "block", "id": "c-model", "title": "A — model C i granica ABI", "content_tex": "Najpierw czytaj A1--A3 bez uruchamiania programu.", "steps": [
|
||||
{"id": "read-context", "title": "Odczytaj WorkerContext.", "content_tex": "Rozróżnij static context, adres pola handle, wartość handle, TCB i stack."},
|
||||
{"id": "prove-c-abi", "title": "Udowodnij callback ABI.", "content_tex": "Na E03 zbadaj argumenty xTaskCreate, a na E06 rejestr a0 przed prologiem sum_task_entry."}
|
||||
{"id": "prove-c-abi", "title": "Udowodnij callback ABI.", "content_tex": "Na E03 zbadaj argumenty \\texttt{xTaskCreate}, a na E06 rejestr \\texttt{a0} przed prologiem \\texttt{sum\\_task\\_entry}."}
|
||||
]},
|
||||
{"kind": "block", "id": "runtime-trace", "title": "B — sekwencja i scheduler", "content_tex": "Każdy RUN replay zaczyna się od czystej RAM.", "steps": [
|
||||
{"id": "follow-context", "title": "Śledź jeden adres context.", "content_tex": "Porównaj &g_worker_a w main, xTaskCreate i sum_task_entry."},
|
||||
{"id": "follow-stack", "title": "Śledź osobny stos.", "content_tex": "Potwierdź stack_low <= sp <= stack_high i created_handle == tcb_address."},
|
||||
{"id": "follow-context", "title": "Śledź jeden adres context.", "content_tex": "Porównaj \\texttt{\\&g\\_worker\\_a} w \\texttt{main}, \\texttt{xTaskCreate} i \\texttt{sum\\_task\\_entry}."},
|
||||
{"id": "follow-stack", "title": "Śledź osobny stos.", "content_tex": "Potwierdź \\texttt{stack\\_low <= sp <= stack\\_high} i \\texttt{created\\_handle == tcb\\_address}."},
|
||||
{"id": "follow-scheduler", "title": "Śledź A-B-A.", "content_tex": "Zapisz triplet workerów, ticki i liczbę obserwowanych zmian."}
|
||||
]},
|
||||
{"kind": "exercise", "id": "raw-c-debug-report", "title": "Ćwiczenie — timestampowany ślad taska C", "prompt_tex": "Wybierz E01, E03, E06, E08, E10 i E12. Dla każdego zapisz timestamp, PC, SP, adres context, wartość handle/TCB i stan. Wyjaśnij, których adresów po E11 nie wolno dereferencjonować.", "evidence_tex": "Timestampowane snapshoty Hazard3/GDB powiązane z kotwami UML oraz końcowy PASS.", "criterion": "Raport zachowuje tożsamość context, rozdziela TCB od stack i nie myli trace_state z eTaskState.", "based_on": ["c-model", "runtime-trace"]}
|
||||
|
||||
Reference in New Issue
Block a user