chore: preserve current FreeRTOS and C card updates

This commit is contained in:
2026-07-21 19:13:55 +02:00
parent 34d08ae979
commit 09bb6583b1
6 changed files with 145 additions and 75 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ NM := $(RISCV_PREFIX)nm
READELF := $(RISCV_PREFIX)readelf READELF := $(RISCV_PREFIX)readelf
HOSTCC ?= cc HOSTCC ?= cc
LOCAL_ENV_ROOT := $(abspath ../../../rv32i-hazard3-env) LOCAL_ENV_ROOT := $(abspath ../../../../../edu/rv32i-hazard3-student-env)
RV_ENV_ROOT ?= $(if $(wildcard /opt/rv-env/vendor/Hazard3),/opt/rv-env,$(LOCAL_ENV_ROOT)) RV_ENV_ROOT ?= $(if $(wildcard /opt/rv-env/vendor/Hazard3),/opt/rv-env,$(LOCAL_ENV_ROOT))
H3_COMMON := $(RV_ENV_ROOT)/vendor/Hazard3/test/sim/common H3_COMMON := $(RV_ENV_ROOT)/vendor/Hazard3/test/sim/common
H3_INIT := $(H3_COMMON)/init.S H3_INIT := $(H3_COMMON)/init.S
+4 -4
View File
@@ -73,7 +73,7 @@
\noindent\fbox{% \noindent\fbox{%
\begin{minipage}[c][23.5mm][c]{\dimexpr\textwidth-2\fboxrule\relax}% \begin{minipage}[c][23.5mm][c]{\dimexpr\textwidth-2\fboxrule\relax}%
\begin{minipage}[c][23mm][c]{24mm}\centering% \begin{minipage}[c][23mm][c]{24mm}\centering%
\qrcode[level=L,height=22mm]{https://zsl-gitea.mpabi.pl/edu-freertos-c/lab-rv32i-freertos-c-scheduler}% \href{https://zsl-gitea.mpabi.pl/edu-freertos-c/lab-rv32i-freertos-c-scheduler}{\qrcode[level=L,height=22mm]{https://zsl-gitea.mpabi.pl/edu-freertos-c/lab-rv32i-freertos-c-scheduler}}%
\end{minipage}% \end{minipage}%
\vrule width0.35pt% \vrule width0.35pt%
\begin{minipage}[c][23mm][c]{\dimexpr\linewidth-48mm-0.7pt\relax}% \begin{minipage}[c][23mm][c]{\dimexpr\linewidth-48mm-0.7pt\relax}%
@@ -109,7 +109,7 @@
\end{minipage}% \end{minipage}%
\vrule width0.35pt% \vrule width0.35pt%
\begin{minipage}[c][23mm][c]{24mm}\centering% \begin{minipage}[c][23mm][c]{24mm}\centering%
\qrcode[level=L,height=22mm]{https://dce7fb9d-7b2f-5d49-96a2-3a30d3070b84.mpabi.pl/2214a13f-34c6-40a1-a561-70a00ec98285}% \href{https://dce7fb9d-7b2f-5d49-96a2-3a30d3070b84.mpabi.pl/2214a13f-34c6-40a1-a561-70a00ec98285}{\qrcode[level=L,height=22mm]{https://dce7fb9d-7b2f-5d49-96a2-3a30d3070b84.mpabi.pl/2214a13f-34c6-40a1-a561-70a00ec98285}}%
\end{minipage}% \end{minipage}%
\end{minipage}% \end{minipage}%
}% }%
@@ -326,14 +326,14 @@ Na E06 zapisz mcause, mepc, ISR SP i tick.
Na E07 zapisz triplet tasków, ticki i liczbę obserwowanych zmian. Na E07 zapisz triplet tasków, ticki i liczbę obserwowanych zmian.
\end{ESCStepFrame} \end{ESCStepFrame}
\begin{ESCStepFrame}{follow-preemption · Zbadaj natychmiastowe wywłaszczenie.} \begin{ESCStepFrame}{follow-preemption · Zbadaj natychmiastowe wywłaszczenie.}
Porównaj E08, E09 i E10; pokaż, że HIGH wykonał się przed after_raise. Porównaj E08, E09 i E10; pokaż, że HIGH wykonał się przed \texttt{after\_raise}.
\end{ESCStepFrame} \end{ESCStepFrame}
\begin{ESCStepFrame}{finish-pass · Zamknij dowód.} \begin{ESCStepFrame}{finish-pass · Zamknij dowód.}
Na E11 sprawdź self-delete peerów, a na E12 końcowe inwarianty i PASS. Na E11 sprawdź self-delete peerów, a na E12 końcowe inwarianty i PASS.
\end{ESCStepFrame} \end{ESCStepFrame}
\end{ESCBlockFrame} \end{ESCBlockFrame}
\begin{ESCBlockFrame}{Ćwiczenie · Ćwiczenie — bounded observation bez time slicing} \begin{ESCBlockFrame}{Ćwiczenie · Ćwiczenie — bounded observation bez time slicing}
Ustaw configUSE_TIME_SLICING=0, nie zmieniając dwóch CPU-bound peerów o priorytecie 2. Uruchom tylko ograniczoną obserwację debuggera; nie oczekuj PASS. Zapisz, który peer pozostaje Running, jaki jest tick count i dlaczego drugi może być głodzony. Następnie przywróć konfigurację. Ustaw \texttt{configUSE\_TIME\_SLICING=0}, nie zmieniając dwóch CPU-bound peerów o priorytecie 2. Uruchom tylko ograniczoną obserwację debuggera; nie oczekuj PASS. Zapisz, który peer pozostaje Running, jaki jest tick count i dlaczego drugi może być głodzony. Następnie przywróć konfigurację.
\par\textbf{Evidence:} Timestampowany snapshot PC/SP, tick count i obu liczników iteracji oraz krótkie wyjaśnienie expected noncompletion. \par\textbf{Evidence:} Timestampowany snapshot PC/SP, tick count i obu liczników iteracji oraz krótkie wyjaśnienie expected noncompletion.
\par\textbf{Acceptance:} Uczeń nie interpretuje braku PASS jako błędu harnessu i poprawnie wiąże głodzenie z brakiem rotacji równych priorytetów. \par\textbf{Acceptance:} Uczeń nie interpretuje braku PASS jako błędu harnessu i poprawnie wiąże głodzenie z brakiem rotacji równych priorytetów.
\end{ESCBlockFrame} \end{ESCBlockFrame}
+2 -2
View File
@@ -563,7 +563,7 @@
"steps": [ "steps": [
{"id": "follow-tick", "title": "Zbadaj pierwszy tick.", "content_tex": "Na E06 zapisz mcause, mepc, ISR SP i tick."}, {"id": "follow-tick", "title": "Zbadaj pierwszy tick.", "content_tex": "Na E06 zapisz mcause, mepc, ISR SP i tick."},
{"id": "follow-timeslice", "title": "Zbadaj A-B-A.", "content_tex": "Na E07 zapisz triplet tasków, ticki i liczbę obserwowanych zmian."}, {"id": "follow-timeslice", "title": "Zbadaj A-B-A.", "content_tex": "Na E07 zapisz triplet tasków, ticki i liczbę obserwowanych zmian."},
{"id": "follow-preemption", "title": "Zbadaj natychmiastowe wywłaszczenie.", "content_tex": "Porównaj E08, E09 i E10; pokaż, że HIGH wykonał się przed after_raise."}, {"id": "follow-preemption", "title": "Zbadaj natychmiastowe wywłaszczenie.", "content_tex": "Porównaj E08, E09 i E10; pokaż, że HIGH wykonał się przed \\texttt{after\\_raise}."},
{"id": "finish-pass", "title": "Zamknij dowód.", "content_tex": "Na E11 sprawdź self-delete peerów, a na E12 końcowe inwarianty i PASS."} {"id": "finish-pass", "title": "Zamknij dowód.", "content_tex": "Na E11 sprawdź self-delete peerów, a na E12 końcowe inwarianty i PASS."}
] ]
}, },
@@ -571,7 +571,7 @@
"kind": "exercise", "kind": "exercise",
"id": "no-timeslicing-bounded-observation", "id": "no-timeslicing-bounded-observation",
"title": "Ćwiczenie — bounded observation bez time slicing", "title": "Ćwiczenie — bounded observation bez time slicing",
"prompt_tex": "Ustaw configUSE_TIME_SLICING=0, nie zmieniając dwóch CPU-bound peerów o priorytecie 2. Uruchom tylko ograniczoną obserwację debuggera; nie oczekuj PASS. Zapisz, który peer pozostaje Running, jaki jest tick count i dlaczego drugi może być głodzony. Następnie przywróć konfigurację.", "prompt_tex": "Ustaw \\texttt{configUSE\\_TIME\\_SLICING=0}, nie zmieniając dwóch CPU-bound peerów o priorytecie 2. Uruchom tylko ograniczoną obserwację debuggera; nie oczekuj PASS. Zapisz, który peer pozostaje Running, jaki jest tick count i dlaczego drugi może być głodzony. Następnie przywróć konfigurację.",
"evidence_tex": "Timestampowany snapshot PC/SP, tick count i obu liczników iteracji oraz krótkie wyjaśnienie expected noncompletion.", "evidence_tex": "Timestampowany snapshot PC/SP, tick count i obu liczników iteracji oraz krótkie wyjaśnienie expected noncompletion.",
"criterion": "Uczeń nie interpretuje braku PASS jako błędu harnessu i poprawnie wiąże głodzenie z brakiem rotacji równych priorytetów.", "criterion": "Uczeń nie interpretuje braku PASS jako błędu harnessu i poprawnie wiąże głodzenie z brakiem rotacji równych priorytetów.",
"based_on": ["scheduler-model", "hazard3-replay"] "based_on": ["scheduler-model", "hazard3-replay"]
+1 -1
View File
File diff suppressed because one or more lines are too long
+9 -9
View File
File diff suppressed because one or more lines are too long
+128 -58
View File
File diff suppressed because one or more lines are too long