Forum: Mikrocontroller und Digitale Elektronik 8051 Emulator/Simulator?


von Maxim (maxim) Benutzerseite


Lesenswert?

Hier: http://www.8052.com/links.phtml
gibt es viele Links zu unterschiedlichen Emulatoren/Simulatoren für 
8051er.

Was ist jetzt der Unterschied zwischen einem Emulator und einem 
Simulator?

Welcher ist empfehlenswert für kleine Versuche? Sollte kostenlos und 
einfach zu bedienen sein.

von holger (Gast)


Lesenswert?

>Was ist jetzt der Unterschied zwischen einem Emulator und einem
>Simulator?

Ein Emulator ist ein Stück Hardware was den Chip in der
Schaltung emuliert. Ziemlich teuer ! Ein Simulator ist
eine Software die den Chip simuliert.

von Ralf (Gast)


Lesenswert?

Hallo,

Emulator = Hardware, die deinen Prozessor ersetzt (also z.B. statt dem 
Prozessor in den Sockel gesetzt wird). Die Hardware emuliert deinen 
Prozessor, du kannst direkt in der Hardware testen und z.B. die 
Register-Inhalte sehen. Wurde früher häufig verwendet, als die 
Controller noch keinen Flash-Speicher hatten und das Programmieren eines 
EPROMs ne Viertelstunde gedauert hat. Heute nicht mehr üblich.

Simulator = Software auf deinem PC, die das Hex-File (also dein 
Programm) einliest, den Controller nachbildet und entsprechend den 
Befehlen die Ports setzt usw. Ganz gut für kleine Programme, bei 
größeren bringts es nicht, weil die an den Controller angeschlossene 
Hardware dann meistens so spezifisch ist, dass du sie am Simulator nicht 
oder nur mit großem Aufwand nachbilden kannst.
Ausserdem kann etwas, was im Simulator funktioniert, in der realen Welt 
trotzdem nicht gehen.

Das Zauberwort heisst Debug-Interface! Das ist quasi ne Mischung aus 
beidem. Zum einen programmierst du deinen Controller direkt in deiner 
Hardware (sofern sie dafür ausgelegt ist). Deine PC-Software kann über 
das Debug-Interface z.B. die Controller-Register lesen (und auch 
schreiben) und ihn auch steuern, also z.B. sagen, dass er per Mausklick 
nur einen Befehl ausführen soll. Die AVRs haben das, heisst dort 
JTAG-Interface. Einige 8051er haben das auch, z.B. die von SiLabs. In 
den meisten Fällen brauchst du dazu aber eine Debug-Interface-Hardware, 
ist aber relativ billig.

Wenn dein 8051er kein Debug-Interface hat, dann kannst du dir auch eins 
in Software machen! Das einfachste Beispiel ist, dass du bei erreichen 
eines bestimmten Programm-Punktes einen Port toggelst. So weisst du, 
dass der µC die Stelle im Programm erreicht hat. Wenn dein Code 
fehlerfrei ist, nimmst du einfach den Toggle-Befehl raus. Du kannst das 
ja z.B. auch über die serielle Schnittstelle lösen, in dem du dann mit 
einem Terminalprogramm (z.B. HyperTerminal) Nachrichten deines 
Controllers empfängst und auswertest. Je nachdem, wie geschickt du das 
programmierst, kannst du dir dann auch Register- oder Variablen-Inhalte 
anzeigen lassen.

Hoffe, das hilft ein bisschen...

Ralf

von Maxim (maxim) Benutzerseite


Lesenswert?

Danke

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.