Hallo Community,
aus purem Interesse frag ich mal: Wie aufwendig wäre es, einen Emulator für eine AT91SAM7S256-CPU bzw. einen ganzen Lego NXT zu machen? Und was müsste ich Wissen?
Ich bin erst fast 14, also kann ich mir Vorstellen das ich sowas nicht hinbekommen würde, die Frage ist aus purem Interesse...
mfg.
markus111
Das lässt sich sicher realisieren, wie die ganzen anderen Emulatoren, die es gibt.
Das erste, was du brauchst sind die Unterlagen über den Aufbau und die Befehlsstruktur des Prozessors (Befehlssatz, Aufbau, Register, ...), sowie der Peripherie die vorhanden ist (Register und Bedeutungen der einzelnen Bits)
mfg Hajoseb
**"Zufall ist das Pseudonym Gottes, wenn er nicht selbst unterschreiben will.” **
Anatole France
Außerdem solltest du zuerst Assembler lernen, um überhaupt zu verstehen, wie ein Prozessor funktioniert, sonst kannst du das imho vergessen. Du musst wissen was es für Register gibt, welche Befehler, welche Interupts, etc. Diese musst du alle nachbilden.
Gruß pdelvo
**"Zufall ist das Pseudonym Gottes, wenn er nicht selbst unterschreiben will.” **
Anatole France
Vergiss es wieder, selbst wenn du es schaffst die ARMv4T Architektur zu emulieren - was sicher nicht einfach wird, da mehrere Interrupts, zwei Befehlssätze, Coprozessor Interface, ... - so musst du, um mehr als nur simple Zähl-Schleifen zu emulieren, die Peripherals (Interrupt Controller, Power Controller, Timer, Serielle Interfaces, USB, ADC, ...) ebenfalls nachbilden.
Und selbst wenn du das alles schaffst, so musst du dir noch was einfallen lassen um die externe Hardware(Motoren, Sensoren, ...) mit deinem Emulator zu verbinden/steuern.
Hallo,
mir war schon vorher aufgefallen, das der AT91SAM7S ein relativ komplexer Prozessor ist. 8o
Wenn ich mal versuchen sollte, eine zu emulieren, sollte ich mir mal eine ganz simple raussuchen. 😉
Außerdem solltest du zuerst Assembler lernen, um überhaupt zu verstehen, wie ein Prozessor funktioniert, sonst kannst du das imho vergessen. Du musst wissen was es für Register gibt, welche Befehler, welche Interupts, etc. Diese musst du alle nachbilden.
Hab ich mir auch gedacht... 😁
mfg.
markus111
Hallo,
Allein das User Manual vom AT91SAM7S und das ARM Architecture Reference Manual haben zusammen knapp 2000 Seiten, also nichts was man mal so nebenbei macht.
Du kannst ja mit dem Z80 (Sega, GameBoy) anfangen ist sicher einfacher.
Hab da eine Idee ...
Wie funktioniert denn dein Lego NXT ???
Wie wäre es denn, die Befehle und Funktionen des Lego NXT zu emulieren, OHNE den Prozessor selber zu emulieren.
Ich kann mir nicht vorstellen, das Lego NXT in Assembler programmiert wird, sondern doch wohl eher mit diversen Befehlen, oder?
mfg Hajoseb
**"Zufall ist das Pseudonym Gottes, wenn er nicht selbst unterschreiben will.” **
Anatole France
Ich kann mir nicht vorstellen, das Lego NXT in Assembler programmiert wird, sondern doch wohl eher mit diversen Befehlen, oder?
Na ja - normalerweise wird der nicht in Assembler programmiert.
Sehr populär ist eine Drag&Drop-"Programmiersprache" (Mindstorms NXT - so heißt zumindest die "Entwicklungsumgebung").
Das Dateiformat, in dem die speichert ist aber vermutlich proprietär und nicht dokumentiert.
Daneben existieren noch ein paar weitere Compiler, u.A. auch für eine C Variante.
Letztendlich wird jedoch immer eine kompilierte Datei erzeugt.
Ich verwende auf meinen NXTs das RTOS nxtOSEK.
Ich wüsste jetzt überhaupt nicht wie man es dann emulieren solle....
mfg.
markus111