Forum: Mikrocontroller und Digitale Elektronik 80537 Monitor Programm Befehle und Co.


von blutengel (Gast)


Lesenswert?

Hallo an alle,

habe mal wieder etwas gekramt und ein altes Phytec miniCon 537 
ausgegraben.
Nach langen hin und her läuft es nun.Damals hatte ich noch einen 
Epromsimulator und konnte das Teil programmieren. Mittlerweile habe ich 
keinen Rechner der alt genug ist das dies Teil läuft. Habe jetzt den 
damals zum Board dazugehörigen Eprom mit Monitor Basic drauf. Mit Usb zu 
RS232 Converter und Hterm läuft alles.Im Terminal bekomme ich dies 
angezeigt:


MC535-MONITOR/BASIC  V1.26c
(C) PHYTEC Messtechnik 1989

MONITOR MODE
#

Nach der Eingabe von Help erscheint dieses:

#HELP
memory  display    modify       fill                verify
bit:   >DB range  >EB address  >FILLB range value  >VB range value
code:  >DC range  >EC address  >FILLC range value  >VC range value
data:  >DD range  >ED address  >FILLD range value  >VD range value
idata: >DI range  >EI address  >FILLI range value  >VI range value
xdata: >DX range  >EX address  >FILLX range value  >VX range value

 program execution              breakpoint(s)      program load/save
>G [address] [,breakadd] - go  >BD bp - disable   >:hex_rec - load intel hex
>T [count] - trace step        >BE bp - enable    >S range - save intel hex
>P [count] - procedure step    >BK bp - kill
                               >BL - list
                               >BS address - set
 utility
>A address - assemble          >MX xrange dest - move xdata
>U range - disassemble         >MC crange dest - move cdata
>X [register] - disp/change    >BASIC -  basic interpreter
>HELP - display menu           >MAP [basicram]


Gib es irgendwo noch Anleitungen wie diese Befehle funktionieren oder 
kennt sich noch jemand damit aus? Und sehe ich das richtig das man Hex 
Files in den Ram laden kann und dann ausführen. Wie genau funktionier 
das dann.

von blutengel (Gast)


Lesenswert?

So habe herausgefunden wie der Basic Interpreter funktioniert. Habe ein 
kleines Test Programm wo eine Variable hochgezählt wird und dann an Port 
1 ausgegeben wird. An Port 1 hängt ein zweistelliges Hex Display mit Til 
311. Mit Run kann gestartet werden.Danach ist auf dem Display schön zu 
sehen wie von 0 bis FF hoch gezählt wird. Das läuft also schon mal 
super. Aber komplexe Sachen sind da wohl eher schwieriger. Deshalb ist 
der weg über Assembler und Hex File besser. Das Monitor Programm bietet 
ja eine Funktion für Upload. Aber wie soll das funktionieren? Habe das 
noch nicht hin bekommen.

von Jobst M. (jobstens-de)


Lesenswert?

Wenn ich

>:hex_rec - load intel hex

richtig deute, dann einfach ein hex-file hochladen.


Gruß

Jobst

von blutengel (Gast)


Lesenswert?

Also dann einfach den Befehl eingeben ausführen und danach die Hex Datei 
einfügen und senden. Sorry das ich mich da so blöd anstelle. Vielleicht 
denke ich auch zu kompliziert

von Martin O. (ossi-2)


Lesenswert?

Wenn ich mich richtig erinnere (lang lang ists her)
schickte man einfach direkt nen Intel Hex File ans Board.
Da die Intel Hex Zeilen mit ':' beginnen, hat das Board das verstanden.
(Kein garantie...)

von Jobst M. (jobstens-de)


Lesenswert?

Martin O. schrieb:
> Da die Intel Hex Zeilen mit ':' beginnen, hat das Board das verstanden.
> (Kein garantie...)

So meinte ich das. Aber auch ohne Garantie und Gewähr ...


Gruß

Jobst

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Du kannst in nahezu jedem Terminal Programm eine 'Datei senden' oder 
'Send ASCII File' Funktion finden.
Wenn das Hex komplett geladen ist, wird der Monitor wieder auf dem 
Prompt landen und du startest mit G <Startaddresse> dein hochgeladenes 
Programm.

Die erlaubte Startaddresse hängt von der Hardware ab, musst du dir mit 
dem Monitor mal dumpen lassen - das Hex muss natürlich mit ORG oder so 
gemacht worden sein, das es an dieser Startadresse auch lauffähig ist.

von blutengel (Gast)


Lesenswert?

Hey,

Danke erstmal. Es funktioniert tatsächlich in dem ich es einfach 
schicke. Mit org 100 im Programmcode packt es es direkt an Adresse 100. 
Mit U 100 lässt sich der Code disassemblieren. So kann man sehen ob der 
Code übertragen wurde. Ich frage mich nur wo er das ablegt?

Hier mal das pdf zum Board:

http://www.google.de/url?q=http://www.phytec.de/fileadmin/user_upload/downloads/Manuals/L-003d_2.pdf&sa=U&ved=0ahUKEwjkzpms58XRAhVHcBoKHeZgB6EQFggVMAA&sig2=VdjNuIJx9ZQp4rOg7IJGJA&usg=AFQjCNGGaJdaFugvaBFODg7-CPWb-sUpvQ

Dort steht alles zur Speichernutzung. Aber w werde leider nicht schlau 
draus.Wenn ich das richtig sehe fängt ab Adresse 8000h der ext. Speicher 
an. Aber wenn ich z.b.org 8000 nutzen will sagt mir das Monitor p 
Programm no code memory at adress. In den eprom kann er ja nicht 
schreiben. Lese ich aber mit dem Befehl CD den Speicher aus ist dort das 
Monitor Programm zu sehen und das Baic + Hilfedatei. Wird der Code 
Memory vielleicht irgendwie im ext. Ram im oberen Bereich "gespiegelt" 
oder so?  Wenn ich Daten ab Adresse 8000h schreibe kommen diese Daten in 
den Eeprom der in U11 gesteckt ist. U8 ist der Eprom mit dem Monitor 
Programm und U10 der ext. RAM. Ist aber alles im Pdf zu sehen

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

In Kapitel 5.2 werden die Bestückungsvarianten beschrieben, die wir bei 
deinem speziellen Board natürlich nicht wissen.  U9 bis U11 sind dafür 
vorgesehen.
Da die Standard MCS51 Architektur nur 64kByte Daten und 64kByte Programm 
vorsieht, benutzt der 80537 einen Bankswitching Mechanismus, um mehr zu 
addressieren.
Das sollte erstmal nicht so wichtig sein, es scheint aber sinnvoll zu 
sein, U11 mit einem 32kByte SRAM (z.B. 62256) zu bestücken und die 
Jumper passend zu setzen. Evtl. ist auf U10 schon so ein Dings, 
vergleiche dann aber mal, ob die Jumper auch dazu passend sind. Wenn die 
spezielle Controllersoftware der Firma installiert ist, kann es sein, 
das U10 irgendwelche Tokenized- oder vorkompilierte Steuersoftware hält 
und keine normalen Maschinenprogramme - so zumindest verstehe ich das 
Manual.

von blutengel (Gast)


Lesenswert?

Auf U10 ist ein fest verbauter 62256 in SMD.U8 halt der Code Eprom.Und 
U11 hat einen 28c256 EEPROM. Schreib und lesezugriff ist ab Adresse 
8000H möglich. Aber auf Seite 53 steht ja das Speichermodell. Mein Board 
ist auf MODE 0, Seltsam finde ich das dort der EEPROM U11 mit einem 
Adrssbereich von 0000H bis 8000H angegeben ist,sich aber erst ab Adresse 
8000H bis FA00H ansprechen lässt.Und der Ram U10 geht über den Code und 
Data Bereich in gerade diesem Adressbereich. Ich finde dies etwas 
verwirrend

von blutengel (Gast)


Lesenswert?

Hab nochmal nachgeschaut, mein Board läuft in Mode 1. Jetzt bin ich noch 
mehr verwirrt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.