Warum ließt AtmelStudio vor Programmieren?

OP #4160990
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 ...
Angehängte Dateien:
Gast #4161018
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.
Gast #4161185
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.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.