PiLibSDK
Bare-metal SDK knihovna pro moduly Raspberry Pi
Před-alfa verze 0.22, rozpracováno - ve vývoji
Poslední aktualizace: 15.04.2026
(c) 2026 Miroslav Němeček
https://github.com/Panda381/PiLibSDK
Download knihovny spolu s ukázkovými aplikacemi a všemi podklady (350 MB)
Schémata a plošné spoje jsou ve formátu programu KiCAD verze 9.
PiLibSDK je bare-metal knihovna pro moduly Raspberry Pi. "Bare-metal" znamená, že programy běží na čistém hardware bez operačního systému, nepodléhají operačnímu systému a mají plný přístup k hardware. Moduly Raspberry Pi lze tak používat podobným způsobem, jako mikročipy. Výhodou je i to, že zařízení je plně v provozu do 3 sekund od zapnutí napájení. V současnosti jsou podporovány moduly Raspberry Zero 1, Zero 2 W, Pi 2 a Pi 3. Podpora modulů Pi 4 a Pi 5 je velmi omezená, a pravděpodobně ani v budoucnu nebudou podporovány, protože jejich přínos je pro bare-metal využití malý.
Pro zařízení ZeroPC a ZeroTiny je k dispozici boot loader, který umožňuje snadné spouštění programů z SD karty. Programy jsou připraveny pro ZeroPC i ZeroTiny, s moduly Zero 1, Zero 2 32bit nebo Zero 2 64bit. Moduly Zero 1 a Zero 2 se liší především rychlostí - Zero 2 je znatelně rychlejší než Zero 1. Vyšší rychlost je dána nejen vyšší frekvencí procesoru, ale také novější architekturou. Kromě toho modul Zero 2 disponuje 4 jádry, zatímco Zero 1 pouze jedním jádrem. Přednostně se proto doporučuje používat modul Zero 2. Modul Zero 1 použijte pouze v případě, že ho vlastníte a nemáte pro něj lepší využití. Modul Zero 2 lze provozovat v 32bitovém nebo 64bitovém módu. Překlady jsou připraveny pro oba módy. Z uživatelského hlediska není mezi módy znatelný rozdíl. Doporučuje se dávat přednost 64bitovému módu, který může být v některých případech o trochu rychlejší.
Poznámka: Ke spouštění programů není boot loader nutný. Programy můžete spouštět i na samotném modulu Zero1/Zero2, bez dalšího hardware a bez boot loaderu. Na SD kartu nakopírujte systémové soubory z Root adresáře z příslušné složky !ZeroTiny*. Jsou zapotřebí soubory "bootcode.bin", "config.txt", "fixup.dat" a "start.elf". Program zkopírujte do Root složky také, a přejmenujte ho na KERNEL.IMG. Po zapnutí napájení se program automaticky spustí.
Všechny mé zdrojové kódy a data jsou zcela volně k použití pro jakékoli účely. Výjimkou jsou některé soubory odvozené ze zdrojů třetích stran – na ty se vztahuje licence původního autora. Patří sem většina fontů, stejně jako části zdrojových souborů převzaté z knihovny Circle a kódu pro Linux – tyto části jsou ve zdrojových souborech označeny.
Většina fontů v této knihovně nejsou mým výtvorem. Byly staženy z internetu z neznámých zdrojů s neznámými licenčními podmínkami použití. Pokud chcete používat pouze striktní licence, nepoužívejte fonty z této knihovny.
Ke kompilaci v 32-bit módu potřebujete AArch32 GCC (jménu toolu "arm-none-eabi"). Instalujte do C:\ARM_GCC32.
Ke kompilaci v 64-bit módu potřebzujete AArch64 GCC (jménu toolu "aarch64-none-elf"). Instalujte do C:\ARM_GCC64.
z https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
Pokud použijete jiné cesty, upravte cesty v _c1.bat ("set GCC_PI_PATH").
!ZeroPC ... obsah SD karty pro zařízení ZeroPC - společné soubory
!ZeroPC_1 ... obsah SD karty pro zařízení ZeroPC - spustitelné pro modul Zero 1
!ZeroPC_3 ... obsah SD karty pro zařízení ZeroPC - spustitelné pro modul Zero 2 32-bit
!ZeroPC_4 ... obsah SD karty pro zařízení ZeroPC - spustitelné pro modul Zero 2 64-bit
!ZeroTiny ... obsah SD karty pro zařízení ZeroTiny - společné soubory
!ZeroTiny_1 ... obsah SD karty pro zařízení ZeroTiny - spustitelné pro modul Zero 1
!ZeroTiny_3 ... obsah SD karty pro zařízení ZeroTiny - spustitelné pro modul Zero 2 32-bit
!ZeroTiny_4 ... obsah SD karty pro zařízení ZeroTiny - spustitelné pro modul Zero 2 64-bit
_devices ... zařízení: PiBase = základní Pi moduly, ZeroPC = zařízení ZeroPC, ZeroTiny = zařízení ZeroTiny
_font ... fonty
_lib ... knihovny
_sdk ... SDK (drivery periferií)
_tools ... kompilační nástroje
Apps ... zdrojové kódy příkladů aplikací
K přípravě SD karty připravte SD kartu ve formátu FAT32, nahrajte na ni obsah ze složek !ZeroPC nebo !ZeroTiny (podle typu zařízení) a také jednu ze složek !ZeroPC_* nebo !ZeroTyny_* (podle typu modulu).
ZeroTiny je nejjednodušší herní konzole s moduly Raspberry Zero 1 nebo Zero 2. Přednostně se doporučuje používat modul Zero 2 v 64bitovém módu. Modul Zero 1 může být v některých aplikacích znatelně pomalejší. ZeroTiny obsahuje 8 tlačítek, stereofonni zvukový PWM výstup a výstup na HDMI displej. K dispozici je boot loader umožňující snadné spouštění programů z SD karty.
Konstrukčně je ZeroTiny řešen sendvičovým stylem. U mého prototypu jsem modul Zero připojil k základní desce přes 8mm dutinkovou lištu - především z důvodu snadné výměny modulu. Přiletujete-li modul Zero k desce pouze přes pinovou lištu, konstrukce bude nižší. Ovšem může být obtížnější opravitelnost, např. výměna tlačítka.
Podrobné podklady k hardware ZeroTiny naleznete ve složce "_devices/ZeroTiny/diagram".
Zdrojové kódy s ukázkovými programy naleznete ve složce "Apps".
Přeložené ukázkové programy naleznete ve složkách "!ZeroTiny*", podle typu modulu a podle módu procesoru.
ZeroPC je malý počítač založený na modulech Raspberry Zero 1 nebo Zero 2. Běžně se předpokládá použití s modulem Zero 2 v 64-bit módu. Kromě modulu obsahuje ZeroPC stereofonní zvukový PWM výstup, výstup na HDMI displej, externí konektor pro připojení periferií a interní klávesnici z 49 mikrospínačů. K dispozici je boot loader umožňující snadné spouštění programů z SD karty.
Modul Zero doporučuji nepřiletovat napevno do základní desky, ale použít 8mm dutinkovou lištu - umožní to snadnou výměnu modulu pokud ho budete chtít použít v jiném zařízení nebo pokud budete chtít použít jiný modul, např. namísto Zero 2 použít Zero 1. Na desce jsou 3 elektrolytické kondenzátory - pozor na jejich umístění aby nepřekážely horní desce, možná bude nutné je umístit naležato. Přiletujete-li modul Zero do desky přes pinovou lištu, bez zásuvné dutinkové lišty, může být možné použít pouze jeden krycí panel, přes celý rozměr desky. Při použití dutinkové lišty je nutné použít dva panely - panel nad modulem bude výše a bude přišroubován k panelu klávesnice přes sloupky. Piny na externím konektoru jsou rozděleny do skupin, aby bylo možné připojovat malé moduly jen pro určitý interface. Slepé piny jsou ucpány např. bužírkou, aby nemohlo dojít k nesprávnému zasunutí konektoru - konektor by v tom místě neměl mít kolík. Mezi jednotlivými skupinami je mezera 1 pin - buď v tom místě konektor přerušte, nebo vyznačte na desce výrazněji, kde se která skupina pinů nachází.
Podrobné podklady k hardware ZeroPC naleznete ve složce "_devices/ZeroPC/diagram".
Zdrojové kódy s ukázkovými programy naleznete ve složce "Apps".
Přeložené ukázkové programy naleznete ve složkách "!ZeroPC*", podle typu modulu a podle módu procesoru.
System
Book
![]() ABC - Fairy Tales from the Alphabet (Czech) |
![]() GINGER - Gingerbread House (English) |
![]() GINGERCZ - Gingerbread House (Czech) |
Demo
Doporučuji používat MP3 soubory s konstantní bitrate. Některé starší formáty MP3, nebo MP3 s variable bitrate, nemusí umožňovat posouvání ukazatele přehrávání, případně skladba může skončit předčasně před koncem. Přehrávač podporuje pouze krátká jména souborů - tj. jméno MP3 souboru může mít max 8 znaků. Bude-li složka obsahovat i JPG obrázek stejného jména jako MP3, o rozměru 320x240 pixelů, zobrazí se namísto info stránky. Obrázek nebo info lze přepínat klávesou Tab. Klávesa Space přehraje aktuální adresář od první skladby. Klávesa Enter začne přehrávání od aktuální skladby.
K přehrávači je k dispozici ukázková sada skladeb, ve stylu různých interpretů, vytvořená v nástroji Suno AI. Celkem je to 248 skladeb, obsahujících 13 hodin hudby. Skladby lze stáhnout zde.
Download skladeb část 1 (200 MB): styly ABBA, The Beatles, Breton Celtic, Classical
Download skladeb část 2 (224 MB): styly Computer, Cyberpunk, Enya, Folk
Download skladeb část 3 (213 MB): styly Children, Jean-Michel Jarre, J-pop
Download skladeb část 4 (217 MB): styly Loreena McKennitt, Medieval, Meditation, Metal, Vox Angeli
Download skladeb část 5 (207 MB): styly Mixed, Nightwish s Tarja Turunen, Mike Oldfield
Miroslav Němeček