Překladač ah8, linker xlink a simulátor t32mh83

1.              Úvod

V tomto návodu je velmi stručně popsán překladač ah8, sestavovací program xlink a simulátor t32mh83. Popis je určen k usnadnění prvních kroků s těmito programy a je proto omezen jen na nejdůležitější údaje. Kompletní informace lze nalézt v příslušných manuálech.

 

 


2.              Překladač ah8

Překladač je produktem firmy IAR. Je určen k překladu programů, napsaných v asembleru pro procesor H8/300H a H8S. Spuštění překladače se provádí z příkazové řádky.

Formát příkazové řádky je následující:

ah8  [volby] soubor

kde

soubor         je jméno překládaného zdrojového souboru

volby            je jedna nebo více voleb, oddělených mezerou.

Zdrojový soubor:

Zdrojový soubor musí být napsán při dodržení syntaktických pravidel, viz přednášky a podrobný manuál k překladači ah8. Standardní přípona zdrojového souboru je .s  .

Poznámka:

Překlad souboru končí nalezením direktivy END, která je na řádce, ukončené znakem CR. Není-li řádka správně ukončena, může překladač hlásit chybu.

Volby:

Úplný seznam voleb je uveden v manuálu. Zde uvedeme pouze některé volby, které je vhodné resp. nutné použít pro překlad jednoduchých programů při cvičeních.

-o soubor  Definování jména výstupního objektového souboru. Jméno souboru je od volby odděleno mezerou. Standardní (implicitní) přípona objektového souboru je r37. Není-li při překladu volba –o použita, je jméno objektového souboru odvozené ze jména zdrojového souboru, přípona je změněna na r37.

-m                   Volba paměťového modelu. Parametrem volby –m je kód používaného paměťového modelu: s pro model small, l pro model large. Kód se uvádí bezprostředně (tj. bez mezery) za volbu –m. Pro cvičení je nutné použít model large, tj. volbu –ml.

-r                   Generování ladicích informací. Použití této volby způsobí vložení ladicích informací do objektového souboru. Předpokládáme-li ladění programu pomocí simulátoru/debuggeru, je vhodné tuto volbu použít.

-v                   Volba typu procesoru. Parametrem uvedeným za –v lze volit typ procesoru, pro který je program určen. Jsou možné následující parametry:

0       procesor H8/300H

1       procesor H8S/2200

2       procesor H8S/2600.

Pro cvičení je nutné zvolit procesor H8S/2600, tj. použít volbu –v2 .

-Lprefix    Vygenerování souboru s protokolem o překladu. Jméno souboru je odvozeno ze jména zdrojového souboru přidáním prefixu prefix před jméno a změnou přípony na .lst . Prefix musí být uveden bezprostředně (bez mezery) za volbou –L. Jako prefix může být použit i prázdný řetězec — jméno souboru pak nebude změněno.

 

 


3.              Linker xlink

Linker xlink sestavuje relativní (objektové) soubory a vytváří binární výstupní soubor. Standardní (implicitní) přípona objektových souborů je r37.

Linker se spouští příkazovou řádkou ve tvaru

xlink  soubor [soubor]... [volby]

 kde

soubor         je jméno objektových souborů,

volby           jsou volby pro sestavení.

Volby pro sestavení

Použití voleb pro sestavení umožňuje volit umístění jednotlivých segmentů v paměti, formát binárního souboru apod. Úplný seznam voleb je uveden v manuálu k linkeru xlink. Zde si uvedeme jen několik důležitých voleb, které je nutné při sestavování cvičných úloh použít.

-ch8              Volbu –ch8 je nutné použít pro nastavení typu procesoru H8... .

-o soubor  Volba –o umožňuje zvolit jméno a typ výstupního souboru. (Jméno výstupního souboru je od volby –o odděleno mezerou). Bez použití volby –o generuje linker soubor se jménem aout.hex ve formátu Intel HEX. Pro použití binárního souboru se simulátorem t32mh83 je nutné volbu –o použít. Jméno souboru může být libovolné, musí být uvedena přípona d37.

-Z      Volbu –Z je nutné vždy použít pro definování sestavovaných segmentů. Volba je uváděna ve tvaru

-Z[(typ)] segmenty[=][adresa]

kde (typ) je typ definovaných segmentu resp. segmentů, a to buď (CODE) nebo (DATA).

segmenty  je seznam definovaných segmentů oddělený čárkami, adresa  je adresa uložení začátku segmentu v paměti.

Každý segment, definovaný v sestavovaných objektových souborech, musí být uveden také v definici segmentů volbou –Z ! V opačném případě končí sestavování fatální chybou.

Jako adresu uložení kódového segmentu je možné použít např. adresu 200 (viz dále).

Jsou-li například ve zdrojových souborech definovány kódové segmenty se jmény cdseg1 a cdseg2 a dále datový segment dtseg a zásobníkový segment stckseg, musí se při sestavení použít volby

-Z(CODE)cdseg1,cdseg2=200 –Z(DATA)dtseg,stckseg  .

-r                   Volba –r způsobí vložení ladicích informací do binárního souboru. Volba je účinná pouze tehdy, byl-li též překlad zdrojových souborů proveden s volbou –r.

-l soubor  Volba jména souboru pro protokol o sestavení. Jméno souboru je od –l odděleno mezerou.

-xm                 Volba výpisu mapy modulů. Používá se společně s volbou –l.

Poznámka:

Pro překlad a sestavení programu lze s výhodou použít program make . Příklad řídicího souboru makefile  je přiložen k souborům s překladačem a sestavovacím programem.

 

 


4.              Ladění programu pomocí simulátoru t32mh83

Program t32mh83 je určen především pro práci s emulátorem procesorů řady H8S, tj. se speciálním hardwarovým přípravkem. Je však použitelný i ve funkci simulátoru pro ladění jednoduchých programů.

Instalace simulátoru

Simulátor není nutné instalovat. Stačí rozbalit zipový soubor do zvoleného adresáře.

Zavedení laděného programu

Binární program v souboru s příponou .d37 se zavede do paměti pomocí příkazu Load v menu File (viz Obr. 1). Je-li ve zdrojovém programu uveden vstupní bod v direktivě END, nastaví se po zavedení programu PC automaticky na tuto adresu.

Podle potřeby je možné otevřít okna s výpisem obsahu paměti propojeným se zdrojovým kódem (View – List Source viz Obr. 2), pokud ovšem byl program přeložen a sestaven s volbou –r.

V tomto okně je ve sloupci addr/line adresa v paměti, ve sloupci code je její obsah, sdružený podle jednotlivých instrukcí. V dalších sloupcích je uvedena příslušná řádka zdrojového souboru a volitelně (tlačítko Mode) mnemonický kód instrukce získaný zpětným překladem obsahu paměti.

Dále je možné otevřít okna s výpisem obsahu registrů (View – Registers , Obr. 3), obsahem paměti (View – Dump) atd. Obsah registrů i paměti lze v těchto oknech též měnit. Tato okna je možné použít k zadávání vstupních dat do paměti a k prohlížení výsledků.

Obr. 1

Obr. 2

Obr. 3

Zavedený program je možné krokovat po jednotlivých instrukcích (Run – Step), případně spustit a zastavovat příkazy Run – Go a Run – Break  (Obr. 4).

Obr. 4

Kromě menu lze řadu příkazů zadávat i pomocí příkazových tlačítek. Protože je však program určen především pro spolupráci s emulátorem, nejsou některá tlačítka funkční, případně jejich stisknutí způsobuje různé chyby programu.

 

 


5.              Zkušební program

Pro usnadnění prvních pokusů a pro ověření správné funkce překladače, linkeru a simulátoru je v zipovém souboru s překladačem ah8 též velmi jednoduchý program prog1.s v asembleru. Současně je přiložen program make a soubor makefile, který lze použít pro snadný překlad a sestavení a též jako příklad voleb pro překladač a linker.

 


Návrat na hlavní stránku POT.

Poslední změna stránky byla provedena 13.02.2004