PiLibSDK
Bare-metal SDK knihovna pro moduly Raspberry Pi
Před-alfa verze 0.30, rozpracováno - ve vývoji
Poslední aktualizace: 05.06.2026
(c) 2026 Miroslav Němeček
https://github.com/Panda381/PiLibSDK
Download knihovny spolu s ukázkovými aplikacemi a všemi podklady (360 MB)
Poznámka: 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ý.
Ukázkové programy jsou připravené pro hardware modulární mikročipové stavebnice BarePi (linky: www, GitHub). Zapojení hardware samozřejmě není nutné dodržet, ale jedná se o nejobvyklejší přiřazení signálů pinům. Hlavním zařízením je herní konzole ZeroTiny, která odpovídá sestavení modulů stavebnice "Zero", "Base" a "KeyPad".
Pro zařízení BarePi je k dispozici boot loader, který umožňuje snadné spouštění programů z SD karty. Programy jsou připraveny pro BarePi 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ší.
Zařízení stavebnice BarePi lze ovládat jednak herní klávesnicí "KeyPad" a jednak alfanumerickou klávesnicí "MiniKey". Klávesy z klávesnice "KeyPad" jsou mapovány současně i na klávesy klávesnice "MiniKey". Pro odlišení značení kláves se akční klávesy z herní klávesnice uvádí v hranatých závorkách, zatímco znakové klávesy se uvádí bez závorek. Např. "[A]" označuje akční tlačítko "A" na herní klávesnici. Význam tlačítek na herní klávesnici a jejich mapování na alfanumerickou klávesnici je následující.
[A] = Space ... Hlavní akční tlačítko
[B] = Enter ... Vedlejší akční tlačítko
[X] = Tab ... Pomocné tlačítko, např. nápověda
[Y] = Esc ... Opuštění menu, ukončení programu
Alt+Vlevo = Home ... Skok na začátek
Alt+Vpravo = End ... Skok na konec
Alt+Nahoru = PgUp ... Stránka nahoru
Alt+Dolů = PgDn ... Stránka dolů
Alt+A = Insert ... Mód vkládání
Alt+B = Edit ... Mód editace
Alt+X = PrtScr ... Screenshot obrazovky do souboru na SD kartu
Alt+Y = Menu ... Vyvolání systémového menu
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").
!BarePi ... obsah SD karty pro stavebnici BarePi a ZeroTiny - společné soubory
!BarePi_1 ... obsah SD karty pro stavebnici BarePi a ZeroTiny - spustitelné pro modul Zero 1
!BarePi_3 ... obsah SD karty pro stavebnici BarePi a ZeroTiny - spustitelné pro modul Zero 2 32-bit
!BarePi_4 ... obsah SD karty pro stavebnici BarePi a ZeroTiny - spustitelné pro modul Zero 2 64-bit
_devices ... zařízení: BarePi = modulární mikročipová stavebnice a 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 složky !BarePi a také jednu ze složek !BarePi_* (podle typu modulu).
ZeroTiny je nejjednodušší herní konzole s moduly Raspberry Zero 1 nebo Zero 2. Odpovídá sestavení modulů "Zero", "Base" a "KeyPad" ze stavebnice BarePi. 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 9 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/BarePi/ZeroTiny".
Zdrojové kódy s ukázkovými programy naleznete ve složce "Apps".
Přeložené ukázkové programy naleznete ve složkách "!BarePi*", podle typu modulu a podle módu procesoru.
Konzole ZeroTiny sestavená z modulů BarePi:
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 [X]. Klávesa [B] přehraje aktuální adresář od první skladby. Klávesa [A] 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
Test
Miroslav Němeček