Forum: Mikrocontroller und Digitale Elektronik XC2287: Schreibzugriff auf Flash?


von Jaecko (Gast)


Angehängte Dateien:

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

von Ronny S. (ronnyschulze) Flattr this


Lesenswert?

Hey,

zur ersten Frage: Infineons interne Flash sind alle 0x00 nach dem 
löschen im Gegensatz zu externen Flashes.

Hast du Dir mal angesehen ob der Flash 0x00 nach dem löschen ist?

von Jaecko (Gast)


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.

von Rothaus B. (tannenzaepfle)


Lesenswert?

Hi Jaecko,

bin auch gerade dabei paar Lösch- und Schreibroutinen zu bauen.
Stellst Du Dein Code der Allgemeinheit zur Verfügung?
Würde die Arbeit sehr beschleunigen.
Besten Dank schon mal.

von Marco G. (stan)


Lesenswert?

Ich hätte auch Interesse an den Routinen.
Gibt es dazu eine AppNote oder nur die normalen Datenblätter? Die sind 
etwas dürftig bzgl. der Vorgehensweise beim Flashen.

von Ronny S. (ronnyschulze) Flattr this


Lesenswert?

hey,

falls Ihr Keil benutzt schaut mal unter dem Verzeichnis: 
..\Keil\C166\Flash\XE16x nach. Dort befinden sich die Flash Treiber 
Sourcen für den XE166 in C... (FlashDev.c)

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
Noch kein Account? Hier anmelden.