<< Zpět

 

  Česky: , English:

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.

Obsah

 

Úvod

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í.

 

Licence

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.

 

Kompilace

Ke kompilaci v 32-bit módu potřebujete AArch32 GCC (jménu toolu "arm-none-eabi"). Instalujte do C:\ARM_GCC32.

https://developer.arm.com/-/media/Files/downloads/gnu/15.2.rel1/binrel/arm-gnu-toolchain-15.2.rel1-mingw-w64-i686-arm-none-eabi.msi

Ke kompilaci v 64-bit módu potřebzujete AArch64 GCC (jménu toolu "aarch64-none-elf"). Instalujte do C:\ARM_GCC64.

https://developer.arm.com/-/media/Files/downloads/gnu/15.2.rel1/binrel/arm-gnu-toolchain-15.2.rel1-mingw-w64-i686-aarch64-none-elf.msi

z https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads

Pokud použijete jiné cesty, upravte cesty v _c1.bat ("set GCC_PI_PATH").

 

Adresáře

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

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

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.

 

Ukázkové aplikace

System


KERNEL - Loader of
applications

SYSINFO - System
information

Book


ABC - Fairy Tales
from the Alphabet
(Czech)

GINGER - Gingerbread
House (English)

GINGERCZ -
Gingerbread House
(Czech)
   

Demo


BALLOONS - Flying
balloons

BIGFACT - Factorial of
123456789!

DRAW - Drawing
graphic elements

EARTH - Rotating
globe

FLAG - Fluttering flag

FLAG2 - Fluttering
custom flag

FOUNTAIN - Draw
3D graph

FRUITY - 130 music
loops with MP3
compression

HELLO - Simplest
example

HYPNO - hypnotic
rotating pattern

LEVMETER -
simulation of music
spectrum indicator

LINEART - draw line
flower

LINES - relaxation line
pattern generator

MATRIX - matrix code
rain

OSCIL - simulation of
oscilloscope signal

PF2027 - Christmas
animation

PI - calculating
number Pi to 4780
digits

PIXELS - random
generation of colored
pixels

RAYTRACE - 3D
pattern generation by
ray tracing method

SPHERES - random
spheres

SPOTS - random
spots

TWISTER - twisting
textured block

WATER - simulation
of rippling water
surface
   

Games


ANTS - card game

ATOMS - Game of exploding atoms

EGGS - Logic game as Reversi

FIFTEEN - Logic puzzle game

FLAPPY - Logic game from Sharp MZ800

INVADERS - Shooting game Space Invaders

LIFE - Cell life simulator
   

MP3

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


MP3 - MP3 player

 

Miroslav Němeček

<< Zpět