Guten Abend. Ich arbeite an einem kleinen Programm, welches einen µController "vorgaukelt", der garnicht vorhanden ist, um das Programm aus zu lesen. In verwendung ist aktuell ein ATmega644, welcher vorgaukelt er selber zu sein, obwohl ich vermute dass die ISP Befehle nicht so unterschiedlich sein werden. Während ich nun nach und nach das Programm erweitere kommt eine Stelle welche ich nicht ganz verstehe: Nach löschen das Speichers wird zunächst ein Teil des Speichers ausgelesen. Warum?, Wofür? Wenn ich hier Daten herausgebe, welche eigentlich bedeuten würden, dass der Speicher nicht gelöscht wurde macht das Programm ganz normal weiter. Ich habe angehängt die Daten, welche in den Controller gehen. Zum besseren finden der "Befehle" habe ich ein paar Symbole einfügen lassen, welche allerdings erst nach den ersten zwei Bit kommen ;) "-" Read Program Memory, Low Byte "+" Read Program Memory, High Byte "l" Load Program Memory, Low Byte "h" Load Program Memory, High Byte "W" Write Program Memory Page "n" Letzter Befehl vorbei, jetzt nächster <- ist genau dazwischen Meine Frage bezieht sich auf die "-" und "+" vor den ersten "l" und "h" sowie die mittendrinne. Wäre super, wenn jemand da bescheid weiß. Edit: "P" steht für Polling. -Der Programmer fragt nach ob der Controller fertig ist. "R" steht für den ResetPin. Auch interessant finde ich, das beim letzten schreiben nochmal die gleichen Adressen beschrieben werden wie beim vorletzten mal, nur mit anderen Werten ...
:
Bearbeitet durch User
Michael D. schrieb: > Nach löschen das Speichers wird zunächst ein Teil des Speichers > ausgelesen. > Warum?, Wofür? Z.B. um festzustellen, ob das Löschen geklappt hat. Da ausserdem im gelöschten Speicher alle Bits auf "1" stehen, und nur Nullen programmiert werden, wäre es zwar möglich daraus eine Hex 55 z.B. in 54 oder 00 umzuprogrammieren, aber ein Versuch dort 57 hin zu programmieren ist von vornherein zum Scheitern verurteilt.
> Z.B. um festzustellen, ob das Löschen geklappt hat. Das war zunächst auch meine Vermutung... > Wenn ich hier Daten herausgebe, welche eigentlich bedeuten würden, dass > der Speicher nicht gelöscht wurde macht das Programm ganz normal weiter. Ich muss mal nachschauen wie ein "echter" Mikrocontroller auf diese Anfrage reagiert und da wirklich nur "0xFF" raus kommen. Wäre natürlich kein Problem für mich einfach den theoretischen Speicherinhalt aus zu geben, möchte nur auch gerne wissen, warum diese Aktion an dieser Stelle (das gleiche auch nochmal vor dem letzten Schreiben) ausgeführt wird.
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.