ATXmega256a3 flashpage Probleme

OP (Firma: Vispiron) #1412513
Hallo,
wir nutzen die Beispiele von AVR und haben Probleme beim beschreiben der 
flashpages (flashpagegröße 256) und zwar ist es uns nur möglich "gerade" 
Adressen zu beschreiben.

In den beiden Screenshots im Anhang sieht man einmal das korrekte 
Beschreiben an der Adresse 0x400 und zum Anderen den erfolglosen Versuch 
an der Adresse 0x300. In dem Fall wird die page seltsamerweise 
automatisch an die Adresse 0x200 geschrieben.

Hat jemand es erfolgreich geschafft bei einem xmega256a3 z.B. an die 
Adresse 0x100 zu schreiben?

Für Codeschnipsel bzw. Hinweise wären wir sehr dankbar.

Peter

Hier noch der Code, der hierzu ausgeführt wird:

flashPosition = 0x300
1
void our_write_function(uint32_t flashPosition)
2
{
3

4
   
5
   SP_WaitForSPM();
6
   SP_EraseApplicationPage(flashPosition);
7
   SP_WaitForSPM();
8
   SP_WriteApplicationPage(flashPosition);
9
   SP_WaitForSPM();
10
   // RWW-Section o.ä. reenable?? Fixme
11

12
}
Angehängte Dateien:
OP (Firma: Vispiron) #1413359
Hi Simon!
Ja, die AppNotes sind bekannt und genauso wie der Beispielcode AVR1316 
für jeden der ähnliche Probleme hat eine echte Bank (inkl. der Treiber 
sp_driver.h mit quellcode in sp_driver.s).

Ich konnte das Problem heute mit einem Kollegen beheben.
Entscheidend war die FLASH_BLOCK_SIZE auf 512 Bytes zu stellen UND in 
unserem existierenden Bootloadercode einen Datentyp zu ändern.
Wir hatten bisher den Bootloader für einen ATMEGA laufen mit einer 
Flashblockgröße von 256 Bytes. Genutzt wurde boot_pagefill aus der 
boot.h.
Wir hatten sorglos zum Funktionsaufruf auf uint8_t gecastet. Das ist uns 
beim Xmega zum Verhängnis geworden, da mit den 8-Bit nur die erste 
Hälfte der Bootpage beschrieben wird. Ansonsten ist die Funktionsweise 
der AVR1316-Funktion SP_LoadFlashWord praktisch gleich gegenüber 
boot_pagefill.

Dank und Gruß, Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.