ENTWICKLUNGSSYSTEM
fr
80C552
Compiler
Assembler
Linkler
AVSIM51
FSD51
EMUL51
Zusammengestellt von Gregor Pokorny 1991

Ziel dieser Zusammenstellung
 war es, verschiedene, schon
 bestehende Softwarepakete, so
 miteinander zu verbinden,
 da ein Entwickeln und Testen von C und Assemblerprogrammen fr den 552  mglichst einfach und zweckmig wird.

Erluterung zum Diagramm:

Bevor man mit dem C-Compiler
 arbeiten kann, mssen am PC
 einige Dinge eingestellt
 werden. Diese Aufgabe erledigt INIT.BAT.

Das Diagramm zeigt die Entstehung eines Programms fr 
den 552. Zuerst wird ein C-Programm geschrieben, in welches das File C552SR.H inkludiert
 werden mu, damit die Namen
 aller im 552 befindlichen
 Register im C-Programm bekannt sind. Dieses C-Programm schreibt man am Besten
 im Turbo C++-Editor, da dieser
 Syntax durch Compilieren in
 ein Objektfile geprft werden kann bevor eine Compilierung mit dem Compiler fr
 den 80552 durchgefhrt wird.
 Diese Syntaxprfung ist
 sinnvoll, weil der C-Compiler wesentlich schneller ist
, als der 552-Compiler, und
, weil manche Fehler vom 552
-Compiler nicht erkannt werden, und die Gefahr besteht,
 da das Programm dann nicht
 ordnungsgem luft. Allerdings mu fr diese Compilierung das File C552SRP.H
 inkludiert werden, da der
 Turbo-C-Compiler z.B. das
 Wort NEAR nicht versteht.
 (Dieses Wort sagt dem 552
-Compiler, da diese Variable
 im internen RAM abgelegt
 werden soll.) Wenn man vergit diese nderung wieder 
rckgngig zu machen bevor
 man den 552 Compiler startet, dann wird z.B. statt
 einer Ausgabe der PWM auf den entsprechende Port dieser Wert irgendwo im externen RAM abgelegt, wo er natrlich keine Wirkung hat.
 Beim Compilieren entsteht
 ein File mit der Erweiterung
 .OBJ. 

Damit ein C-Programm am 552
 ordnungsgem laufen kann
, ist das Assemblerprogramm
 RT51.SRC notwendig, das einige Vorbereitungen trifft.
 In diesem Programm werden
 hauptschlich Variablen definiert, und initialisiert.
 Zum Definieren der Variablen
 wird das File C552SR.DEF in
 RT51.SRC eingebunden. Nach
 dem Assemblieren mit X8051.EXE entsteht ebenfalls ein
 File mit der Erweiterung
.OBJ.

Alle diese OBJ-Files werden
 danach mit dem Linker verbunden. Zustzlich knnen 
auch noch Programmbibliotheken eingebunden werden. Der
 Linker braucht dazu einige 
Informationen, die entweder
 hndisch eingegeben, oder
 als File angebunden werden
 knnen. Hier knnen auch
 Optionen eingegeben werden.
 Diese sind unter Anderem
 auch dafr verantwortlich
 welches Format das Outputfile haben wird. Hier ist es
 vorgesehen, da diese Informationen angebunden werden.
(DATH.LNK und DATX.LNK) Da
 fr die verschiedenen Testmglichkeiten verschiedene Outputfiles bentigt werden, mu der Linker zweimal gestartet werden.
 Einmal, um ein Outputfile im
 Intel-Hex-Format, und einmal, um ein Binres File zu
 erzeugen.

Der AVSIM51 braucht zum Beispiel ein File im Intel
Hex Format. Die genaue Bedienung des AVSIM ist der
beiliegenden Anleitung zu
entnehmen. Der AVSIM51 ist
allerdings mit Vorsicht zu8P-/3.3.++.::3.3.++8genien, da sich manche
Dinge zwar simulieren lassen, aber dann in Wirklichkeit doch nicht
funktionieren. Leider war es
mir nicht mlich einen solchen Fehler genau zu lokalisieren, da die CProgramme
nach dem Compilieren nicht
mehr gut nachvollziehbar
sind.

Der FSD51 braucht auch ein
File im Intel Hex Format.
Aurdem ist zum Testen ein
Prozessorprint nig. Das
hat den Vorteil, das es ich
dabei um keine Simulation
handelt, hat aber den Nachteil, daman sich auch ter mit Hardwareproblemen
herumschlagen mu

Der EMUL51 braucht ein File
im BIN Format. Er ist ein
sehr komplexes Hard und
Softwarepaket, und bietet
neben der besseren Emulation
auch die Mlichkeit die
serielle Schnittstelle zu
benutzen, was beim FSD51 nur
bedingt mlich ist, da er
diese selbst zur Datenertragung mit dem PC braucht.
Aurdem knen damit auch
Programme ohne Prozessorprint getestet werden. Der
einzige Nachteil ist, dauvor eine umfangreiche englische Anleitung zu studieren ist.


Beschreibung der Files:

INIT.BAT

Aufruf: INIT

In diesem File werden Vorbereitungen f die Bearbeitung eines Programms
getroffen. Voraussetzung f
die Funktion ist, dazuvor
ein virtuelles Laufwerk e:
installiert wurde.
Zuerst wird mit der BATDatei SETPATH der Pfad wiederhergestellt, falls er zumP-/3.3.++Beispiel durch einen Netzeinstieg verdert worden
ist. Dann wird auf e: ein
Verzeichnis mit dem Namen
\C552 angelegt, in das alle
zu bearbeitenden Files kopiert werden. Dieser Aufwand
ist deshalb gerechtfertigt,
weil der CCompiler eine
sehr langsame Angelegenheit
ist, die so etwas beschleunigt wird. Am Schluwerden
noch drei Pfadangaben ins
Enviroment geschrieben, damit Compiler und Linker wissen, wo sie Include und
lib Dateien suchen sollen,
und damit der EMUL51 funktioniert.

SETPATH.BAT

Diese Datei setzt den Pfad.
Sie wird von INIT.BAT aufgerufen, und ist so gedacht
dasie ganz allgemein verwendet wird, z.B. auch von
AUTOEXEC.BAT. Wichtig f
diese Software ist nur, daabei der Pfad C:\80552\C552\2500AD\BIN vorkommt. SETPATH.BAT ist daf
nur ein Beispiel.

C51.BAT

Aufruf: C51 test

Diese Datei lcht zuerst
das OBJ File, sonst wden
bei nicht erfolgreicher Kompilierung die alten Files
zusammengelinkt, was man
dann leicht ersieht. Dann
wird der Compiler gestartet,
und hinterher zweimal der
Linker, um ein HEX File
(f FSD51 und AVSIM51) und
ein TSK File (f EMUL51)
zu erzeugen. Am Schluwerden noch alle Dateien die
mit dem Projekt zu tun haben
auf die Festplatte zurkkopiert.

TEST.C

Ist das eigentlich CProgramm (siehe Diagramm8P-/3.3.++.vv<3.3.++8beschreibung). Damit man die
Special Funktion Register
bitadressieren kann mudas
struct "special_function_bits SFB" extern
deklariert werden. Danach
steht das eigentliche CProgramm f den 552. Das hier
abgedruckte Programm invertiert nur ein Portbit, was
beim Testen sehr sch am
Oszi zu beobachten ist, und
in jedem Programm zum Testen
zweckmg ist.

TEST.HEX

Dieses File entsteht, beim
Linken, und dient als Inputfile f den AVSIM51, und
den FSD51. Am Anfang jeder
Zeile steht immer ein Doppelpunkt, danach die Anzahl
der Bytes, danach die Adresse, und dann die Daten. Dieses Wissen kann vor allem
bei der Suche von Linkerrors
praktisch sein.

C552SR.H

In diesem File werden die
Variablen, die mit dem 552
zu tun haben deklariert.
Wenn Namen im 552 Handbuch
etwas anders sind, dann empfiehlt es sich hier nachzusehen.

C552SRP.H

Dieses file ist dem C552SR.H
sehr nlich, nur so
abgedert, daes der Turbo
C Compiler versteht (siehe
Diagrammbeschreibung)

C552SR.DEF

In diesem File werden die
Register des 552 definiert.
es wird in das Assemblerfile
RT51.SRC beim Assemblieren
eingebunden.

DATH.LNK

Ist jenes File das man dem
Linker ergeben mu damitP-/3.3.++er ein HEX File erzeugt.
Achtung ! Es kann passieren,
dasich die Anzahl der
einzugebenden Parameter
dert, das passiert zum
Beispiel, wenn man keine
globalen Variablen im CProgramm definiert. Dann
funktioniert das Linken
nicht, solange man das LNKFile nicht dert. Weiters
mubei Verderung des
Namens des CProgramms auch
hier die derung
vorgenommen werden.
Zweckmger ist es aber den
Namen TEST.C beizubehalten,
und immer das Programm, das
man momentan bearbeitet in
TEST.C umzubenenen.

DATX.LNK

Funktioniert genauso wie
DATH.LNK, nur erzeugt der
Linker dann kein HEX,
sondern ein TSK File.

RT51.SRC

Ist das Assemblerfile, das
vor dem CProgramm
abgearbeitet wird. (siehe
Diagrammbeschreibung).
Bemerkenswert ist dabei: Auf
Page 2 unten wird C552SR.DEF
eingebunden. Hier werden
einige Variablen definiert.
Weiters auf Page 3 mitte
steht die Zeile  .org 0a000h
Hier steht der Offset der
Startadresse. Nachdem beim
Linken f die Startadresse
aber 0 angegeben wird, ist
das gleichzeitig die Startadresse. Wirklich gestartet
wird das Programm aber auf
A103h. Den genauen Grund
habe ich nicht erforscht. Es
funktioniert einfach so.
Weiters ist zu erwnen, das sehr zweckmg ist, am
Ende des RT51.SRC Interrupt
service Routinen zu schreiben, wie es Prof. Winkler
schon gemacht hat (siehe
Ende des Files). Achtung !
Man darf danach nicht vergessen RT51.SRC neu zu as8P-/3.3.++.x3.3.++8semblieren.

SIM.BAT

Ist die Datei, die man zum
Starten des AVSIM51 verwendet. Beim AVSIM51 besteht
die Mlichkeit, daman
Tasten, die man im Programm
betigen me beim Aufruf
als Buchstabenkombination
anhgt. Weiters besteht im
Programm die Mlichkeit ein
File zu laden, das einige
Tasten  betigt. Im SIM.BAT
wird jetzt eine trickreiche
Kombination dieser beiden
Mlichkeiten angewendet,
indem mit der Tastenkombination bflsim.cmd mit dem "b"
der Prozessor ausgewlt
wird, und danach das File
sim.cmd nachgeladen wird,
welches weitere Tasten bettigt.

SIM.CMD

In diesem File sind die Tasten abgespeichert, die der
AVSIM51 nach seinem Aufruf
selbststdig betigen
soll. In diesem Fall wird
damit das HEX File geladen,
und der PC auf a103h gestellt.

SIM.SYM

Aus diesem File bezieht der
AVSIM51 Symbole, und die
Speicherkonfiguration.

Installation:

Die Programme sind samt Unterverzeichnissen mit backup
aus DOS 3.30 auf HD Disketten abgespeichert, und knen mit restore a: c:/s wieder auf der C: Festplatte
installiert werden. Es werden dann alle Verzeichnisse
wiederhergestellt. Sollten
die Programme auf einem anderen Laufwerk installiert
werden, so mudiese derung in den Batchdateien berksichtigt werden. WeitersP-/3.3.++mudie Datei SETPATH geschrieben werden, und zum
Beispiel im Verzeichnis BAT
abgelegt werden. Im AUTOEXEC.BAT sollte dann auch
statt der Angabe eines Pfades die Datei SETPATH aufgerufen werden. (Siehe auch
Erlterung zu SETPATH und
Ausdruck von SETPATH). Aurdem muein virtuelles
Laufwerk mit dem Namen e:
installiert werden. Um CProgramme zweckmg editieren zu knen, ist es auch
zweckmg Turbo C zu installieren.

Informationsquellen:
Beschreibungen:
f 8051 C:
X08051 C Compiler"
X02500 A.D"
X0iDCX 51  2.0"
X0(Prof. Winkler)"
f AVSIM51:
X0Im Anschluan diese
Dokumentation in Form
einer Kopie."
X0(Prof. Fiala)"
f FSD51:
X0Kurzbeschreibung im
Anschluan diese Doku.
Bei grren Problemen
Beschreibung zum uProfi."
X0(Prof. Scharl)"
f EMUL51:
X0Genaue Beschreibung von
NOHAUCorporation EMUL51PC"
X0(Prof. Scheuermann)
WPC
Verfat von Gregor Pokorny 1991.=///++p!Einleitung:

Es handelt sich bei dieser
Dokumentation um eine Kurzbeschreibung des FSD51 zum
Testen eines CProgramms. Da
ein CProgramm nach dem Compilieren ohnedies als unlesbar zu bezeichnen ist wird
in diesem Fall der FSD51 im
Prinzip nur zum Starten des
Programms verwendet. Wichtig
ist auch noch, da es sich
bei dieser Version des FSD51
um eine spezielle Version
handelt, die seinerzeit im
Zusammenhang mit dem Robbie
entwickelt wurde. Auerdem
ist das dazugeh?rige EPROM
nur auf dem alten 100 er
Print verwendbar, da einige
Adressleitungen ausgekreuzt
sind. Da momentan noch kein
anderer Print zu haben ist,
wird eben dieser Print noch
immer zu Testzwecken verwendet. Sollte ein neuer Prozessorprint fertiggestellt
werden, sollte man sich auch
eine neue Version des FSD51
mit dem dazugeh?rigen EPROM
besorgen.

Die Hardware:

besteht aus dem Prozessorprint, und einem Pegelwandler fGr die serielle Schnittstelle. Der Prozessorprint
mu mit 5V versorgt werden,
und Gber den Pegelwandler an
eine der seriellen Schnittstellen des PC's angeschlossen werden.

Die Software:

Der FSD51 wird mit FSD51
TEST.SET gestartet. <spc>
drGcken um den BegrGungsbildschirm zu verlassen.
Danach erscheint der Hauptbildschirm, in dem immer ein
Fenster heller erscheint Ein
Wechsel der Fenster ist mit
<home> oder <end> m?glich.
Jetzt bestehen zwei M?glichkeiten: Entweder Der FSD
Gbertrgt brav interne undP-/3.3.++externe Daten, oder die Schnittstelle ist falsch eingestellt, und der FSD meldet
sich mit "Empfnger nicht
bereit" In Diesem Fall kann
mit F3 Setup die Schnittstelle gendert werden. Es
empfiehlt sich auch das Setup gleich zu speichern, da
sonst derselbe Fehler beim
nchsten Mal wieder auftritt.

Laden eines Programms:

Mit F2 File, und "File download" whlen. Dann erscheint der Name, der zuletzt eingegeben wurde, oder
der Name, der im Setup abgespeichert war. Beim speichern des Setups wird nmlich der Name, der hier gerade steht mitgespeichert,
was den Vorteil hat, da man
beim Laden des Programms
zumeist nur den MenGpunkt
anwhlt und <Enter> bettigt. Jetzt wird das Programm ins RAM des Prozessorprints geladen, und interne
und externe Daten Gbertragen.

Starten des Programms:

Zuerst mu der PC an die
richtige Stelle gesetzt werden. Das geschieht im Fenster links oben. Die Adresse
mu mit <Enter> besttigt
werden. Jetzt kann das Programm mit F6 gestartet werden. Unterbrochen kann es
jetzt nur noch mit einem
Hardwarereset werden, da es
vollkommen unabhngig vom PC
luft. Man k?nnte sogar die
serielle Schnittstelle abstecken, ohne da das Programm in seinem Ablauf beeintrchtigt wGrde.

Verlassen des FSD:
Der FSD kann mit F10 wieder
verlassen werden. Das Programm am Prozessorprint
luft aber weiter. 