Hallo,
Ich scheitere derzeit daran, eine komplette 512 Byte Page der flash zu
beschreiben. Der nachfolgende Code schreibt in die ersten 2 Byte auf
jeder Page 0x00. Ich verstehe nicht,warum.
void ReadAndWriteFlash(void)
{
/* Assume success until proven otherwise. */
bool success = true;
PMIC_SetVectorLocationToBoot();
/* Fill the entire application section of the flash memory with bogus
data */
for (uint32_t address = 0; address < APP_END;
address+=FLASH_PAGE_SIZE) {
/* Load flash buffer with data */
ClearFlashBuffer(); //Clear the flash buffer first to avoid data
corruption
for (uint16_t i = 0; i < FLASH_PAGE_SIZE; i += 2) {
uint8_t lowByte = i;
uint8_t highByte = i+1;
LoadFlashWord((uint32_t)i, ((uint16_t) highByte << 8) | lowByte);
SP_WaitForSPM();
PORTE.OUTTGL = 0x01;
}
/* Perform erase-page write. */
EraseWriteApplicatioPage(address);
Hallo, hat niemand eine Idee oder Erfahrungen mit diesem code, der von Atmel zur Verfügung gestellt wurde? Mir ist rätselhaft, warum dieser Code nur das erste Word jeder 512 Byte Page beschreibt. Und dann noch mit 0x00... Habe den Code im Rahmen eines Bootloaders in der Bootloader Section getestet. Gruss JSC
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.