chore: preserve current FreeRTOS and C card updates
This commit is contained in:
+25
-17
@@ -100,7 +100,7 @@ Czas & Tryb & Wynik \\
|
||||
3--4 & kontekst & FreeRTOS linkuje jedną implementację; tutaj pracujemy tylko z \texttt{heap\_4} \\
|
||||
4--9 & Demo 1 & przewidzieć nagłówek, first-fit i split \\
|
||||
9--16 & Demo 2 & przewidzieć listę adresową i scalenie \texttt{2 -> 1} \\
|
||||
16--27 & Task 3 RUN & dwa checkpointy prawdziwego \texttt{heap\_4.c} na Pico 2 W \\
|
||||
16--27 & Task 3 RUN & osiem checkpointów E01--E08 prawdziwego \texttt{heap\_4.c} \\
|
||||
27--30 & wyjście & odróżnić total free, largest free i minimum-ever \\
|
||||
\bottomrule
|
||||
\end{tabularx}
|
||||
@@ -209,8 +209,9 @@ po: A:144 -> END blocks=1 total=144 largest=144
|
||||
\end{lstlisting}
|
||||
|
||||
Porządek po adresie sprawia, że fizycznych sąsiadów można sprawdzić podczas
|
||||
jednego wstawienia. To jest mechanizm funkcji
|
||||
\texttt{prvInsertBlockIntoFreeList()} z \texttt{heap\_4.c}.
|
||||
jednego wstawienia. Uproszczony Task 2 scala prawą, a następnie lewą stronę.
|
||||
Właściwy \texttt{prvInsertBlockIntoFreeList()} z FreeRTOS V11.3.0 wykonuje
|
||||
te same dwa testy w kolejności: poprzedni/lewy, następnie kolejny/prawy blok.
|
||||
|
||||
\section{Task 3 — jedyny centralny RUN (11 minut)}
|
||||
|
||||
@@ -224,17 +225,21 @@ stemctl debug rp2350 freertos heap4 3 --device /dev/bus/usb/BBB/DDD
|
||||
|
||||
\begin{lstlisting}
|
||||
RESET/INIT
|
||||
-> ALLOC A(24) -> ALLOC B(40) -> ALLOC C(16)
|
||||
-> FREE A -> FREE C
|
||||
-> heap4_fragmented_checkpoint # STOP 1
|
||||
-> FREE B -> OOM request
|
||||
-> task03_debug_checkpoint # STOP 2
|
||||
-> heap4_reset_checkpoint # E01: free=4080
|
||||
-> heap4_alloc_a_checkpoint # E02: free=4032, used=48
|
||||
-> heap4_alloc_b_checkpoint # E03: free=3968, used=64
|
||||
-> heap4_alloc_c_checkpoint # E04: free=3936, used=32
|
||||
-> heap4_free_a_checkpoint # E05: free=3984, blocks=2
|
||||
-> heap4_fragmented_checkpoint # E06: free=4016, blocks=2
|
||||
-> heap4_coalesced_checkpoint # E07: free=4080, blocks=1
|
||||
-> task03_debug_checkpoint # E08: OOM, hook, PASS
|
||||
\end{lstlisting}
|
||||
|
||||
\textbf{STOP 1:} zapisz liczbę bloków, sumę i largest. Przed \texttt{F5}
|
||||
przewidź, co zmieni \texttt{FREE B}.
|
||||
|
||||
\textbf{STOP 2:} sprawdź odzyskanie areny, minimum-ever, OOM i hook.
|
||||
\textbf{E01--E04:} sprawdź, że zużycie obejmuje wyrównany nagłówek całego
|
||||
bloku, a nie tylko payload. \textbf{E05--E06:} porównaj sumę wolną z largest.
|
||||
Przed przejściem z E06 do E07 ustaw tymczasowy breakpoint na
|
||||
\texttt{prvInsertBlockIntoFreeList()} i sprawdź oba testy sąsiedztwa.
|
||||
\textbf{E07--E08:} potwierdź odzyskanie areny, minimum-ever, OOM i hook.
|
||||
|
||||
\newpage
|
||||
\section{Dowód na Pico 2 W / RP2350}
|
||||
@@ -248,11 +253,14 @@ realną pamięć SRAM, w której obserwujemy ten sam algorytm.
|
||||
\begin{lstlisting}
|
||||
p g_fragmented_stats
|
||||
p g_final_stats
|
||||
p g_a_consumed
|
||||
p g_b_consumed
|
||||
p g_c_consumed
|
||||
p xFreeBytesRemaining
|
||||
p xMinimumEverFreeBytesRemaining
|
||||
p xStart
|
||||
p pxEnd
|
||||
x/96bx ucHeap
|
||||
x/160bx ucHeap
|
||||
\end{lstlisting}
|
||||
|
||||
\subsection*{Tabela obserwacji}
|
||||
@@ -263,10 +271,10 @@ Wielkość & Odczyt & Warunek \\
|
||||
\midrule
|
||||
\texttt{initial\_free} & \blank{2.3cm} & punkt odniesienia \\
|
||||
\texttt{after\_allocations} & \blank{2.3cm} & mniejsze niż initial \\
|
||||
STOP 1: free blocks & \blank{2.3cm} & równe 2 \\
|
||||
STOP 1: total / largest & \blank{2.3cm} & largest mniejsze niż total \\
|
||||
STOP 2: final free & \blank{2.3cm} & równe initial \\
|
||||
STOP 2: free blocks & \blank{2.3cm} & równe 1 \\
|
||||
E06: free blocks & \blank{2.3cm} & równe 2 \\
|
||||
E06: total / largest & \blank{2.3cm} & largest mniejsze niż total \\
|
||||
E07: final free & \blank{2.3cm} & równe initial \\
|
||||
E07: free blocks & \blank{2.3cm} & równe 1 \\
|
||||
minimum-ever & \blank{2.3cm} & nie rośnie po free \\
|
||||
OOM / hook / asserts / pass & \blank{2.3cm} & \texttt{1 / 1 / 0 / 1} \\
|
||||
\bottomrule
|
||||
|
||||
Reference in New Issue
Block a user