Probleme mit flashen

Gast #2763806
Hallo Leute,

ich habe in Sachen Mikrocontroller durch mein Praxissemester etwas 
Erfahrungen gesammelt, aber diese mit PICS. Nun beschäftige ich mich mit 
AVR und hatte vor kurzem ein Problem. Dabei ging es darum, dass ich 
einmal programmieren konnte und beim zweiten mal nicht mehr. Durch diese 
Seite habe ich den Tipp erhalten an den MCLR ein Pull down Widerstand 
anzubringen, damit der Clock nicht weiterlaufen kann und somit der Flash 
gelöscht werden kann. Dadurch konnte ich dieses Problem beheben, doch 
wenn ich wieder programmiere, kann wieder nicht ein zweites mal 
programmieren. Das mit dem Pull down Widerstand ist zwar sehr hilfreich, 
aber trotzdem ist es ja ziemlich umständlich jedes mal den Flash zu 
löschen und neu zu programmieren. Daher meine Frage, ob vllt mein ISP 
frequency nicht richtig ist oder so. Ich hoffe, dass mir jemand helfen 
kann.

Gruß Paarthurnax
Paarthurnax schrieb:
> aber trotzdem ist es ja ziemlich umständlich jedes mal den Flash zu
> löschen und neu zu programmieren

Wenn du den Flash vor jedem Programmieren nicht Löschen willst, 
passsieren komische Sachen. Ein gelöschtes EEPROM und somit auch ein 
Flashspeicher enthält 0xFF an jeder Speicherstelle. Nicht Programmierte 
Bits sind "1"; Programmierte Bits sind "0". Man kann nur "auf 0 
programmieren" und generell nur "auf 1" löschen. Einzelne Bits lassen 
sich nicht "von 0 auf 1 umbiegen".

Ein Beispiel:
Vorher gelöscht und was neues rein geflasht:
Vorher          0xFF = 0b11111111
Programmiert    0x12 = 0b00010010
Ergebnis        0x12 = 0b00010010 => OK

Nicht gelöscht, sondern gleich was drübergebügelt:
Vorher          0x12 = 0b00010010
Neues Programm  0x43 = 0b01000011
Ergebnis        0x02 = 0b00000010 => Nicht OK

Darum empfiehlt sich ein "erase" vorm flashen und ein "verify" danach. 
"Kluge" Programmiertools lassen sich konfigurieren, diese Aktionen 
automatisch durchzuführen oder lassen sich z.B. mit einem batch- oder 
shell-Script oder mit make bedienen, um das zu automatisieren.

mfg mf

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.