Hlavní navigace

Názor k článku Operace s framebufferem na Raspberry Pi (vykreslování do framebufferu) od ogar - Zrovna nedavno se mi dostal do ruky jeden...

  • Článek je starý, nové názory již nelze přidávat.
  • 30. 1. 2016 11:51

    ogar (neregistrovaný) ---.net.upcbroadband.cz

    Zrovna nedavno se mi dostal do ruky jeden platebni terminal postaveny na linuxu (SoC Maxim, puvodne Zilog Zatara) s barevnym display (320x240x16b).

    Bohuzel, tento display je pripojeny pres SPI a implementace framebufferu je plne software, tj. framebuffer je pouze a jenom v systemove pameti a pouze pri kazdem ioclt(FB_REFRESH) se pres SPI prenese celych 150kb na display.
    Celkove to vychazi maximalne tak na 15fps.
    Navic, tento framebuffer podporuje pouze tento jeden specificky mod 320x240x16b (coz je ale celkem logicke :-), kazdy pokus o nastaveni jakehokoliv jineho konci s chybou.

    Sranda je, ze terminal nema ani klavesnici (je urcen pouze jako contactless a pro male castky, tedy vzdy bez overovani uzivatele) a tudiz ani zadnou systemovou konzolu, pouze seriovy port (USB CDC) a ethernet.

    Puvodni pokusy o port Chocolate Doomu dopadly spatne: SDL ani DirectFB nejdou pouzit, jelikoz:
    1) predpokladaji fyzickou konzoli a ctou z ni
    2) snazi se menit rozliseni a hloubku displayi ...

    Takze nakonec byl resenim specialni SDL home-made driver pro tento terminal, kde
    a) z stdin (seriova konzole, telnet) ctu klavesy a simuluju stisky a pousteni (bud timeout nebo stik jine klavesy)
    b) simuluju i vetsi/mensi rozliseni a orezavam/centruju do 320x240 (vracim vzdy SDL_FULLSCREEN | SDL_NOFRAME)
    c) simuluju i jinou bitovou hloubku (ale vracim vzdy SDL_HWPALETTE) a sam prepocitvam pixely do pozadovaneho 565 formatu

    Kupodivu, vysledny produkt je i celkem hratelny :-)