200850. lajstromszámú szabadalom • Kapcsolási elrendezés egyprocesszoros in-circuit emulátorok kialakítására
HU 200850 B A találmány kapcsolási elrendezés egyprocesszoros in-circuit emulátorok kialakítására. In-circuit emulátorokon olyan fejlesztő egységeket értünk, amelyek képesek a fejlesztendő készülék még meg nem lévő, vagy működésében letiltott funkcionális elemeinek (CPU, memória, I/O egységek) helyettesítésére (emulálására) oly módon, hogy a fejlesztő számára a fejlesztendő készülék megfigyelhetővé válik, így lehetőség nyílik a fokozatos rendszerépítés és az ellenőrzött programfuttatás módszerének alkalmazására a fejlesztés során. A fejlesztő és a fejlesztendő készülék fizikai összekapcsolása in-circuit emulátorok esetén a fejlesztendő készülék processzorénak foglalatán keresztül történik. Alapvető követelmény, hogy a fejlesztendő készülék funkcionálisan ugyanúgy működjön az emulátorral összekapcsolva, mint a végleges kiépítésben a saját processzoréval. Egyprocesszoros in-circuit emulátornak nevezzük azokat az emulátorokat, amelyekben a fejlesztő készülék saját processzoraként és az emuláló processzorként is ugyanaz a processzor működik, tehát ugyanannak a processzornak két üzemmódja van. Az egyik módban a felhasználóval való kapcsolattartást végző programok, a másik módban pedig a fejlesztett rendszer programja fut ugyanazon a mikroprocesszoron. Nyilvánvaló, hogy az ilyen egyprocesszoros in-circuit emulátorral csak olyan rendszer fejleszthető, amelynek processzortípusa megegyezik az emulátor processzoréval. Az ilyen típusú emulátorok hátránya tehát, hogy alkalmazási körük szűkebb, mint az úgynevezett kétprocesszoros emulátoroké, ahol a rendszer processzor és az emulátor processzor funkció fizikailag is elkülönül így az emulátor modul cseréjével többfajta processzortípus is fejleszthető ugyanazzal az emulátor központi egységgel. Ennek ellenére az egyprocesszoros emulátorok mégis megtalálhatók a fejlesztő eszközök között elsősorban azért, mert belső felépítésük lényegesen egyszerűbb, mint a kétprocesszoros emulátoroké, illetve a felhasználók zöme amúgy is csak egy processzor típusra alapozza a termékeit. Az egyprocesszoros fejlesztést is támogatja pl. a BME Műszer- és Méréstechnika Tanszéke által kifejlesztett és a TEXELEKTRO Ipari Szövetkezet által gyártott DT-80 típusjelű mikroprocesszoros fejlesztőterminál. Ebben a készülékben Z80 CPU-ra írt programok fejleszthetők az egyprocesszoros üzemmódban. Napjainkban a nyugati incircuit emulátorok a nagyobb piacképességet jelentő univerzalitás miatt mind többprocesszorosak. Az egyprocesszoros in-circuit emulátorok jól megférnek a busz emulációval működő fejlesztő rendszerek mellett is, mert bár a busz emulációnak számos előnyös tulajdonsága van (lásd az 187034.1. számú Kapcsolási elrendezés mikroprocesszoros rendszerek fejlesztése és/vagy ellenőrzésére című szolgálati találmányt) nagy hátránya, hogy csak olyan rendszerek fejleszthetők velük, amelyek az adott buszt használják, és számos egyszerűbb készülék már eleve olyan egykártyás kivitelben készül, ahol busz sincs a rendszerben, így a fejlesztésük sem lehetséges ilyen eszközzel. Az egyprocesszoros emulátoroknak alapvetően két üzen.módjuk van: 1- HOST mód: ekkor a fejlesztő rendszer egyetlen processzorún a saját kezelői (HOST) rendszer programja fut, amely kommunikál a felhasználóval és végrehajtja annak parancsait.- TARGET mód: ekkor a fejlesztő rendszer proccsszora a kezelő álal előzetesen definiált konfigurációban és kezdeti feltételek mellett a fejlesztendő készülék processzorét, memóriáját helyettesíti, emulálja. Ebben a módban a processzor és az emulált memória úgy látszik, mintha a fejlesztendő rendszer része lenne. Az egyprocesszoros in-circuit emulátorokban alkalmazott tipikus egységek:- Cím minősítő egység: HOST módban a kimenete inaktív, ekkor a kezelő feltöltheti, hogy a processzor TARGET futása alatt a teljes címtartomány mely részein van emulált, illetve tényleges fejlesztendő TARGET memória. Megadható továbbá a memória típusa (ROM/RAM) is.-Emulációs memória: TARGET módban a fejlesztendő készülék memóriájának helyettesítésére szolgál.-Törésponti egység: HOST módban a kimenete inaktív, ekkor a kezelő feltöltheti, hogy a processzor TARGET futása alatt mely CPU ciklus(ok)ra történjen meg a TARGET futás felfüggesztése és visszatérés a HOST módba. Töréspont ezen kívül automatikusan is generálható nem létező memóriához forduláskor, ROM-ra való írási kísérletnél, kézi nyomógomb megnyomásakor, illetve külső feltétel teljesülésekor.- Nyomkövető tár: Amelybe TARGET működés alatt eltárolódnak a TARGET módban futó processzor jellemző ciklusai és ezek HOST módban visszatérve kiolvashatók és kiértékelhetők.- Buszkapcsoló egység: TARGET módban a cím minősítő egység kimenetétől függően vagy összeköti vagy szétválasztja az emulátor egységet és a fejlesztendő célkészüléket. HOST módban a buszkapcsoló egység mindig tiltott. ■ - Vezérlő: Amely az előzőekben ismertetett egységek működésének összehangolását végzi, valamint emulátor egység alapállapotba állítása (RESET) útán elindítja a processzor HOST működését. A továbbiakban ismertetjük az egyprocesszoros in-circuit emulátorok működését. Az emulátor HOST működése alatt biztosítani kell az emulált memóriához és a fejlesztendő készülék tényleges TARGET memóriájához, illetve perifériájához való hozzáférést, még akkor is, ha az a HOST memória vagy más HOST egység címével ütközik. Ennek kézenfekvő módja az, hogy arra az olvasási, illetve írási ciklusra, amelyben a kezelő az emulált/TARGET memóriát, illetve perifériát akarja elérni a vezérlő átkapcsol TARGET üzemmódba és ekkor a címminősítő egység kijelöli, hogy az írás vagy olvasás az emulált vagy a tényleges TARGET memóriából, vagy a perifériáról történjen. A TARGET ciklus lezajlása után azonnal visszakapcsol HOST módra, így a következő utasítás elővétele már újból a HOST memóriából történik. Az egy ciklusra TARGET módra történő átkapcsolás (továbbiakban ciklus lopás) előtt el kell indítani a vezérlőt (pl. egy adott HOST címre tör2 5 10 15 20 25 30 35 40 45 50 55 60 65 2