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

Jakub Ladman ladmanj na volny.cz
Úterý Leden 8 22:13:40 CET 2019


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
> SharpMZ na mail.ordoz.com
> http://mail.ordoz.com/mailman/listinfo/sharpmz


Další informace o konferenci SharpMZ