3.6 KiB
C — Freestanding RV32I and K&R
Status: C01–C13 gotowe; seria C zakończona przed rozpoczęciem serii C++.
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:
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.
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/.