chore: preserve current FreeRTOS and C card updates

This commit is contained in:
2026-07-21 19:13:55 +02:00
parent e3420748ee
commit b7c3747e2c
6 changed files with 153 additions and 83 deletions
+6 -6
View File
@@ -73,7 +73,7 @@
\noindent\fbox{%
\begin{minipage}[c][23.5mm][c]{\dimexpr\textwidth-2\fboxrule\relax}%
\begin{minipage}[c][23mm][c]{24mm}\centering%
\qrcode[level=L,height=22mm]{https://zsl-gitea.mpabi.pl/edu-freertos-c/lab-rv32i-freertos-c-first-task}%
\href{https://zsl-gitea.mpabi.pl/edu-freertos-c/lab-rv32i-freertos-c-first-task}{\qrcode[level=L,height=22mm]{https://zsl-gitea.mpabi.pl/edu-freertos-c/lab-rv32i-freertos-c-first-task}}%
\end{minipage}%
\vrule width0.35pt%
\begin{minipage}[c][23mm][c]{\dimexpr\linewidth-48mm-0.7pt\relax}%
@@ -109,7 +109,7 @@
\end{minipage}%
\vrule width0.35pt%
\begin{minipage}[c][23mm][c]{24mm}\centering%
\qrcode[level=L,height=22mm]{https://dce7fb9d-7b2f-5d49-96a2-3a30d3070b84.mpabi.pl/a2538a1a-3c37-4c14-a6ea-db5aba8fd038}%
\href{https://dce7fb9d-7b2f-5d49-96a2-3a30d3070b84.mpabi.pl/a2538a1a-3c37-4c14-a6ea-db5aba8fd038}{\qrcode[level=L,height=22mm]{https://dce7fb9d-7b2f-5d49-96a2-3a30d3070b84.mpabi.pl/a2538a1a-3c37-4c14-a6ea-db5aba8fd038}}%
\end{minipage}%
\end{minipage}%
}%
@@ -312,16 +312,16 @@ Najpierw czytaj A1--A3 bez uruchamiania programu.
Rozróżnij static context, adres pola handle, wartość handle, TCB i stack.
\end{ESCStepFrame}
\begin{ESCStepFrame}{prove-c-abi · Udowodnij callback ABI.}
Na E03 zbadaj argumenty xTaskCreate, a na E06 rejestr a0 przed prologiem sum_task_entry.
Na E03 zbadaj argumenty \texttt{xTaskCreate}, a na E06 rejestr \texttt{a0} przed prologiem \texttt{sum\_task\_entry}.
\end{ESCStepFrame}
\end{ESCBlockFrame}
\begin{ESCBlockFrame}{B — sekwencja i scheduler}
Każdy RUN replay zaczyna się od czystej RAM.
\begin{ESCStepFrame}{follow-context · Śledź jeden adres context.}
Porównaj &g_worker_a w main, xTaskCreate i sum_task_entry.
Porównaj \texttt{\&g\_worker\_a} w \texttt{main}, \texttt{xTaskCreate} i \texttt{sum\_task\_entry}.
\end{ESCStepFrame}
\begin{ESCStepFrame}{follow-stack · Śledź osobny stos.}
Potwierdź stack_low <= sp <= stack_high i created_handle == tcb_address.
Potwierdź \texttt{stack\_low <= sp <= stack\_high} i \texttt{created\_handle == tcb\_address}.
\end{ESCStepFrame}
\begin{ESCStepFrame}{follow-scheduler · Śledź A-B-A.}
Zapisz triplet workerów, ticki i liczbę obserwowanych zmian.
@@ -335,7 +335,7 @@ Wybierz E01, E03, E06, E08, E10 i E12. Dla każdego zapisz timestamp, PC, SP, ad
\tcblower\textbf{Task acceptance:} Program wypisuje PASS; oba wyniki wynoszą 200010000; E06 pokazuje a0=\&workerA; trace zawiera A-B-A; context, TCB i stack są rozdzielone.
\end{ESCTaskFrame}
\begin{ESCConclusionFrame}
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.
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.
\end{ESCConclusionFrame}
\ESCSectionBlockEnd