====== USARTShell ====== ---- ===== Funkce miniUSB konektoru ===== |< 100% >| || @red: | Další komunikační rozhraní je USARTShell, který slouží ke komunikaci s Unicard pomocí sériové linky RS-232 emulované přes miniUSB konektor. Komunikační kanál využívající miniUSB konektor je schopný pracovat ve dvou režimech: * USARTShell * emulace SIO kanálu B sériové rozšiřující karty pro počítač SHARP (např. SHARP MZ-1E24) Nastavení režimu komunikace se řídí pomocí dalšího rozhraní [[unicard:z15mzfrepo]] nebo jedním z CFG souborů. Přesný popis CFG souborů včetně toho pro nastavení režimu práce miniUSB konektoru je zde [[unicard:emulation]]. ---- ===== Instalace ovladačů ===== |< 100% >| || @red: | Nejdříve stáhneme a nainstalujeme ovladač virtuálního portu STM32 Virtual COM port driver verze 1.3.1. Podle typu operačního systému spustíme buď **VCP_V1.3.1_Setup.exe** nebo **VCP_V1.3.1_Setup_x64.exe**. * [{{unicard:uus:unicarduus_com1.jpg|//STMicroelectronics Virtual COM Port (COM11)//\\ \\ Po správné instalaci ovladačů by se Vám ve správci zařízení měl objevit virtuální COM port. Číslo portu se samozřejmě může na různých počítačích lišit.}}] * [{{unicard:uus:unicarduus_com2.jpg|//Vyvolání nabídky s volbou "Vlastnosti"//\\ \\ Pokud máme správně nainstalovaný virtuální COM port, musíme ještě nastavit komunikační parametry. Stiskem pravého tlačítka myši na řádku s virtuálním COM portem vyvoláme nabídku a vybereme volbu "Vlastnosti".}}] * [{{unicard:uus:unicarduus_com3.jpg|//Nastavení parametrů virtuálního COM portu//\\ \\ Zde nastavíme komunikační parametry 115200, 8, N, 1, řízení toku je pro začátek lepší nastavit na žádné, při správné funkci ho můžeme nastavit na hardwarové.}}] === Upozornění === //Poslední verze ovladačů nefunguje. Pro správnou funkci je proto nezbytné nainstalovat starší verzi ovladačů **1.3.1**// ---- ===== UniUSARTShell ===== |< 100% >| || @red: | Pro komunikaci s rozhraním USARTShell slouží program UniUSARTShell spouštěný z příkazového řádku. Pokud spustíme program bez parametrů, vypíše nápovědu - seznam všech dostupných příkazů pro komunikaci s USARTShellem. c:\>UniUSARTShell Unicard USART shell PC build 2018-08-04.21 Usage: UniUSARTshell [] [] Available commands are: date, remount, filelist, readdir, mkdir, unlink, open, new, read, boot, state, laninfo, rev, gdg. c:\> Jako **** je třeba zadat výše uvedeným způsobem nainstalovaný virtuální COM port (např. COM11). Podporované příkazy **** jsou: * //**date, remount, filelist, readdir, mkdir, unlink, open, new, read, boot, state, laninfo, rev, gdg**// \\ {{:unicard:uus:uniusartshell.zip|UniUSARTShell}} ---- ==== Příkazy bez parametrů: ==== === BOOT === Provede reset počítače. c:\>UniUSARTShell COM11 boot Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending BOOT... BOOT c:\> ---- === REV === Zobrazí MZ_ID, verzi a subverzi aktuálního firmware, jak jsou uvedené v hlavičce firmware viz. kapitola [[unicard:firmware#popis_struktury_hlavicky|Popis hlavičky firmware]]. MZ-800 c:\>UniUSARTShell COM11 rev Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending REV... REV OK:REV MZ800 v0.18 c:\> MZ-1500 c:\>UniUSARTShell COM11 rev Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending REV... REV OK:REV MZ1500 v0.18 c:\> ---- === GDG === Zobrazí obsah display mode registru. MZ-800 c:\>UniUSARTShell COM11 gdg Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending GDG... GDG OK:GDG MZ_mode=1, MZ_graphic_mode=6 c:\> MZ-800 v módu MZ-700 c:\>UniUSARTShell COM11 gdg Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending GDG... GDG OK:GDG MZ_mode=0, MZ_graphic_mode=8 c:\> MZ-1500 c:\>UniUSARTShell COM11 gdg Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending GDG... GDG OK:GDG MZ_mode=0, MZ_graphic_mode=8 c:\> ---- === STATE === První číslo udává zachycená data z adresové sběrnice - v příkladu (002C), druhé číslo data z datové sběrnice (3A). IN a OUT jsou obrazy interních registrů ARM procesoru v Unicard. MZ-800 c:\>UniUSARTShell COM11 state Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending STATE... STATE OK:STATE (002C)=3A, IN=FA, OUT=0D c:\> MZ-1500 c:\>UniUSARTShell COM11 state Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending STATE... STATE OK:STATE (332A)=3A, IN=52, OUT=0D c:\> ---- === LANINFO === Vypíše informace o aktuálním nastavení parametrů pro konfiguraci sítě. bez připojeného kabelu c:\>UniUSARTShell COM11 laninfo Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending LANINFO... LANINFO KSZ8031: OK PHY_ID: 00221560 LINK: DOWN HWADDR: 00-1C-EE-1A-04-6F IPCFG: STATIC IPADDR: 192.168.1.111 NETMASK: 255.255.255.0 GATEWAY: 192.168.1.20 OK:LANINFO_DONE c:\> s připojeným kabelem c:\>UniUSARTShell COM11 laninfo Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending LANINFO... LANINFO KSZ8031: OK PHY_ID: 00221560 LINK: UP HWADDR: 00-1C-EE-1A-04-6F IPCFG: STATIC IPADDR: 192.168.1.111 NETMASK: 255.255.255.0 GATEWAY: 192.168.1.20 OK:LANINFO_DONE c:\> ---- ==== Příkazy s jedním parametrem: ==== === MKDIR === Vytvoří adresář //// a zobrazí výsledek operace: * **//OK:MKDIR //** adresář byl vytvořen * **//ERR:MKDIR //** adresář se nepodařilo vytvořit (např. pokud již existuje) neexistující adresář jako parametr c:\>UniUSARTShell COM11 mkdir \unicard\TESTMKDIR Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending MKDIR... MKDIR \unicard\TESTMKDIR OK:MKDIR \unicard\TESTMKDIR c:\> existující adresář jako parametr c:\>UniUSARTShell COM11 mkdir \unicard\TESTMKDIR Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending MKDIR... MKDIR \unicard\TESTMKDIR ERR:MKDIR \unicard\TESTMKDIR c:\> * [{{:unicard:uus:unicarduus_mkdir1.jpg|Před vytvořením adresáře //TESTMKDIR//}}] * [{{:unicard:uus:unicarduus_mkdir2.jpg|Po vytvoření adresáře //TESTMKDIR//}}] === UNLINK === Smaže soubor nebo adresář //// a zobrazí výsledek operace: * **//OK:UNLINK //** soubor nebo adresář byl smazán * **//ERR:UNLINK //** soubor nebo adresář se nepodařilo smazat (např. pokud adresář nebo soubor neexistuje) existující adresář jako parametr c:\>UniUSARTShell COM11 unlink /unicard/TESTMKDIR Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending UNLINK... UNLINK /unicard/TESTMKDIR OK:UNLINK /unicard/TESTMKDIR c:\> neexistující adresář jako parametr c:\>UniUSARTShell COM11 unlink /unicard/TESTMKDIR Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending UNLINK... UNLINK /unicard/TESTMKDIR ERR:UNLINK /unicard/TESTMKDIR c:\> * [{{:unicard:uus:unicarduus_mkdir2.jpg|Před smazáním adresáře //TESTMKDIR//}}] * [{{:unicard:uus:unicarduus_mkdir1.jpg|Po smazání adresáře //TESTMKDIR//}}] === REMOUNT <0..3 >=== Odpojí příslušnou FD<0..3> ([A]:..[D]:) mechaniku a zavolá remount, který se provede standardně podle obsahu CFG souboru ///unicard/fd<0..3>.cfg//. pokus o //REMOUNT// FD0 ([A]:) mechaniky bez konfiguračního souboru fd0.cfg c:\>UniUSARTShell COM11 remount 0 Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending REMOUNT... REMOUNT 0 ERR:REMOUNT 0 c:\> nakopírování konfiguračního souboru fd0.cfg s odkazem na obraz diskety //Lemmings.dsk// na Unicard do adresáře //\unicard\// c:\>UniUSARTShell COM11 new fd0.cfg \unicard\fd0.cfg Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending New... NEW \unicard\fd0.cfg OK:NEW \unicard\fd0.cfg Sending FSIZE: 0x0000000e OK:SIZE 0x0000000e Sending Data. OK:CLOSE 0xd2b7a6fb ************************* * Size: 14 B * * Time: 0.10 s * * Speed: 137.25 Bps * ************************* c:\> //REMOUNT// FD0 ([A]:) mechaniky na základě nového konfiguračního souboru fd0.cfg c:\>UniUSARTShell COM11 remount 0 Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending REMOUNT... REMOUNT 0 OK:REMOUNT 0 c:\> * [{{:unicard:uus:unicarduus_remount1.jpg|//Na Unicard není konfigurační soubor a FD0 ([A]:) mechanika není připojená.//}}] * [{{:unicard:uus:unicarduus_remount2.jpg|//Po nahrání konfiguračního souboru fd0.cfg do adresáře **\unicard\** na Unicard a provedení příkazu **REMOUNT** dojde k připojení mechaniky FD0 ([A]:) Lemmings.dsk//}}] ==== Příkazy s dvěma parametry: ==== === READ === Přenese soubor //// (název souboru může obsahovat cestu) z SD karty v Unicard na PC do souboru (název souboru může obsahovat cestu). Otevře soubor na SD kartě pro čtení, pošle v binárním tvaru jako DWORD jeho velikost a za velikostí obsah souboru a výsledek operace: * **//OK:CLOSE 0x????????//** úspěšné přenesení a uzavření souboru se zobrazením kontrolního součtu CRC32 * **//ERR:READ //** při čtení souboru došlo k chybě načtení souboru c:\>UniUSARTShell COM11 read \unicard\mzfloader.cfg mzfloader.cfg Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending Read... READ \unicard\mzfloader.cfg OK:READ \unicard\mzfloader.cfg Receiving FSIZE: 0x00000015 Receiving Data OK:CLOSE 0x0311000b ************************* * Size: 21 B * * Time: 0.00 s * * Speed: 1.#J Bps * ************************* c:\> chyba při čtení souboru c:\>UniUSARTShell COM11 read qd.cfg qd.cfg Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending Read... READ qd.cfg Error USARTshell->READ: ERR:READ qd.cfg c:\> ---- === NEW === Přenese soubor //// (názvy souborů mohou obsahovat cestu) z PC na SD kartu v Unicard //// - po úspěšném otevření nového souboru pro zápis //// přejde vstup USARTShellu do binárního režimu, ve kterém očekává jako DWORD velikost souboru a za velikostí jeho obsah. Po ukončení činnosti oznámí výsledek operace: * //**OK:NEW **// soubor byl úspěšně přenesen * //**ERR:WRITE**// při zápisu došlo k chybě * //**ERR:DATA_TIMEOUT**// déle než 2 sekundy nepřišla žádná data, Unicard soubor uzavře a přejde zpět do příkazového režimu * //**ERR:NEW **// soubor již existuje \\ Příkaz //**NEW**// lze použít pouze pro založení nového souboru, v případe pokusu o přepsání již existujícího souboru zahlásí chybu. soubor byl úspěšně přenesen c:\>UniUSARTShell COM11 new Flappy_A.mzq Flappy_A.mzq Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending New... NEW Flappy_A.mzq OK:NEW Flappy_A.mzq Sending FSIZE: 0x0000f01f OK:SIZE 0x0000f01f Sending Data.................................................................... ..................................................... OK:CLOSE 0xc7138ef3 ************************* * Size: 61471 B * * Time: 12.33 s * * Speed: 4987.10 Bps * ************************* c:\> pokus o přepsání již existujícího souboru c:\>UniUSARTShell COM11 new unicard800.app unicard.app Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending New... NEW unicard.app Error USARTshell->OPEN/NEW: ERR:NEW unicard.app c:\> pokus o přenos neexistujícího souboru c:\>UniUSARTShell COM11 new CosmicCruiser3.mzt CosmicCruiser3.mzt Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Could not open src file: No such file or directory c:\> * [{{:unicard:uus:unicarduus_new1.jpg|//Před nakopírováním nového souboru mgr1500.mzf//}}] * [{{:unicard:uus:unicarduus_new2.jpg|//Po nakopírování nového souboru mgr1500.mzf//}}] === OPEN === Příkaz funguje stejně, jako příkaz //NEW// s tím rozdílem, že přenese soubor i pokud cílový soubor existuje a přepíše jeho obsah. Po ukončení činnosti oznámí výsledek operace: * //**OK:OPEN **// soubor byl úspěšně přenesen * //**ERR:WRITE**// při zápisu došlo k chybě * //**ERR:DATA_TIMEOUT**// déle než 2 sekundy nepřišla žádná data, Unicard soubor uzavře a přejde zpět do příkazového režimu c:\>UniUSARTShell COM11 open mgr1500.mzf \unicard\mgr1500.mzf Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending Open... OPEN \unicard\mgr1500.mzf OK:OPEN \unicard\mgr1500.mzf Sending FSIZE: 0x00001be2 OK:SIZE 0x00001be2 Sending Data.............. OK:CLOSE 0xb682acd8 ************************* * Size: 7138 B * * Time: 1.45 s * * Speed: 4936.38 Bps * ************************* c:\> * [{{:unicard:uus:unicarduus_open1.jpg|//Před přepsáním souboru unicard.app s velikostí 190720b souborem se stejným názvem a velkostí 198988b//}}] * [{{:unicard:uus:unicarduus_open2.jpg|//Po přepsání souboru unicard.app s velikostí 190720b souborem se stejným názvem a velkostí 198988b//}}] ==== Příkazy s proměnným počtem parametrů: ==== === FILELIST (volitelně ) === Vypíše obsah adresáře ////, pokud je spuštěný bez parametru , dosadí si za něj "\" (root SD karty) a zobrazí výsledek operace: * //**OK:FILELIST **// adresář byl úspěšně otevřen, následuje seznam souborů a na konci seznamu souborů //**OK:FILELIST_DONE**// * //**ERR:FILELIST **// adresář se nepodařilo otevřít (např. pokud adresář neexistuje) * //**ERR:READDIR**// při načítání jednotlivých položek adresáře došlo k chybě bez parametru c:\>UniUSARTShell COM11 filelist Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending FILELIST... FILELIST \ OK:FILELIST \ TESTMKDIR/ unicard/ mgr800.mzf 8462 unicard.app 190720 OK:FILELIST_DONE c:\> existující adresář jako parametr c:\>UniUSARTShell COM11 filelist \unicard Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending FILELIST... FILELIST \unicard OK:FILELIST \unicard mzfloader.cfg 21 QDisk-BASIC800.mzq 61471 mgr800.mzf 8462 ramdisc_sromloader.mzr 1048576 ramdisc1.mzr 1048576 mzfloader1.mzq 52868 qd.cfg 31 ramdisc.cfg 21 network.cfg 41 mz1r23.rom 131072 mz1r24.rom 262144 READDIRTEST1/ READDIRTEST2/ READDIRTEST3/ OK:FILELIST_DONE c:\> neexistující adresář jako parametr c:\>UniUSARTShell COM11 filelist wrongdir Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending FILELIST... FILELIST wrongdir Error USARTshell->FILELIST: ERR:FILELIST wrongdir c:\> bez parametru (root) s chybou čtení c:\>UniUSARTShell COM11 filelist Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending FILELIST... FILELIST \ OK:FILELIST \ TESTMKDIR/ Error USARTshell->FILELIST1: ERR:READDIR c:\> ---- === READDIR (volitelně ) === Vypíše obsah adresáře //// v rozšířeném formátu. Pokud je spuštěný bez parametru , dosadí si za něj "\" (root SD karty) a zobrazí výsledek operace: * //**OK:READDIR **// adresář byl úspěšně otevřen, následuje seznam souborů a na konci seznamu souborů //**OK:READDIR_DONE**// * //**ERR:READDIR **// adresář se nepodařilo otevřít (např. pokud adresář neexistuje) * //**ERR:READDIR**// při načítání jednotlivých položek adresáře došlo k chybě bez parametru c:\>UniUSARTShell COM11 readdir Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending READDIR... READDIR \ OK:READDIR \ [DIR] TESTMKDIR 01-01-2017 00:00:00 [DIR] unicard 11-13-2017 21:28:26 [ARC] mgr800.mzf 8.26 kB 11-02-2018 12:42:38 [ARC] unicard.app 122.25 kB 29-15-2017 22:11:08 OK:READDIR_DONE c:\> existující adresář jako parametr c:\>UniUSARTShell COM11 readdir \unicard Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending READDIR... READDIR \unicard OK:READDIR \unicard [ARC] mzfloader.cfg 21 B 11-13-2017 21:30:10 [ARC] QDisk-BASIC800.mzq 4096.00 MB 04-01-2018 17:01:02 [ARC] mgr800.mzf 8.26 kB 11-02-2018 13:42:38 [ARC] ramdisc_sromloader.mzr 1.00 MB 27-08-2017 00:58:28 [ARC] ramdisc1.mzr 1.00 MB 27-08-2017 00:58:28 [ARC] mzfloader1.mzq 4095.99 MB 24-14-2016 23:39:16 [ARC] qd.cfg 31 B 13-13-2017 10:09:26 [ARC] ramdisc.cfg 21 B 13-13-2017 10:10:02 [ARC] network.cfg 41 B 18-15-2017 22:19:22 [ARC] mz1r23.rom 128.00 kB 30-04-2014 15:36:34 [ARC] mz1r24.rom 256.00 kB 09-02-2003 15:26:56 [DIR] READDIRTEST1 01-01-2017 00:00:00 [DIR] READDIRTEST2 01-01-2017 00:00:00 [DIR] READDIRTEST3 01-01-2017 00:00:00 OK:READDIR_DONE c:\> neexistující adresář jako parametr c:\>UniUSARTShell COM11 readdir wrongdir Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending READDIR... READDIR wrongdir Error USARTshell->READDIR: ERR:READDIR wrongdir c:\> bez parametru (root) s chybou čtení c:\>UniUSARTShell COM11 readdir Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending READDIR... READDIR \ OK:READDIR \ [DIR] TESTMKDIR 01-01-2017 00:00:00 Error USARTshell->FILELIST1: ERR:READDIR c:\> ---- === DATE (volitelně ) === Pokud se spustí bez parametru, vypíše aktuální datum a čas nastavený v Unicard. Při spuštění s parametrem ve tvaru **////** nastaví v Unicard datum a čas na uvedené hodnoty. Při zadání parametru v nesprávném tvaru se vypíše chyba se zobrazením správného formátu parametru. bez parametru c:\>UniUSARTShell COM11 date Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending DATE... DATE OK:DATE 2018-08-03 13:48:51 c:\> správný tvar parametru c:\>UniUSARTShell COM11 date 2018-08-03 13:47:00 Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Sending DATE... DATE 2018-08-03 13:47:00 OK:DATE 2018-08-03 13:47:00 c:\> chybný tvar parametru c:\>UniUSARTShell COM11 date wrongdate Unicard USART shell PC build 2018-07-22.20 Sending Reset... OK:RESET Error, usage: USARTshell date USARTshell date YYYY-MM-DD HH:MM:SS c:\>