Beim F205 (im PM0059) heisst es:
1 | Successive write operations are possible without the need
|
2 | of an erase operation when changing bits from ‘1’ to ‘0’.
|
3 | Writing ‘1’ requires a Flash memory erase operation.
|
Und genau das ist hier wohl passiert, d.h. der Boot Loader schreibt ein
Wort auch mehrmals. Mit OTP-EPROMs hat mir der Trick schon mal ein paar
Chips gerettet, aber ich dachte, bei Flash macht man sowas nicht.
Mal angenommen, für eine Null wird ein isoliertes Gate aufgeladen. Dann
wird es beim Überschreiben irgendwann überladen - das kann nicht gesund
sein. Aber dank eurer Forschungsarbeit gehe ich jetzt mal davon aus,
dass mein F205 das Überschreiben verträgt und es bei anderen Chips von
der Hardware ggf. verhindert wird. Dankeschön!
Meine Panik kam daher, dass es "plötzlich" einen CRC-Fehler gab, aber
das ist geklärt. Ein Bit-für-Bit Vergleich vom Flash-Inhalt liefert
keinen Beweis, aber starke Indizien: das eigentliche Program ist
unverändert, von den 32 CRC-Bits stehen nur noch 4 auf Eins und ein
Zeitstempel sagt, die Änderung passierte, während ich unterwegs zum
Baggersee war :)
Und das alles wegen einer kosmetischen Änderung von einem Datentyp, der
in dem Programm garnicht benutzt wird. Aber ein Headerfile ist neu und
also muss neu gebaut werden...