Forum: Mikrocontroller und Digitale Elektronik Warum ließt AtmelStudio vor Programmieren?


von Michael D. (etzen_michi)


Angehängte Dateien:

Lesenswert?

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
von lrep (Gast)


Lesenswert?

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.

von Michael D. (Gast)


Lesenswert?

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