Servus,
ich benutze einen ATSAM3S2B Cortex-M3 Controller und möchte einige
Settings im internen Flash speichern. Ein EEProm gibt's ja nicht.
Hierzu habe ich ein Array definiert, das an Adresse 0x41C300 im Flash
liegt (Page 451 von 512).
Die Atmel ASF bietet für Zugriffe auf's Flash ja nun die NVM Library an,
und diese dann die Funktion "nvm_write".
Leider scheint diese Funktion gern mal zu hängen, was dann zu einem
totalen Lock des Systems führt.
Da es manchmal funktionierte, habe ich schon an Interrupts gedacht,
aber selbst wenn ich diese vor dem nvm_write deaktiviere, lockt das
system.
Mein Aufruf:
1 | cpu_irq_enter_critical();
|
2 | nvm_write(INT_FLASH, (uint32_t)&myData, (void *)(&payload[9]), 256);
|
3 | cpu_irq_leave_critical();
|
Payload ist dabei ein Array, das die zu schreibenden Daten enhält
(uint8_t payload[7680]. MyData ist das Array an Adresse 0x41C300.
Kenn jemand das Problem oder einen Workaround?
Gruß
Fabian