IAP mit LPC2xxx

Gast #647309
Lesenswert?

Hallo Leute,

ich will daten im Flash meines LPC2148 ablegen.
Die entsprechenden Funktionen für den IAP zugriff zum Vorbereiten und 
schreiben habe ich auch scshon implementier. Diese Funktionieren auch.

Was mir allerdings noch nicht gelingt, ist diese Daten wieder zu lesen.

Wie geht das ? Gibt es da einen Trick, oder denke ich zu kompliziert ?

Viele Grüße
Gast #647330
Lesenswert?

Nee denke du hast mich richtig verstanden.

Dann war meine Idee eigentlich auch in die richtige richtung,
nur die umsetzung schein noch nicht ganz zu stimmen.

Habe es wie folgt probiert.

-->

#define IAP_LOCATION 0x7FFFFFF1
#pragma location=IAP_LOCATION
__no_init Int8U flashDisk[512];

wenn ich deann flashDisk[0] oder so lese müsste es doch auch gehen.
Oder.

Werde mal deine Variante probieren.
Gast #647338
Lesenswert?

Du hast recht.

#define IAP_LOCATION 0x80000000.

Funktionieren tut es trotzdem nicht :-(

Hier mal noch ein stück mehr code....

1
Int32U value;
2
    Int32U* p = (Int32U*)0x80000000;
3
    
4
    Int8U vektor[512];
5
    memset (vektor, 'X', 512);
6
    
7
    
8
     iap_entry=(IAP) IAP_LOCATION;
9
    // prepare for write operation
10
    command[0] = 50;
11
    command[1] = 0;
12
    command[2] = 1;
13
    iap_entry(command, result);
14
    
15
    // copy  ram to flash
16
    command[0] = 51;
17
    command[1] = 0x80000000;
18
    command[2] = (Int32U)vektor;
19
    command[3] = sizeof(vektor);
20
    command[4] = 60000;
21
    iap_entry(command, result);
22
    
23
    value= *p

noch eine idee warum das nicht geht ?
Gast #647390
Lesenswert?

Nun ja.... asche auf mein Haupt.

Im Bereich 0x80000000 kann ich natürlich nix lesen und schreiben, wenn 
der flash in den Bereich ab 0x1000 gemapt ist !

--> Jetzt funktioniert es.

Danke für die Unterstützung !

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