Přejít na obsah
ARCHIVEKArchiv e-mailových konferencí o 8bitových počítačích Archiv Pandory 1999 až 2013

Zpět na zprávu

Celé vlákno · 4 zprávy

Unikarta FW rev.45

Michal Hučík SHARP MZ-800

Ahoj,

dalsi firmware je na svete. Vasek opravil chybku v emu_FDC a ja jsem pridal k dobru USARTshell, ktery umoznuje menit soubory na SD karte z PC pres USB.

USARTshel zna jen prikazy: 0x00, MKDIR, UNLINK, OPEN a NEW - posledni 2 prikazy slouzi k uploadnuti souboru do unikarty. Jeden prepisuje existujici soubor, druhy striktne vytvari novy a vraci chybu pokud jiz soubor existuje.

Poslanim znaku \'x00 se provede reset prikazoveho bufferu. Pri vkladani prikazu bude unikarta vracet zpet na USART znaky, ktere prijala, takze v "prikazovem rezimu" lze prikazovat  napr. z minicomu. Vykonani prikazu zaruci zaslani znaku < 0x20 a > 0x00 (tedy ENTER :)

MKDIR /blabla/bleble[ENTER]

UNLINK /pryc/s/tim/souborem/ci/adresarem[ENTER]

Po vykonani prikazu vam USARTshell odpovi bud OK:command, nebo ERR:duvod.

OPEN a NEW ovsem z nema smysl posilat z terminalu, protoze by jste z nej nedokazali obslouzit prenosovy protokol. Po vlozeni OPEN a NEW vam odpovi OK:command a prejde do binarniho rezimu ve kterem ocekava velikost souboru jako DWORD a nasledne data, ktere vsak musite davkovat po 255 bajtech, coz je velikost vstupniho bufferu. Po vlozeni 255 bajtu se buffer ulozi na SD kartu a USARTshell posle potvrzeni OK:DATA (pocet_ulozenych_bajtu). Po poslednim bajtu se samozrejme ulozi zbyvajici obsah bufferu a prijde opet potvrzeni. Nasledne se provede uzavreni souboru, coz se oznami jako OK:CLOSE a USARTshell opet prejde do prikazoveho rezimu. Na zbytek si urcite prijdete sami ;) Jeste alespon doplnim, ze komunikacni rychlost portu je potreba nastavit na 115200 a ze unikarta samozrejme umi zaroven obsluhovat Sharpa i USARTshell ;)

Napsal jsem k shellu i ovladaci prg na PC, kterym lze unikartu ovladat, ale bohuzel to umim napsat jen pro Linux. Proto vyhlasuji soutez o nejlepsiho borce, ktery dokaze prepsat tohle http://mz800ukp1.svn.sourceforge.net/viewvc/mz800ukp1/trunk/STM32fw/doc/USARTshell.c?view=markup&pathrev=45 do libovolne podoby pouzitelne ve Windows. Vysledky bude hodnotit specializovana komise v patek odpoledne ;)

Tady je priklad jak se pracuje s tim mym Linuxoovym bastlem:

[rootatreidesvm ~]# ./USARTshell /dev/ttyUSB0 open PWM_Sound.axf uloz_to_tam.axf
Sending Reset...
 OK:RESET
Sending Open...
 OPEN uloz_to_tam.axf
 OK:OPEN uloz_to_tam.axf
Sending FSIZE: 0x0000c170
 OK:SIZE 0x0000c170
Sending Data...................................................................................................................................................................................................
 OK:CLOSE
[rootatreidesvm ~]#

Michal

 

Re: Unikarta FW rev.45

Martin Lukasek SHARP MZ-800

Ahoj,

 

fw 45 slape ok, diky. Preklopil jsem ten unixovy kod pro PC. Snazil jsem se zachovat co nejvic puvodni kod, ale chtelo by to prepsat, vznikl z toho kockopes a jak to jede po jednom bajtu , tak je to pomaly jako svina ;-))) Jak bude nejaka ustalenejsi verze fw, tak bych to prepsal, zoptimalizoval a osetril chyby.

 

Kdyz uz to mas v teto fazi, nechce se Ti dopsat jeste aspon nejaky jednoduchy DIR a kopirovani souboru z Unikarty do PC?

 

Spustitelny soubor (Win32, ale jede OK i pod Win64) je na http://www.8bity.cz/files/Sharp/UniUSARTshell_exe.zip

Zdrojak je na http://www.8bity.cz/files/Sharp/UniUSARTshell_cpp.zip

A kdyby nekdo chtel mermomoci cely projekt pro VS2010, tak je na http://www.8bity.cz/files/Sharp/UniUSARTshell_VS2010_project.zip (bacha 10 MB ;-) nechal jsem to fakt cely)

 

Jinak jsem po tydnu otestoval cas v Unikarte a za tyden je Unikarta o cca 30s zpozdena, takze bych to definitivne prohlasil za OK.

 

Martin

Re: Unikarta FW rev.45

Michal Hučík SHARP MZ-800

Ahoj Martine,

to je super, dnes uz se k tomu nedostanu, ale zitra to odzkousim. 
Kompletni sadu prikazu pro praci s obsahem SD samozrejme pridam - mozna 
by jsme mohli do shellu pridat i vzdaleny remount diskety atp :)

Co se tyka USARTshellu, tak jsem jej v tuto chvili doplnil jeste o 
moznost HW rizeni toku, takze odesilaci program jiz nemusi nic davkovat 
a unikarta si sama rekne o dalsi data - je to podstatne rychlejsi, nez 
ten puvodni zpusob, ale podporovany budou samozrejme oba zpusoby prenosu.
Na strane unikarty jsem v binarnim rezimu (prenos souboru) udelal 2 
sekundovy timeout po kterem prejde unikarta opet do prikazoveho rezimu. 
Nejaky timeout chci doplnit jeste i do toho ovladaciho programu na PC.

Taky jsem pridal odlehcenou emulaci SIO. Prozatim to mam na portech 0xb0 
a 0xb1, ale vzhledem k tomu, ze ke kompletni emulaci SIO nam v unikarte 
chybi par pinu, tak to asi hodim na 0x52 a 0x53. Na status portu mam 
momentalne jen 0 a 2 bit, ktere oznamuji stav prijimaciho a odesilaciho 
bufferu. Rychlost a rizeni toku nastavuju pres API MZFREPO na CMD a DATA 
portu.

Dnes jsem k tomu napsal IPL_boot, ktery startuje programy z PC pres 
XMODEM, jenomze jednak to je neskutecne liny protokol a taky  vypocet 
CRC16 je pro Z80 docela zahul a tak ty prenosy nejsou zadna velka slava: 
port na 115200bps, prenos XMODEMem s CRC16 bezel cca 840 Bps a s 
obycejnym check summ to udelalo cca 2 750 Bps (to crc pocitam tak, ze 
tam mam pomocnou tabulku). Muj XMODEM umi jak 128 B, tak i 1024 B 
packety, ale prenosovy protokol z minicomu mi tam posila stale jen 128 B 
packet - to asi taky na rychlosti neprida.

Michal

Re: Re: Unikarta FW rev.45

Martin Lukasek SHARP MZ-800

Ahoj,

bezva, tak jak to rozsiris, jak bych to napsal poradneji. Ted z toho fakt nemam dobrej pocit, jen jsem to proste priohnul ;-)  aby to jelo.

Jediny, co jsem musel stelovat byly timeouty. Mel jsem tam docela kratky a to neslapala, protoze Unikarta ze obcas zakucka (asi pri zapisu na SD) a v te chvili to vypadavalo. Ted tam mam myslim 1 vterinu.

Nevim jestli ty 2 vteriny na prechod do prikazovyho rezimu nejsou malo, ale za normalnich okolonosti by to melo byt uplne v pohode.

Moc jsem to nestudoval. Co chybi na kompletni emulaci SIO?

Taky uz jsem se Z80 parkrat narazil pri relativne "trivialnich" operacich, ale XMODEM by mel docela slapat. Pouzivam ho na N8VEM a chodi urcite rychleji. Vyzkousim a dam vedet. Akorat asi az pristi vikend, protoze budu par dni pryc.

Martin