# C — Freestanding RV32I and K&R Status: C01–C13 gotowe; seria C zakończona przed rozpoczęciem serii C++. ```text C · Freestanding RV32I and K&R ├── C01 · ASM, C and GCC ├── C02 · .bss, .data and static storage ├── C03 · ABI and Stack Frame ├── C04 · Types, Operators and Expressions [K&R 2] ├── C05 · Control Flow [K&R 3] ├── C06 · Functions and Program Structure [K&R 4] ├── C07 · Pointers, Arrays and Linear Allocator [K&R 5] ├── C08 · Structures and Linked State [K&R 6] ├── C09 · smalloc, sbrk and minimal libc ├── C10 · RV32I Traps and Interrupt Control ├── C11 · Machine Timer and Periodic Work ├── C12 · UART — polling and interrupts └── C13 · GPIO, Edges and Debounce ``` RV32I ASM jest osobną serią-prerekwizytem. C01–C03 tworzą przejście z freestanding assemblera do środowiska C, ale pozostają kartami serii C, ponieważ ich wynikiem jest rozumienie uruchomienia i ABI programu C. ## Układ każdego przykładu: A1–A8 Każdy przykład źródłowy w karcie serii C jest osobnym taskiem i jawnie odpowiada na komplet pytań A1–A8: ```text A1 CONTEXT granica systemu i odpowiedzialność przykładu A2 STRUCTURE typy, obiekty, reprezentacja i ownership A3 DISPATCH granica wywołania, callbacku albo ISR A4 APPLICATION konkretne funkcje, dane i inwariant przykładu A5 FLOW kolejność wykonania oraz checkpointy A6 STATE stan, lifetime i przejścia wartości A7 RUNTIME ABI, rejestry, adresy, sekcje ELF i wynik pomiaru A8 PATTERNS nazwana, rzeczywiście wielokrotnego użytku decyzja ``` A1–A8 jest profilem pytań, a nie nakazem tworzenia ośmiu dekoracyjnych diagramów. Każda pozycja ma status `enabled` albo `unavailable`. Widok `enabled` musi wnosić odrębny dowód; `unavailable` zawiera konkretny powód. Wartościowy opis tekstowy jest pełnoprawnym widokiem. Diagram powstaje tylko wtedy, gdy relacja, kolejność lub stan są mniej czytelne w krótkim tekście. Dla C04–C06 nowe źródło JSON, TeX, HTML i nowy PDF są dodawane obok historycznych kart. Oryginalne `doc/main.tex`, PDF-y oraz przykłady w `src/tasks/` pozostają niezmienionym materiałem referencyjnym. Pełne cele C10–C13 i granica roku znajdują się w `series/inf/lab-rv32i-c-pointers-arrays/guidelines/year-01-interrupts-to-year-02-freertos.md`. ## Stan odbioru serii C — 2026-07-20 Każda karta ma wygenerowane źródło JSON, widok web i nowy PDF. Odbiór potwierdza dokładną kolejność A1–A8 w każdym tasku, jawne uzasadnienie każdego N/D, poprawny JSON i JavaScript, poprawność PDF według `qpdf` oraz brak pustych, anonimowych i przepełnionych stron. Przykłady uruchamialne przeszły właściwe testy hostowe i/lub wyrocznie Hazard3. ```text karta przykłady bloki A1–A8 C01 3 24 C02 4 32 C03 2 16 C04 12 96 C05 8 64 C06 11 88 C07 12 96 C08 4 32 C09 5 40 C10 3 24 C11 3 24 C12 3 24 C13 4 32 RAZEM 74 592 ``` PDF-y mają łącznie 180 stron. Spośród 592 widoków 508 ma stan `enabled`, a 84 ma stan `unavailable` z konkretnym powodem. Historyczne źródła C04–C06 nadal są materiałem referencyjnym: nowy układ nie nadpisuje `doc/main.tex`, starych PDF-ów ani przykładów w `src/tasks/`.