www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 8051 Emulator/Simulator?


Autor: Maxim S. (maxim) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Maxim S. (maxim) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.