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 <<<
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:
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ů.
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)
PicoLibSDK na Github: https://github.com/Panda381/PicoLibSDK
Video se slide-show přehrávačem pro porovnání videomódů PicoLibSDK
Obsah SD karty pro desku DemoVGA
Obsah SD karty pro PicoinoMini
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
Cílová zařízení
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 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:
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:
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 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 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.
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.
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
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
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í:
Může být možné nalézt vaši hru v archivech připravených her na některém serveru, např. webshare nebo datoid. Hru v archivu vyhledejte podle jména uvedeného v seznamu níže. Hru spustíte nahrátím souboru *.UF2 do Picopad.
Hru můžete zkonvertovat do spustitelného tvaru *.UF2 pomocí aplikace APPS. Hru nahrajete na SD kartu a vyberete ji v seznamu her v APPS.
Hru si můžete přeložit do spustitelného tvaru *.UF2 sami. Potřebujete k tomu zdrojový kód emulátoru, knihovnu PicoLibSDK a kompilátor GCC ARM. Hru uložíte do složky "samples" a přeložíte ji pod Windows povelovým souborem "c_all_samples.bat". V systému Linux budete potřebovat nejdříve přeložit podpůrný program GBprep, připravit program příkazem s GBprep a zkompilovat pomocí c.sh.
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)
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í.
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
8. 3. 2023 prototyp PicoPad s alfa před-verzí PicoLibSDK verze 0.8.
28. 4. 2023 plná verze PicoPad s alfa verzí PicoLibSDK verze 0.90
28. 6. 2023 alfa verze PicoLibSDK v0.91, opraveno měření baterie
30. 7. 2023 verze 1.00: první oficiální uvedení
6. 8. 2023 verze 1.01: printf() tisk paměťového bloku, výstup stdio na UART a FILE, přidáno zařízení Pico a PicoinoMini, opravy a příklady USB
14. 8. 2023 verze 1.02: přidán video přehrávač, přidána deska DemoVGA, přidány kompilační skripty pro Linux
19. 8. 2023 verze 1.03: oprava rychlosti SPI SD karty, ošetření krátkých časů alarmu časovače
26.8.2023 verze 1.04: náhrada knihoven qvga/vga/qdraw/drawtft univerzálnější knihovnou minivga/draw s 4/8/15/16-bitovým výstupem a rozlišením 320x240 až 800x600. Přidán slide show přehrávač. Přidáno zařízení Picotron se 4-bitovým výstupem. Přidán BOOTSEL do boot3 loader (v menu baterie).
9.9.2023 verze 1.05: CSYNC pro VGA driver, přidána knihovna PicoVGA8, přidána knihovna VREG, nastavení hlasitosti, podsvícení a kalibrace krystalu.
3.10.2023 verze 1.06: přidáno zařízení PicoPadVGA a několik funkcí pro kreslení.
6.10.2023 verze 1.07: podpora programů v RAM, podpora ukládání a načítání Flash boot loaderu.
18.10.2023 verze 1.08: simulace keypadu pomocí klávesnice USB (USE_USBPAD, A->Ctrl, B->Alt, X->Shift, Y->Esc).
5.12.2023 verze 1.09: ADPCM komprese zvuku, interface originální SDK.
30.12.2023 verze 1.10: Intel 4004/4040 CPU emulátor, DVI (HDMI) displej, DVIVGA (HDMI s VGA) displej, selector souborů
27.01.2024 verze 1.11: zavaděč předává domovskou cestu aplikaci; emulátory CPU: I4004, I4040, I8008, I8048, I8052, I8080, I8085, I8086, I8088, I80186, I80188, M6502, M65C02, X80, Z80.
1.5.2024 verze 1.12: Spořič obrazovky v loaderu pro vypnutí během nabíjení. Jendoduchý PC DOS emulátor.
14.6.2024 verze 1.13: Game Boy Emulátor
8.10.2014 verze 2.00: podpora RP2350 Pico 2
Miroslav Němeček