chore: preserve current FreeRTOS and C card updates
This commit is contained in:
@@ -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-isr-semaphore}%
|
||||
\href{https://zsl-gitea.mpabi.pl/edu-freertos-c/lab-rv32i-freertos-c-isr-semaphore}{\qrcode[level=L,height=22mm]{https://zsl-gitea.mpabi.pl/edu-freertos-c/lab-rv32i-freertos-c-isr-semaphore}}%
|
||||
\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/a6da1075-8d1f-5615-b0e6-0fc33e59e1e3}%
|
||||
\href{https://dce7fb9d-7b2f-5d49-96a2-3a30d3070b84.mpabi.pl/a6da1075-8d1f-5615-b0e6-0fc33e59e1e3}{\qrcode[level=L,height=22mm]{https://dce7fb9d-7b2f-5d49-96a2-3a30d3070b84.mpabi.pl/a6da1075-8d1f-5615-b0e6-0fc33e59e1e3}}%
|
||||
\end{minipage}%
|
||||
\end{minipage}%
|
||||
}%
|
||||
@@ -197,7 +197,7 @@ Uczeń rozdziela task context od ISR context, używa API FromISR i dowodzi natyc
|
||||
\vspace{0.7em}
|
||||
\noindent{\Large\bfseries Zakres karty}\par
|
||||
\vspace{0.35em}
|
||||
Prawdziwe wejście IRQ5 testbencha wywołuje machine external interrupt. Port zapisuje pełny kontekst i przechodzi na xISRStack. ISR czyści źródło, daje binary semaphore i wywołuje portYIELD_FROM_ISR. Waiter priority 3 działa przed powrotem do stimulus priority 2.
|
||||
Prawdziwe wejście IRQ5 testbencha wywołuje machine external interrupt. Port zapisuje pełny kontekst i przechodzi na \texttt{xISRStack}. ISR czyści źródło, daje binary semaphore i wywołuje \texttt{portYIELD\_FROM\_ISR}. Waiter priority 3 działa przed powrotem do stimulus priority 2.
|
||||
\vspace{0.55em}
|
||||
\small\begin{tabularx}{\textwidth}{@{}>{\ttfamily\raggedright\arraybackslash}p{0.85cm}>{\ttfamily\raggedright\arraybackslash}p{1.45cm}X>{\raggedright\arraybackslash}p{2.45cm}>{\raggedright\arraybackslash}p{1.75cm}>{\ttfamily\raggedright\arraybackslash}p{1.50cm}@{}}
|
||||
\textbf{Lekcja} & \textbf{Task} & \textbf{Najważniejsza idea} & \textbf{Priorytet} & \textbf{Status} & \textbf{Version} \\ \hline
|
||||
@@ -295,7 +295,7 @@ Wskaż, czy pierwszy wykona się waiter czy stimulus.
|
||||
\begin{ESCBlockFrame}{B — replay Hazard3}
|
||||
Każdy RUN zaczyna się od czystej RAM i wyłączonego źródła.
|
||||
\begin{ESCStepFrame}{trap · Zbadaj E03–E05.}
|
||||
Zapisz mcause, mepc, isr_sp i source state.
|
||||
Zapisz \texttt{mcause}, \texttt{mepc}, \texttt{isr\_sp} i source state.
|
||||
\end{ESCStepFrame}
|
||||
\begin{ESCStepFrame}{handoff · Zbadaj E06–E08.}
|
||||
Porównaj xHPW i kolejność tasków.
|
||||
@@ -305,14 +305,14 @@ Sprawdź trzy stosy, markers i digest.
|
||||
\end{ESCStepFrame}
|
||||
\end{ESCBlockFrame}
|
||||
\begin{ESCBlockFrame}{Ćwiczenie · Ćwiczenie — brak yield request}
|
||||
W kontrolowanym wariancie pomiń portYIELD_FROM_ISR, zachowując GiveFromISR. Zmierz, kiedy waiter zacznie działać i wskaż następny legalny scheduling point.
|
||||
W kontrolowanym wariancie pomiń \texttt{portYIELD\_FROM\_ISR}, zachowując GiveFromISR. Zmierz, kiedy waiter zacznie działać i wskaż następny legalny scheduling point.
|
||||
\par\textbf{Evidence:} Dwa timestampowane ślady E07/E08 z yield i bez yield oraz opis różnicy.
|
||||
\par\textbf{Acceptance:} Uczeń nie myli odblokowania taska z natychmiastowym wykonaniem i przywraca poprawny yield w wersji finalnej.
|
||||
\end{ESCBlockFrame}
|
||||
\tcblower\textbf{Task acceptance:} PASS; mcause=MEI; source=0 przed give; xHPW=1; waiter E07 przed stimulus E08; trzy różne stosy; deterministyczny digest.
|
||||
\end{ESCTaskFrame}
|
||||
\begin{ESCConclusionFrame}
|
||||
ISR działa na osobnym stacku i używa FromISR API. xHigherPriorityTaskWoken jest informacją dla portu; dopiero portYIELD_FROM_ISR powoduje restore kontekstu wyższego taska przed powrotem do przerwanego kodu.
|
||||
ISR działa na osobnym stacku i używa FromISR API. \texttt{xHigherPriorityTaskWoken} jest informacją dla portu; dopiero \texttt{portYIELD\_FROM\_ISR} powoduje restore kontekstu wyższego taska przed powrotem do przerwanego kodu.
|
||||
\end{ESCConclusionFrame}
|
||||
\ESCSectionBlockEnd
|
||||
|
||||
|
||||
Reference in New Issue
Block a user