<< Zpět

 

  Česky: , English:

PicoLibSDK

Alternativní rozšířená knihovna C/C++ SDK pro Raspberry Pico, RP2040 a RP2350

verze 2.00, říjen 2024

(c) Miroslav Němeček

https://github.com/Panda381/PicoLibSDK

>>> Downloady - odkazy <<<

Manuál k PicoLibSDK v PDF

Demo video na YouTube

Picopad na pajenicko.cz - PRODEJ

Picopad Song: YouTube ... video ... mp3 ... Lyrics

Obsah:

PicoLibSDK je alternativní rozšířená knihovna C/C++ SDK pro modul Raspberry Pico s procesorem RP2040, se snadným překladem pod Windows. Lze ji použít i pro jiné moduly, které tento procesor používají. Oproti původní knihovně SDK se knihovna PicoLibSDK snaží rozšířit funkčnost původní knihovny a zejména usnadnit její používání.

Vlastnosti knihovny PicoLibSDK

Boot loader: Boot loader umožňující výběr a spouštění programů UF2 z SD karty.

SDK řízení hardware: ADC, boot ROM, řízení systémových hodin, řízení CPU, hardwarová dělička, DMA, doorbells, double a float aritmetika, FIFO mailboxy, programování flash, GPIO, HSTX, I2C, hardware interpolator, IRQ, multicore, PIO, PLL, PWM, QSPI, reset a power řízení, ROSC, RTC, SHA256, SPI, spinlocky, SysTick, časovač s alarmem, TMDS, TRNG, watchdog, XOSC. Procesor RP2350 může být používán v módu ARM nebo RISC-V.

Tool knihovna: alarm, 32-bitový Unix kalendář, dlouhý 64-bitový astronomický kalendář, kreslení na canvas, RGBA barevný vektor, CRC kontrola s podporou DMA, dekódování čísel, emulátory, escape paketový protokol, event kruhový buffer, FAT file system, doubly linked list, alokátor paměti, 2D transformační matice, mini-ring buffer, formátovaný tisk, PWM zvukový výstup, generátor náhody, rectangle, kruhový buffer, DMA kruhový buffer, SD karta, streamy, textové řetězce, textové seznamy, textový tisk, tree list, VGA kreslení, video přehrávač.

Knihovna USB: multiplayer mini-port, CDC device a host - sériová komunikace, HID device a host - včetně externí klávesnice a myši.

Velká celá čísla: výpočty s velkými celými čísly, výpočet Bernoulliho čísel.

Reálná čísla: výpočty s čísly s pohyblivou řádovou čárkou s volitelnou přesností až 3690 číslic a 30-bitovým exponentem. Vědecké funkce s volitelnou metodou výpočtu - Ln, Exp, Sqrt, Sin, Cos, Tan, arcus, hyperbolické funkce a mnoho dalších. Lineární faktoriály s přesným a rychlým výpočtem.

Ovladače displeje: Připravená podpora TFT, DVI a VGA displeje.

Zařízení: Podpora desek Picoino/PicoinoMini/Picotron/DemoVGA/PicoPadVGA s VGA displejem, PicoPad s TFT displejem a základní Raspberry Pico bez dalšího hardware.

Kompatibilita: Knihovna je ve většině funkcí zpětně kompatibilní s originální SDK knihovnou. Lze vyvolávat většinu funkcí z originální SDK knihovny, přestože vnitřně jsou často řešené jinak.

Boot loader pro spouštění programů z SD karty:


Licence

Zdrojový kód knihovny je, až na několik výjimek, zcela volně k použití pro jakýkoli účel, včetně komerčního využití. Většina zdrojového kódu knihovny nebo jeho části je možné používat a upravovat bez omezení. Jedinou výjimkou jsou knihovny pro single- a double-floating-point matematiku, které jsou převážně autorským dílem Raspberry Pi a Marka Owena, a proto podléhají licenčním podmínkám původních autorů.

Odkazy

Download knihovny PicoLibSDK (zdrojové kódy, obrazy SD karty, ukázkové programy)

>>> Obsah SD karty pro PicoPad 1 <<<

>>> Obsah SD karty pro PicoPad 2 v ARM módu <<<

>>> Obsah SD karty pro PicoPad 2 v RISC-V módu <<<

Download manuálu ke knihovně PicoLibSDK (formáty DOC, ODT, PDF)

Manuál k PicoLibSDK v PDF

PicoLibSDK na Github: https://github.com/Panda381/PicoLibSDK

Demo video na YouTube

Video se slide-show přehrávačem pro porovnání videomódů PicoLibSDK

Obsah SD karty pro PicoPadVGA

Obsah SD karty pro desku DemoVGA

Obsah SD karty pro Picoino

Obsah SD karty pro PicoinoMini

Obsah SD karty pro Picotron

Ukázkové programy pro Raspberry Pico 1

Ukázkové programy pro Raspberry Pico 2 v ARM módu

Ukázkové programy pro Raspberry Pico 2 v RISC-V módu

Picopad Song: YouTube ... video ... mp3 ... Lyrics

Demo video PC DOS emulátoru

Cílová zařízení

PicoPad

Hlavním cílovým zařízením, pro které je knihovna v současnosti připravena, je konzole PicoPad, s 16-bitovým TFT displejem 320x240 pixelů, 8 tlačítky a mikroSD kartou. Většinu programů a her na modulu PicoPad lze ovládat také z klávesnice USB, která je připojena ke konektoru USB modulu Pico prostřednictvím napájecího rozbočovače, který poskytuje externí napájení +5 V. Mapování kláves: A->Ctrl, B->Alt, X->Shift, Y->Esc.

PicoPad 1.0 schéma zapojení (nebo jako PDF):

PicoPad 0.8

Je připraven překlad také pro PicoPad verze 0.8, což byl první prototyp PicoPad. Překlad slouží spíše jako ukázka možnosti alternativní konfigurace překladu.

PicoPad 0.8 schéma zapojení (nebo jako PDF):

PicoPadVGA

PicoPadVGA je alternativou ke konzoli PicoPad s výstupem na displej VGA. Obvykle se používá v rozlišení 320x240 pixelů s 16bitovým barevným formátem RGB565. Podporováno je také rozlišení 400x300 pixelů. Většinu programů a her na zařízení PicoPadVGA lze ovládat také pomocí klávesnice USB. PicoPadVGA musí být napájen z externího zdroje +5 V přes napájecí USB konektor. Mapování kláves: A->Ctrl, B->Alt, X->Shift, Y->Esc. Download podkladů pro PicoPadVGA .

PicoPadVGA schéma zapojení:

PicoPadVGA osazení součástek:

Picoino

Další připravenou alternativou překladu je Picoino, což je předchůdce PicoPad, s vestavěnou klávesnicí 56 tlačítek a výstupem na VGA monitor v 8-bitovém barevném módu RGB332. V knihovně je připraveno rozlišení obrazu 320x240. Spolu s knihovnou PicoVGA je možné i vyšší rozlišení a kombinované módy. Download podkladů pro Picoino.

Ukázkové programy pro Picoino jsou připravené adaptací programů pro PicoPad - grafika změněna z 16-bitů na 8-bitů a k ovládání se používá 8 tlačítek klávesnice přemapovaných na kódy PicoPad (kurzory, Space -> A, Z -> B, Ctrl ->X, BackSpace -> Y).

Picoino 1.0 schéma zapojení:

Picoino 1.0 osazení součástek:

Picoino výstup na VGA monitor:

PicoinoMini

Jako menší bratr PicoPad vznikla odlehčená verze Picoino, která má 8-bitový výstup RGB332 na VGA displej (mód QVGA 320x240), SD kartu, externí konektor jako PicoPad a 8 tlačítek jako PicoPad. Je určena především pro tutoriály k programování Raspberry Pico, protože umožňuje snadné sestavení z běžných domácích zásob - pro výstup na VGA monitor mohou stačit 3 rezistory a VGA konektor. Download podkladů pro PicoinoMini.

PicoinoMini schéma zapojení:

PicoinoMini osazení součástek:

PicoinoMini výstup na VGA monitor:

DemoVGA

DemoVGA je demo modul s výstupem na VGA monitor v rozlišení 320x240 pixelů, 16-bitů barvy ve formátu RGB565. Obsahuje SD kartu, přídavný napájecí USB konektor, výstup na sluchátka a 3 tlačítka. K některým programům (typicky hry) se používá externí USB klávesnice. Download podkladů pro DemoVGA.

DemoVGA schéma zapojení:

DemoVGA osazení součástek:

Picotron

Picotron je jednoduchý minipočítač zaměřený na technické aplikace. Disponuje výstupem na VGA displej v rozlišení až 800x600 pixelů, 4-bitový barevný výstup v režimu YRGB1111 (16-barevný režim jako v PC-CGA a EGA). Dále má SD kartu, sluchátkový audio konektor a klávesnici ze 40 mikrospínačů. Download podkladů pro Picotron.

Picotron schéma zapojení:

Picotron osazení součástek:

Raspberry Pico

Knihovna je připravena též pro základní modul Raspberry Pico, bez přídavného hardware. To slouží především ke zkoušení základních tutoriálů pro Raspberry Pico.


Ukázkové programy

Součástí knihovny je připravené ukázkové programy a hry. Jsou připraveny obrazy SD karty pro jednotlivá cílová zařízení. Před použitím SD karty je potřeba do procesoru nahrát boot loader - to je možné buď nahrátím programu LOADER.UF2 z root složky obrazu SD karty, nebo nahrátím kteréhokoliv jiného programu, protože každý program obsahuje současně i boot loader. Programy lze ukončit tlačítkem Y a přejít do boot loaderu.

Config - nastavení konfigurace PicoPad. Nastaví hlasitost, podsvícení displeje, referenční napětí ADC, napětí pro měření baterie, kalibrace měření teploty, kalibrace frekvence krystalu.

SD-card boot loader - program je nahrán do paměti RAM a umožňuje zapsat nový boot loader z SD karty do flash paměti (případně s aplikací). Ale také může uložit obsah paměti flash do souboru UF2, aniž by se obsah paměti flash spuštěním tohoto programu změnil.

Frekvenční generátor - generuje obdélníkový signál nebo PWM signál (sinus, pila, trojúhelník - sample rate 100 kHz), frekvenční rozsah od 0,01 Hz do 100 MHz. Přesnost 5 číslic (30 ppm) nebo po kalibraci krystalu 6 číslic (až 3 ppm, podle přesnosti kalibrace). Výstup buď na GPIO14 nebo na GPIO15 (s reproduktorem).

Měřič frekvence - měří frekvenci ze 2 vstupů (GPIO1 a GPIO14) v rozsahu 0,0256 Hz až 100 MHz, s přesností 5 číslic (30 ppm) nebo po kalibraci krystalu 6 číslic (až 3 ppm, podle přesnosti kalibrace). Měří s plnou přesností i nízké kmitočty, tj. nejedná se jen o jednoduchý čítač pulzů. Během měření kombinuje 3 různé metody, s využitím obou PIO.

RC metr - měří odpor rezistorů, kapacitu a ESR kondenzátorů. Podle následujícího schématu je zapotřebí adaptér s 5 rezistory, připojený k externímu konektoru. GPIO0 ... rezistor 200 ohmů, GPIO1 ... rezistor 2 Kohm, GPIO14 ... rezistor 20 Kohm, GPIO26 ... rezistor 200 Kohm, GPIO27 ... rezistor 2 Mohm, GPIO28 ... testovací vstup. V případě PicoPadVGA je nutné vypnout výstupní piny VGA pomocí přepínače DIL. Rezistory: 0,1 ohm až 100 Mohm, přesnost 5 % (nižší na koncích rozsahu). Kondenzátory: 5 pF až 5 mF, přesnost 10 %. Metoda měření kondenzátorů využívá logaritmickou regresi křivek nabíjení a vybíjení kondenzátoru.

141-PF - emulátor kalkulačky s procesorem Intel 4004.

Testovací emulátory mnoha procesorů, spolu s ukázkovými aplikacemi.

Ukázková videa

Videa lze přehrávat programem VIDEO.UF2 na zařízeních PicoPad a DemoVGA. Byla vygenerována pomocí programu PicoPadVideo. Videa je nutné nahrát na SD kartu do složky /VIDEO.

Download základní sady (310 MB), sada obsahuje:

BIRDS ..... (00:44, 17 MB) Dva hašteřiví ptáčkové v kleci
CANORA .... (00:29, 11 MB) Česká středověká hudební skupina Canora
CORALS .... (05:42, 134 MB) Ryby v Egyptě mezi korály
MANDEL .... (09:05, 214 MB) Mandelbrot Fractal Deep Zoom 10^220

Download další ukázková videa (z důvodu ukončení činnosti serveru Ulozto jsou odkazy nefunkční, pouze pro ilustraci):

BUNNY ..... (04:56, 116 MB) Bugs Bunny - králičí sezóna a kachní sezóna (Anglický dabing)
CIMRMAN ... (66:09, 1556 MB) Cimrman - Dlouhý, Široký a Krátkozraký
KYARY ..... (04:18, 101 MB) Kyary Pamyu Pamyu - Ring a Bell
MINION .... (12:12, 287 MB) Minion Madness
MOLE ...... (13:01, 307 MB) Jak krtek ke kalhotkám přišel
SHREK ..... (00:59, 23 MB) Závěrečná písnička ze Shrek 1
SNOWHITE ..... (80:07, 1885 MB) Sněhurka a sedm trpaslíků (Český dabing)
TROOPERS .. (53:20 1255 MB) Troopeři


Hra Pictor

Pictor (Picopad Collector) je střílecí hra. Vznikla ve dvou verzích. Jednak pro konzoli Picopad, s rozlišením grafiky 320x240 pixelů, a jednak jako Windows aplikace, s vyšším rozlišením grafiky 960x720 pixelů a s vyšší kvalitou zvuku. Hra obsahuje 12 pozadí (pro 12 scén), 13 aktorů, 36 nepřátel a 12 hudebních smyček. Hra je k dispozici spolu se zdrojovými kódy jako Open Source a je možné ji, nebo její části, používat k libovolným účelům. Zdrojové kódy Windows verze hry je možné překládat pomocí MS VC++ 2005.

Pictor pro Windows a Pictor pro Picopad:

Download Pictor pro Windows (45 MB)

Download Pictor pro Windows, spolu se zdrojovým kódem (90 MB)

Pictor na Github, Windows verze: https://github.com/Panda381/Pictor

Pictor na Github, verze pro konzoli Picopad: https://github.com/Panda381/PicoLibSDK/tree/main/PicoPad/GAME/PICTOR

Pictor UF2 pro Picopad: https://github.com/Panda381/PicoLibSDK/tree/main/!PicoPad10/GAME

Game Boy Emulator

Emulátor her pro Game Boy Mono a Game Boy Color pro Picopad. Bylo otestováno a připraveno 573 her ve spustitelném tvaru UF2, z toho 271 her je pro Game Boy Mono a 302 her je pro Game Boy Color. Všechny hry pro Game Boy Mono jsou kolorizované. Úspěšnost emulace je 80%. 15% původních her je nefunkčních (nejsou součástí balíku) a 5% her je sice funkčních, ale mají estetické vady grafiky (např. roztřesený úvodní obrázek). Tlačítka X=START, Y=SELECT. Kombinace Y+Nahoru vyvolá herní menu (uložení hry).

Z důvodu autorských práv nelze poskytnout hry ke stažení. Vlastníte-li legální kopii hry ve formátu souborů *.GB nebo *.GBC, můžete k emulaci na Picopad použít některou z následujících možností:

Download zdrojového kódu emulátoru

Download obsahu SD karty - pouze data (texty a obrázky) bez spustitelných souborů

Seznam her TXT (krátké DOS jméno a plné jméno hry)

Náhledy her: 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 - 21 - 22 - 23 - 24 - Vše (24 stránek) - Vše (PNG soubory)

 

Časování floating-point funkcí RP2040 (Pico1) a RP2350 (Pico2)

V následujících tabulkách jsou uvedeny naměřené průměrné časy floating-point funkcí SDK knihovny pro procesory RP2040 (Pico1) a RP2350 (Pico2). Byly testovány jak režimy se standardní libc knihovnou, tak i optimalizované verze. Tučným písmem jsou označeny typické konfigurace s maximální akcelerací.

Tabulka v HTM formátu

Tabulka v PDF formátu

Download tabulek spolu se zdrojovým kódem testů

Stručný přehled - střední časy funkcí v [ns]:

Rychlejší výpočet funkce sinf() pro RP2350 v RISC-V módu: sdk_float_riscv_sci.S

Rychlejší výpočet funkce fdiv() pro RP2350 v RISC-V módu: sdk_float_riscv.S

 

Historie verzí

Miroslav Němeček

<< Zpět