Simulátor mikroprocesorů rodiny 8051 

volně k použití


Rád bych vás seznámil s volně šiřitelným simulátorem jednočipového mikrokonvertoru ADuC812, který lze použít k ladění programů celé řady mikroprocesorů rodiny 8x51. Firma Analog Devices dává na svých www stránkách k dispozici celý komplet vývojového prostředí k mikrokonvertoru ADuC812, jedním ze zástupců je i simulátor jednočipů řadu 8x51.

Co všechno v “balíku” získáme.

Při instalaci z cca 5,5 MB exe souboru se nám na zvoleném disku vytvoří podadresář ADuC a v něm celá řada dalších podadresářů. V nich jsou především umístněny spustitelné soubory:

Mikroprocesorové jádro jednapadesátky jako na talíři.

Spuštěním simulátoru ADsim812 získáme velmi komfortní vývojový simulátor intelovské řady 8051 a jeho dalších nadstaveb. Mimo základní menu se v horní časti okna zobrazí dvě lišty, které umožňují vyvolat celou řadu funkcí a událostí v “běhu” laděného programu.

Na ostatní volné ploše obrazovky lze zobrazit pomocná okna následujících funkcí a významů:

Ve všech oknech lze provádět modifikaci paměťového místa nebo registru. Jedině v okně disasemblerovaného programu to samozřejmě možné není.

Pro vlastní ladění programu lze využít krokové simulace, simulace po procedurách, běhu programu do nastavených breakpointů a také možnost vynechání následující instrukce při krokování programu, což se tak často v simulátorech nevidí.

Zajímavé a velmi užitečné je okno analýzy programu, kde je možné získat informace o vnějším chování laděného programu, tj. zjistit počet provedených cyklů, instrukcí a vlastní doby trvání programu, pro zvolený kmitočet krystalu. Zvlášť se registruje potřebná velikost zásobníku, jeho případná inicializace a počet přístupů do externí paměti RAM. Užitečné jsou dolní dvě menší okna - levé slouží k registraci návratových adres při volání podprogramů, čímž je zde vidět i výše vnoření podprogramů. V pravém okně je zobrazována historie vykonávaných příkazů.

V samostatném konfiguračním okně aktivního projektu je možné nastavit další, společné vlastnosti prostředí. Lze ovlivnit hlídání definovaného vrcholu zásobníku. Simulátor při “přetečení” nastavené velikosti zásobníku ohlásí chybu. Hlídá také použití zakázaného přerušovacího vektoru a kontroluje správné zakončení přerušovací rutiny. Lze také zvolit možnost vzniku varovného hlášení při špatné instrukci nebo obsluhy neexistujícího SFR registru.

Přesto, že mikrokonvertor ADuC812 může používat krystal maximálně 16 MHz, lze zde nastavit hodnotu krystalu prakticky libovolnou, mimo předinstalovaných 11,0592 a 12 MHz. Úspěšně zde byl odladěn a podroben časové analýze program pro mikroprocesor AT89C2051 s 24 MHz krystalem.

   Rychlé ovládání přes tlačítka        

Nejběžnější funkce simulátoru jsou umístněny ve dvou lištách. První z nich obsahuje klasické funkce otevření a uložení simulovaného projektu. Běžné funkce Reset programu, spuštění a zastavení programu. “Ruka” naznačuje možnost vložení “breakpointů” - míst, kde se běžící program zastaví. Trojice tlačítek se stopou intuitivně naznačují krokování programu, krokování po procedurách a obejití, tedy vynechání instrukce. Předposlední tlačítko umožňuje otevřít okno analýzy programu a poslední ukončení simulačního programu.

Druhá lišta obsahuje tlačítka nulování programové paměti, nulování externí RAM paměti a nulování interní RAM paměti. Další tlačítka slouží pro vyvolání následujících událostí:

Díky těmto tlačítkům je možné odladit programové sekvence, které zajišťují zpracování všech přerušení. Všechny tyto události je možné vyvolat jak při běhu simulovaného programu, tak i při krokování programu.

    Také něco navíc

Představovaný simulátor má také něco navíc, co asi běžné simulátory nemají.

V simulátoru je možné otevřít dvě terminálová okna. První umožňuje simulovat komunikaci na sériové lince. Přičemž v okně konfigurace simulátoru lze navíc zvolit možnost simulovat sériovou linku RS-232 v terminálovém okně nebo použit existujícího COM portu (všech čtyř) na PC při zvolené komunikační rychlosti od 300 Bd až do 19200 Bd. Druhé terminálové okno pak umožňuje simulovat přenos dat na rozhraních I2C nebo SPI.

Vzhledem k plné podpoře mikrokonvertoru ADuC812 je v simulátoru také pamatováno na simulaci vstupních a výstupních dat pro A/D a D/A převodníky. Data jsou čtena nebo zapisována do běžného textového souboru s příponami *.adc nebo *.dac v podobě čtyř hexa čísel v jednom řádku, tedy jako plná 16-ti bitová informace.

Velice příjemná je možnost simulace “maticové klávesnice” 4x5 tlačítek. V konfiguračním okně je možné nastavit připojení této simulované klávesnice na libovolné porty a to jak vstupní tak i výstupní. Druhé okno pak simuluje klávesnici tak, že zmáčknutí tlačítka se projeví takovým způsobem na zvolených portech, jako by byla připojena skutečná klávesnice. Poměrně lehce tak lze odladit rutiny obsluhy klávesnice, a to jak klasické, tak i ty, které budou využívat přerušení.

    A co říci závěrem

Uvedený simulátor, který je volně k dispozici všem programátorům a zájemcům o jednočipové mikroprocesory řady 8x51 nebo 8x52, patří do vyšší třídy z hlediska komfortu poskytovaných funkcí a simulačních možností. Firma tak dává najevo úplnou volnost při ladění programového vybavení a to nejen na úrovni PC simulace, ale i následně při HW simulaci s využitím HW simulátorů přímo vestavěných do mikrokonvertoru ADuC812. Firma bezesporu razí heslo, vše si nejprve vyzkoušejte a když by se vám to líbilo a fungovalo, tak teprve investujte do zařízení. Možná i proto je cena vlastního mikrokonvertoru ADuC812 o něco vyšší, než by se dalo očekávat.