Tyto produkty již nedodáváme!


ASIX Home

Co je, a co není emulátor

   >>> Home 2003-08-12  

Každý ví, co je automobil, a jak se liší od motocyklu, od bicyklu a od koloběžky. U emulátoru je však situace jiná. Běžně se lze setkat s formulacemi typu: "Ten náš emulátor se po zastavení už znovu nerozběhne". Ale takové zařízení není emulátor!

Mezi vývojáři je podobných ladicích přípravků celá řada. Mluví se o nich jako o emulátorech, avšak správné pojmenování je např. hardwarový simulátor, debugger nebo downloader. Toto zmatení pojmů není způsobeno pouhou neinformovaností, ale má i historické příčiny (zejména u uživatelů mikrokontrolérů s jádrem typu Intel sahající až do éry bývalé Tesly) a je otázkou, nakolik k situaci přispívají i distributoři a samotní výrobci ve snaze uplatnit své produkty.

Obecné povědomí je pak značně zdeformované: "Emulátor?  To jsem viděl u kolegy, a nebylo to nic moc. "

Na základě parafráze Williama Shakespeara, že "Bodlák nezačne vonět, nazveme-li jej růží", je zřejmé, že zavádějící názvosloví neprospěje technické úrovni, ale může vést ke ztrátám, ať už pořízením špatného produktu nebo nepořízením produktu dobrého.

Před prohlášením "Nechci růži - nevoní a píchá" je dobré vědět, jestli jsem přičichl k opravdové růži, nebo k planému šípku či bodláku.

Abychom věc uvedli na pravou míru, uvedeme základní vlastnosti, které zařízení musí mít (a základní nedostatky, které mít nesmí), aby se mohlo oprávněně pyšnit označením EMULÁTOR.


Co je emulátor

Nezbytné vlastnosti emulátoru:

  • Funguje stejně (nebo se zanedbatelnými odchylkami), jako skutečná součástka.
  • Je schopen běžet v reálném čase a spotřebovaný čas zobrazovat
  • Umí krokování - vykonávání po jedné instrukci vždy na požádání
  • Umí se zastavit (přinejmenším tak, jako by se zastavil hlavní oscilátor mikrokontroléru) kdykoli na požádání klávesou PC nebo při dosažení libovolného ze zadaných míst v programu
  • I za plného běhu lze zobrazovat i měnit hodnoty ve všech vnitřních strukturách
  • každém okamžiku jsou dostupné všechny údaje
  • Pro svou vlastní funkci nespotřebovává žádné prostředky emulované součástky (piny, paměť programu i dat, zásobník, strojový čas,...)
  • Aplikace nevyžaduje žádné úpravy pro účely emulace. Uživatel píše svůj program úplně stejně, jako by emulátor neměl.
  • Vývojové prostředí pracuje na úrovni zdrojového kódu a uživatelských symbolů

Co lze ještě považovat za emulátor

Omezení, která lze tolerovat, ale je nutné na ně uživatele předem upozornit:

  • Emulátor nepracuje v plném rozsahu napájení mikrokontroléru, ale jen např. od 4.5 V do 5.5 V
  • Emulátor není kompaktní, se změnou typu procesoru je nutné vyměnit modul
  • Pracovní frekvence se nastavuje výměnou krystalu nebo hardwarovým přepínačem
  • Emulátor nemá trasování (záznam průběhu a výsledků emulace v reálném čase)
  • Některé vnitřní procesy pokračují v běhu i po zastavení emulace (watchdog, započatá A/D konverze nebo zápis do interní EEPROM,...)
  • Emulátor pracuje v reálném čase do nižší maximální frekvence, než skutečná součástka
  • Lze využít menší paměti programu nebo dat, než má skutečná součástka
  • Některá periferní funkce mikrokontroléru (např. komunikační protokol XY) není implementována

S emulátory, které mají pouze takovéto nevýhody, se lze často smířit. Pro některé aplikace mohou být na hranici použitelnosti, pro většinu jsou ale i tak velkým přínosem.

Emulátory MU však žádná z uvedených omezení nemají!

Co není emulátor

Zařízení, které má byť i jedinou z následujících vlastností, nechť není nazýváno "emulátor":

  • Nelze libovolně a neomezeně využívat režimy plného běhu, zastavení a krokování
  • Za běhu nelze vše vidět a měnit
  • Pracuje s reálnou součástkou (je nutné ji programovat atd.)
  • Jedna pracovní "obrátka" (čas od ukončení editace zdrojového programu do jeho spuštění) trvá více než řádově jednu sekundu
  • Ladění vyžaduje část prostředků mikrokontroléru (piny, paměť programu i dat, zásobník, strojový čas,...)
  • Kromě uživatelské aplikace musí v programu být i ladící pasáž

Co je emulátor MU od firmy ASIX

  • Má všechny výše uvedené výhody
  • Nemá ani jedinou z výše uvedených nevýhod
  • Typ procesoru, typ oscilátoru a pracovní frekvence se nastavuje softwarově
  • Má velmi komplexní možnosti zastavení:
    • zastavení při mnoha událostech typu přetečení zásobníku, watchdogu, trasovací paměti,...
    • zastavení při libovolně definovaném přístupu do libovolného registru s maskováním nezajímavých bitů
    • Zastavení na zadaném místě v paměti programu před vykonáním příslušné instrukce.
      Příklad: Hledáme chybu v programu pro zavěšování křišťálových lustrů. MU se zastaví v okamžiku před přetržením závěsu. Ostatní emulátory zachytí situaci, kdy na koberci leží rozbitý lustr.
  • Má řadu dalších funkcí, u jiných emulátorů nevídaných
  • Je mnohem lepší, než jiné emulátory PIC
  • Je mnohem levnější, než jiné emulátory PIC


© ASIX s.r.o., 1991-2009. All rights reserved.