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.
>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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.