XC2287: Schreibzugriff auf Flash?

Gast #1024260
Lesenswert?
• ▲
▼
Moin.

Ich versuche gerade für eine Anwendung Codestücke zusammenzustellen, mit 
der man den internen Flash des XC2287 löschen/neu beschreiben kann.

Im Anhang sind die bisherigen Befehle; Die Zugrifssequenzen sind 
(hoffentlich richtig) aus dem Datenblatt übernommen.

Schon mal die erste Frage: Hat eine gelöschte Page überall den Wert 0x00 
oder 0xFF? Bei den Atmels ist der gelöschte Flash ja 0xFF; sag ich hier 
Erase, ist die Page komplett 0x00.

Neue Daten (mit der folgenden Befehlssequenz) kann ich dann nur in Pages 
schreiben, in denen vor dem Erase schon Daten waren.
1
// Array 0, Sector 0, Page 1
2
ui32_t pagetestaddr = FLASH_GetPageAddress(0, 0, 1);
3

4
FLASH_PageErase(pagetestaddr); 
5
FLASH_EnterPageMode(pagetestaddr);
6
for (pagedata = 0 ; pagedata < 64 ; pagedata++)
7
{
8
  FLASH_LoadPageWord(pagetestaddr, 0xAA55);
9
}
10
FLASH_ProgramPage(pagetestaddr);

Vergleiche ich den "alten" Inhalt mit dem, was eigentlich drinstehen 
sollte (0xAA55), dann sieht das so aus:
(Oben vor dem Erase, unten nach dem neu beschreiben)

4AB5 B5B5 881A 0302 F0E6 8220 881A 0303 F0E6 8240 881A 0300 F0E6 8200 
F9E6 00C1 F8E6 063E 18F0 1970

0A15 A015 8810 0200 A044 8200 8810 0201 A044 8240 8810 0200 A044 8200 
A844 0041 A844 0214 0850 0850

Kennt jemand dieses Problem bzw. weiss, was ich da übersehen hab?

mfG
Angehängte Dateien:
Gast #1118738
Lesenswert?
• ▲
▼
Naja mittlerweile hat sich das Problem soweit eh schon erledigt.
Also der Flash ist korrekterweise 0x00.
Ich hab komplett neue Routinen, Löschen, Schreiben, Lesen läuft damit 
perfekt und es steht auch genau das drin, was rein soll.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren