[STM32] Speicherbereich nicht lesbar

Gast #6029521
Lesenswert?

Hallo zusammen,

ich habe einen Teil des Flashs eines STM32H743 für das nichtflüchtige 
Speichern einiger Programmdaten vorgesehen, d.h. sie werden alle paar 
Stunden geschrieben. Jetzt kann ich plötzlich, nachdem es einiege Zeit 
lang funktionierte, einen bestimmten Speicherbereich nicht mehr lesen. 
Die Speicherung erfolgt inkrementell, d.h. der nächste freie 
Speicherbereich wird beschrieben und alles gelöscht wenn der Sektor voll 
ist. Der aktuelle Bereich ist bisher nur ein einziges Mal beschrieben 
worden, es sollte daher also keine Verschleißerscheinung sein. Alles vor 
und hinter diesen paar Bytes ist aber weiterhin lesbar, es handelt sich 
also nur um diese paar Bytes. Im Bild kann man sehen, dass der 
Memory-Browser an diesen Stellen nur Fragezeichen anzeigt. Ich kann 
nicht ausschließen, dass das letzte Speichern der Daten in irgendeiner 
Weise unterbrochen wurde oder Fehlgeschlagen ist. Hat jemand so etwas 
schonmal gesehen? Kann man verhindern, dass der Prozessor dann direkt in 
einen Hard Fault geht?
Angehängte Dateien:
Gast #6029797
Lesenswert?

Natürlich ist der Speicherbereich "lesbar". Es kann nur sein, dass bei 
Lesen ein ECC-Fehler auftritt (Einbit oder Mehrbit). Dabei wird aber nur 
ein Flag im Flash-Statusregister gesetzt und - falls nicht maskiert - 
ein Interrupt erzeugt. Vermutlich ist der also zwar eingeschaltet, aber 
der Interrupt-Handler nicht da oder der erzeugt absichtlich einen 
HardFault.

Da immer ganze 32-Byte-Blöcke über ECC gesichert werden, darf man beim 
Schreiben nätürlich jeden dieser Blöcke nur EINMAL beim Programmieren 
"anfassen". Und wenn während der Schreiboperation etwas schiefläuft, ist 
mindestens der Inhalt dieses kompletten Blocks hinüber ...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren