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
G4 Flash ist ECC geschuetzt. Damit geht uberschreiben nicht mehr. Ausnahme ist das Null setzen, RM0440 3.7.5 Flash status register (FLASH_SR), Erklaerung zu Bit 3 PROGERR: Programming error
Wenn du genug Flash hast, könntest du auch die Hälfte auf bspw 0 oder FFFFFFFF lassen, also immer 64 bit schreiben mit 32 bit Nutzdaten. Dann muss nur dein Schreib- und dein Auswertealgorithmus angepasst werden bzgl. Datenoffsets. Gegen dauerndes Page-Erase hätte ich auch was.
Externes NOR-Flash ist Byte-weise beschreibbar und, im Verhältnis zum internen Flash, unkaputtbar. Durch den Wechsel vom STM32F zum G ändern sich sowieso ein paar Pins...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.