Reservieren von Speicher in den Flash-Speicher für Benutzerdaten (STM32F4 HAL)

Ich versuche, verwenden Sie den internen Blitz, ein STM32F405 zum speichern von ein paar Benutzer einstellbare bytes, bleiben nach dem Neustart.

Ich bin mit:

uint8_t userConfig[64] __attribute__((at(0x0800C000)));

reservieren von Speicher für die Daten, die ich speichern möchten.

Wenn das Programm startet, ich überprüfen, um zu sehen, ob das erste byte gesetzt ist 0x42, wenn nicht, habe ich es mit:

HAL_FLASH_Unlock();
HAL_FLASH_Program(TYPEPROGRAM_BYTE, &userConfig[0], 0x42);
HAL_FLASH_Lock();

Danach überprüfe ich den Wert in userConfig[0] und ich sehe 0x42... Toll!

Wenn ich drücken Sie reset, jedoch, und betrachten Sie die Lage wieder, es ist nicht 0x42 mehr...

Irgendeine Idee, wohin ich gehe falsch gemacht? Ich habe auch versucht:

#pragma location = 0x0800C00
volatile const uint8_t userConfig[64]

aber ich bekomme das gleiche Ergebnis..

InformationsquelleAutor HammerFet | 2015-02-13
Schreibe einen Kommentar