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

Re: [SharpMZ] OT: Sháním nadšence s trochou volného času pro pomoc s debugem z80 softwaru. Není to Sharp

Jakub Ladman <ladmanj@[doména skryta]> SHARP MZ-800

Ahoj Michale

Díky ta odpověď

Z80 je ve fpga. Volného místa je tak odhadem na ještě jednu z80, čili docela dost.

Čili začít bych měl nějakým rozhraním mezi pc a dedikovaným hw ve fpga. Pro zastavování a očuchávání stavu cpu.

 Máte někdo představu co jsou minimální požadavky na takovou komunikaci? Něco mi říká, že by mohl stačit obousměrný přenos obsahu registrů a zastavování hodin. 

Zkusím se podívat na to, jestli se nějak uživatelsky na to dá použít jtag hardware, protože ten už do pc je propojený (přes ftdi).

J.

Dne 9. 1. 2019 10:27 dopoledne napsal uživatel Michal Hučík - ORDOZ <ordoz[doména skryta]>:

Ahoj Jakube,

co se tyka OT tematu, tak mi osobne tady nevadi. Nejen, ze v Sharpich tematech je zde uz pomerne zanedbatelny provoz, ale i proto, ze se ta tva temata v mnohem stykaji s ruznymi Sharp emulatory - jak PC, tak FPGA... O cp/m 3, ani nemluve...

Temat je v jednom mailu hned nekolik, tak se je pokusim udrzet:

1) Znasilneni meho emu na to, aby emuloval nejaky jiny HW by zrejme dalo docela dost prace - hlavne proto, ze se cely emulator Sharpa podrizuje tomu, aby byl co nejvice synchronni s procesy, ktere probihaji v GDG a v i8253 ... Kdybych videl trochu vic alespon do blokoveho schematu Tveho pocitace, tak bych to mozna dokazal posoudit presneji.

Trochu odskocim: co se tyka debuggeru, tak mam v planu jej nekdy v budoucnu uplne oddelit od emulatoru tak, aby spolu mohli komunikovat napr. pres TCP/IP, ci jakykoliv jiny system, ve kterem by si emulator a debugger posilali zpravy pomoci packetu. Ale tezko rict, jestli se k tomu dostanu vyhledove drive, nez za 5 let...

2) Co si pamatuju ze svych nekdejsich experimentu s FPGA, tak tam je zpravidla nejaka moznost implementovat si do modelu ruzne sondy a kolektory, nicmene to je asi dobre predevsim na trigrovani a na zkoumani toho, zda funguje spravne ten namodelovany HW. Ja jsem experimentoval s Xilinxem a mam pocit, ze ten analyzacni SW neumoznoval oboustrannou komunikaci a ani zadnou lepsi vizualizaci tech nasbiranych dat - proste jen zakladni logicky analyzer/osciloskop.

3) Z  popisu jsem nepochopil, zda mas ve sve aplikaci skutecny Z80, nebo zda jej emulujes. Budu predpokladat, ze emulovany, coz je ta jednodussi varianta.  Ted budu psat mozna trochu naivne z cesty, protoze nemam uplne jasnou predstavu o tom, jak tvuj HW vypada, kolik mas volneho mista v FPGA, jake mas moznosti komunikace s PC a co vsechno si dokazes na PC naprogramovat. Budu spise popisovat jak bych si predstavoval HW debugger, ktery bych implementoval do sveho nekdejsiho (dnes uz asi nespustitelneho) FPGA emulatoru Sharpa.

Potrebujeme vytvorit FPGA modul HW debuggeru, ktery bude mit nekolik funkci:

- prvni z nich je nejaka obousmerna komunikace s nasim PC programem. Potrebujeme napr., aby PC dokazalo cekat na zpravu, ze byl aplikovan breakpoint a aplikace ceka na dalsi prikaz z PC. PC posle dotaz na stav registru, dotaz na obsah kusu pameti, nastaveni dalsiho breakpointu, step, run, atp.

- nasleduje naimplementace synchronniho WAITu, kterym muzeme cele zarizeni krokovat. Tento WAIT system by mel mit moznost napr. online cist Z80.regPC a Z80.M1, aby se pres nej daly naimplementovat breakpointy. Pripadne by mel mit pristup k dalsim systemovym signalum, pokud by se podle nich melo breakpointovat.

- posledni moduly slouzi k precteni Z80 registru a bloku pameti (lze to rozsirit i o zapis, ale to muze byt uz trochu komplikovanejsi)

Ja vim, ze jsem vlastne nic svetoborneho neporadil, ale z toho co pises jsem mel pocit, ze nevis odkud zacit, tak tohle zpusob, jak bych se v tom asi zacal topit ja :)

Michal


Dne 8.1.2019 v 22:13 Jakub Ladman napsal(a):
Tak tedy opět do konference, nevím jak moc vám to vadí, kdyžtak mě někdo okřikněte.

Já si taky dovedu představit, že bych v pc kusem C kódu a úložištěm v souboru emuloval svoje paměti S25FL116K a spi kontrolér který je ve fpga, ale nevím jak to napojit na dobře debugovatelný emulátor. Když bych po pár dnech nastudoval, jak to připojit k YAZE-AG, který normálně používám na pc k buildění systému pro svůj HW, tak tam by mi zase chyběla možnost kvalitního viditelného krokování. Čili cca dva týdny bych jen připravoval emulaci a použitelnost by pak byla s velkým otazníkem. Napojení na emulátor typu toho od Michala Hučíka, kde je důstojné krokování se zobrazením registrů a paměti v libovolném, nebo téměř libovolném okamžiku by asi bylo výrazně užitečnější, ale o to méně tuším jak bych tam tu emulaci hw dobastlil.

Teď debuguju tak, že používám Reveal Inserter/Analyzer, což je v prostředí pro fpga firmy Lattice logický analyzátor vložený přímo do fpga, kde mám tak akorát paměti pro nasbírání 4096 vzorků, kde vzorek je jeden přístup do paměti, a přístup na io zabere dva až tři vzorky. Vzorkování začne tím, že do kódu vložím zápis na specifický port, který logický analyzátor vyhodnotí jako trigger.

Tím tak dokážu vyhodnotit, že moje rutiny pro přístup na hw docela dobře fungují, ale co se pak děje uprostřed BDOSu je trasovatelné jen obtížně a to přesto, že mám plné originální zdrojáky. Vypadá to tak, že na jeden několika-milisekundový záznam analyzátoru, několik hodin trasuju binární hexadecimální výpis co cpu čte a zapisuje do ram a na io porty na zdrojáky v asm, přičemž obsah registrů a flagů si jen domýšlím podle toho kam bylo řízení programu předáno.

Kdybyste někdo měl nějakou vymyšlenou cestu, jak si třeba pomocí RST38 zastavovat program a jeho dloooooouhý běh ukládat přes sériovku někam k vyhodnocení, abych tam neměl 0.001% běhu od resetu po zbloudění, ale celých 100%, to by třeba pomohlo, akorát se to musí umět vyrovnat se stránkováním paměti (které mám ovšem pod kontrolou, protože na registry hw, co fyzicky stránky přepíná přistupuje jen můj kód a navíc můžu v hw udělat fígl, že si instrukce RST38, nebo i jiná, sama přepne stránku a RET ji pak přepne zpět), nebo něco takového.

Potřebuju nápad, který se zakládá na nějaké pozitivní zkušenosti.

Díky

Jakub

Dne 08. 01. 19 v 18:51 Hynek Sladký napsal(a):
Zdravim,

kdysi jsem si 'hral' s CP/M na eZ80 - nebyl to port CP/M, ale prepsany system do C se souborovym systemem FAT na SD karte. Pro ladeni jsem si napsal simulator na PC, jadro systemu jsem pouzil stejne, souborovy system pak pristupoval na disk PC.
Pro cteni/zapis jsem tam mel pole 512B sektoru v RAM. Protoze eZ80 i PC ma dostatek pameti, nebyl s tim zadny problem. Tato pamet byla mimo beznou aplikacni pamet 64KB CP/M.
Zkousel jsem neco podobneho zprovoznit na Z180, ale tam jsem zatim nebyl uplne uspesny, hlavne kvuli slozitemu hlidani strankovani.

Hynek

Dne 8.1.2019 v 18:01 Jakub Ladman napsal(a):
Ahoj

Tonoucí se stébla chytá.

Již několik zim se vracím ke svému projektu - jedná se o port CP/M 3 na můj vlastní hardware (s ničím nekompatibilní, respektive kompatibilní s tím, co se mi zachce). HW je z větší části v FPGA, takže když se mi něco zdá neelegantní řešit v sw, modifikuji hw v programovatelném poli.

Co potřebuju?

Dobrovolníka, který mi nabídne, že když mu napíšu svoje stesky co se mi zrovna nedaří (debug cp/m biosu na hw, nemožnost debugu v emu, případně nalezení cesty k němu), že si je přečte a zkusí se zamyslet, co bych měl dělat lépe nebo jinak. Možná nejdůležitější bude to, že mě vyslechne a že budu muset někomu popsat, kde jsem a tím si sám něco uvědomím.

Jediné co mohu nabídnout na oplátku je to že jsem totéž schopen nabídnout někomu dalšímu. Taky uvažuji nad tím, že bych potom začal zprovozňovat cp/m 3  a gsx taky na sharpu.

Díky

Jakub

PS: mám funkční verzi, která ovšem nešetrně zachází s flash pamětí a při každém zápisu 128B bloku, smaže a přepíše 4KB, čili, když systém zapisuje na disk (na té flash) 4KB dat v souvislém bloku, tak se paměť smaže a přepíše 32x. Když jsem to začal přepisovat tak jsem se dostal do stavu, kdy mi to bez zjevné příčiny nenabootuje, zabloudí v kódu během bootu. Potřebuju nápad jak na ten debug. Nechci se příliš rozepisovat tady v konferenci.

_______________________________________________
SharpMZ mailing list
SharpMZmail.ordoz.com
http://mail.ordoz.com/mailman/listinfo/sharpmz
_______________________________________________
SharpMZ mailing list
SharpMZmail.ordoz.com
http://mail.ordoz.com/mailman/listinfo/sharpmz

Zobrazit původní podobu

Vlákno · 8 zpráv

Zobrazit celé vlákno na jedné stránce

  1. [SharpMZ] OT: Sháním nadšence s trochou volného času pro pomoc s debugem z80 softwaru. Není to Sharp Jakub Ladman <ladmanj@[doména skryta]>
  2. Re: [SharpMZ] OT: Sháním nadšence s trochou volného času pro pomoc s debugem z80 softwaru. Není to Sharp Hynek Sladký <econf@[doména skryta]>
  3. Re: [SharpMZ] OT: Sháním nadšence s trochou volného času pro pomoc s debugem z80 softwaru. Není to Sharp Jakub Ladman <ladmanj@[doména skryta]>
  4. Re: [SharpMZ] OT: Sháním nadšence s trochou volného času pro pomoc s debugem z80 softwaru. Není to Sharp Michal Hučík - ORDOZ <ordoz@[doména skryta]>
  5. Re: [SharpMZ] OT: Sháním nadšence s trochou volného času pro pomoc s debugem z80 softwaru. Není to Sharp Jakub Ladman <ladmanj@[doména skryta]>
  6. Re: [SharpMZ] OT: Sháním nadšence s trochou volného času pro pomoc s debugem z80 softwaru. Není to Sharp Michal Hučík - ORDOZ <ordoz@[doména skryta]>
  7. Re: [SharpMZ] OT: Sháním nadšence s trochou volného času pro pomoc s debugem z80 softwaru. Není to Sharp Michal Hučík - ORDOZ <ordoz@[doména skryta]>
  8. Re: [SharpMZ] OT: Sháním nadšence s trochou volného času pro pomoc s debugem z80 softwaru. Není to Sharp Jakub Ladman <ladmanj@[doména skryta]>