32bit Daten ins Flash eines STM32G4xx schreiben

Gast #6771049
Lesenswert?

Sevus,

ich hätte da mal ein Problem, und zwar bin ich gerade von einem 
STM32F3xx auf einen STM32G4xx umgestiegen, und passe derzeit meine FW 
an.
In dem Programm werden 32bit Werte in das Flash geschrieben. Nun kann 
man auf den STM32G4 leider nur noch 64 bittig schreibend auf das Flash 
zugreifen.

Daher war meine Idee jewils 64bit zu schreiben und jeweils die ersten 
oder zweiten 32 bit aufgefüllt entwerder vorne oder hinten mit 
0xFFFFFFFF zu schreiben. Dabei ist mir aufgefallen dass sobald eine 
64bit Adresse einmal beschrieben ist diese erst nach einem page erase 
wieder beschreibbar ist.
Also nicht so das man einzelne Bits "nach unten" kippen kann.

An einigen Stellen des Programms kann ich einfach 2 x 32bit Werte 
zusammenfassen, leider ist dieses jedoch nicht überall möglich da die 
Daten teilweise auch über eine Schnitstelle (welche ich nicht in der 
Hand habe) übertragen werden. Hier müssen die Adressen nicht aufeinander 
folgend sein, und ich kann auch nicht sagen ob es eine gerade oder 
ungerade Anzahl von Daten sind. Des Weiteren bekomme ich an dieser 
Stelle auch nicht mit wenn die Daten vollständig übertragen wurden.


Mir fällt jetzt nur die Möglichkeit ein, bei jedem 32bit Wert der 
eingetragen wird
- die gesammte Page in den Ram laden
- Flashpage löschen
- den einen Wert im Ram neu zu setzen
- Ram in den Flash schreiben.

Das wiederstrebt mir aber massiv, hat jemand vieleicht doch noch einen 
Hack mit dem ich die 32bit Werte in das Flash schreiben kann?

Vielen Dank schon mal für eure Hilfe

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