Document FreeRTOS Book v1.1.0 mapping
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# rv32i-freertos / heap4
|
# rv32i-freertos / heap4
|
||||||
|
|
||||||
Karta pracy 1/? z serii `rv32i-freertos`.
|
Karta pracy `01/14` z serii `rv32i-freertos`; jest opcjonalnym fundamentem L1.
|
||||||
|
|
||||||
Temat: mechanika alokatora `heap_4.c` z FreeRTOS-a na małych przykładach
|
Temat: mechanika alokatora `heap_4.c` z FreeRTOS-a na małych przykładach
|
||||||
uruchamianych w środowisku RV32I.
|
uruchamianych w środowisku RV32I.
|
||||||
@@ -38,6 +38,24 @@ kod pomocniczy i pliki danego zadania.
|
|||||||
Uczeń nie commituje bezpośrednio do `tasks/*`. W repozytorium klasy tworzy
|
Uczeń nie commituje bezpośrednio do `tasks/*`. W repozytorium klasy tworzy
|
||||||
gałąź pochodną, na przykład `students/u01/tasks/05-malloc-first-fit`.
|
gałąź pochodną, na przykład `students/u01/tasks/05-malloc-first-fit`.
|
||||||
|
|
||||||
|
## Powiązanie z FreeRTOS Book v1.1.0
|
||||||
|
|
||||||
|
To jest opcjonalna karta `K01` z
|
||||||
|
[mapy serii](../README.md). Jej źródłem pojęciowym jest rozdział 3 książki
|
||||||
|
*Mastering the FreeRTOS Real Time Kernel*, przede wszystkim sekcja 3.2.4 o
|
||||||
|
`heap_4` oraz rysunki 3.1–3.4. Rozdział o heapie nie ma numerowanego programu
|
||||||
|
z zestawu `Example001`–`Example025`, dlatego karta rozkłada mechanikę
|
||||||
|
alokatora na własne, krótsze eksperymenty:
|
||||||
|
|
||||||
|
- Taski 01–03 odtwarzają mapę bloku, wolną listę i inicjalizację heapu;
|
||||||
|
- Taski 04–08 izolują wyrównanie, first-fit, podział, wstawianie i scalanie;
|
||||||
|
- Task 09 łączy konfigurację z sekcjami 3.1.3–3.1.5;
|
||||||
|
- Task 10 składa te elementy w jeden model zachowania `heap_4`.
|
||||||
|
|
||||||
|
Karta nie jest kopią upstreamowego `heap_4.c` ani listingów książki. Jest
|
||||||
|
modelem dydaktycznym, po którym karta `K02` przechodzi na prawdziwy plik
|
||||||
|
`portable/MemMang/heap_4.c` z FreeRTOS V11.3.0.
|
||||||
|
|
||||||
## Budowanie
|
## Budowanie
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
+16
-2
@@ -23,7 +23,7 @@
|
|||||||
\newcommand{\CardArea}{inf}
|
\newcommand{\CardArea}{inf}
|
||||||
\newcommand{\CardSeries}{rv32i-freertos}
|
\newcommand{\CardSeries}{rv32i-freertos}
|
||||||
\newcommand{\CardNumber}{01}
|
\newcommand{\CardNumber}{01}
|
||||||
\newcommand{\CardCount}{??}
|
\newcommand{\CardCount}{14}
|
||||||
\newcommand{\CardSlug}{heap4}
|
\newcommand{\CardSlug}{heap4}
|
||||||
\newcommand{\CardVersion}{v0.1}
|
\newcommand{\CardVersion}{v0.1}
|
||||||
\newcommand{\DocumentKey}{\PublisherDomain/\CardArea/\CardSeries/\CardNumber/\CardSlug/\CardVersion}
|
\newcommand{\DocumentKey}{\PublisherDomain/\CardArea/\CardSeries/\CardNumber/\CardSlug/\CardVersion}
|
||||||
@@ -53,7 +53,7 @@ Project: & FreeRTOS: \texttt{heap\_4} \\
|
|||||||
Subject: & Informatyka \\
|
Subject: & Informatyka \\
|
||||||
Level: & 1, Zakres Podstawowy, PP \\
|
Level: & 1, Zakres Podstawowy, PP \\
|
||||||
Topic: & dynamiczna alokacja pamięci, lista wolnych bloków, scalanie bloków \\
|
Topic: & dynamiczna alokacja pamięci, lista wolnych bloków, scalanie bloków \\
|
||||||
Revision date: & 02.05.2026 \\
|
Revision date: & 14.07.2026 \\
|
||||||
Status: & Draft \\
|
Status: & Draft \\
|
||||||
Card in series: & \small\texttt{\CardNumber/\CardCount} \\
|
Card in series: & \small\texttt{\CardNumber/\CardCount} \\
|
||||||
Card version: & \small\texttt{\CardVersion} \\
|
Card version: & \small\texttt{\CardVersion} \\
|
||||||
@@ -105,6 +105,20 @@ statycznego bufora do sterty zarządzanej przez algorytm.
|
|||||||
Listingi C i ASM mają numerowane linie. Opisy w sekcjach tasków odnoszą się
|
Listingi C i ASM mają numerowane linie. Opisy w sekcjach tasków odnoszą się
|
||||||
do numerów widocznych po lewej stronie listingów C.
|
do numerów widocznych po lewej stronie listingów C.
|
||||||
|
|
||||||
|
\subsection{Powiązanie z FreeRTOS Book v1.1.0}
|
||||||
|
|
||||||
|
Karta K01 odpowiada rozdziałowi 3 książki \emph{Mastering the FreeRTOS Real
|
||||||
|
Time Kernel}, przede wszystkim sekcji 3.2.4 o \texttt{heap\_4} oraz rysunkom
|
||||||
|
3.1--3.4. Ten rozdział nie ma programu z numerowanego zestawu
|
||||||
|
\texttt{Example001}--\texttt{Example025}. Dlatego Taski 01--08 są krótkimi,
|
||||||
|
własnymi eksperymentami izolującymi kolejne elementy algorytmu, a Task 10
|
||||||
|
składa je w jeden model.
|
||||||
|
|
||||||
|
Nie kopiujemy listingu upstream ani projektu Win32/MSVC. Ta karta służy do
|
||||||
|
zrozumienia mechaniki; karta K02 przechodzi na niezmodyfikowany
|
||||||
|
\texttt{portable/MemMang/heap\_4.c} z FreeRTOS V11.3.0. Pełna mapa książki,
|
||||||
|
lekcji i kart znajduje się w pliku \texttt{series/inf/README.md}.
|
||||||
|
|
||||||
\lstinputlisting[language=C,caption={Wspólny nagłówek dla karty \texttt{heap\_4}},label={lst:common-h}]{../src/tasks/heap4_common.h}
|
\lstinputlisting[language=C,caption={Wspólny nagłówek dla karty \texttt{heap\_4}},label={lst:common-h}]{../src/tasks/heap4_common.h}
|
||||||
|
|
||||||
\subsection{\texttt{static inline} w nagłówku}
|
\subsection{\texttt{static inline} w nagłówku}
|
||||||
|
|||||||
Reference in New Issue
Block a user