LPC2148 - IAP - Copy Ram To Flash

OP (Firma: andreas-weschenfelder.de.vu) Persönliche Seite #611278
Lesenswert?

Hallo zusammen,

ich bin dabei verschieden iap-funktionen zu implementieren.

das auslesen der part-id, der boot-code-version, blank-check und erase 
funktioniert bereits.

mit der funtktion "copy_ram_to_flash" habe ich probleme. als rueckgabe 
erhalte ich immer "SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION" obwohl, ich 
die dazugehörige funktion erfolgreich aufrufe...

vielleicht habt ihr ja ne idee.
Angehängte Dateien:
Gast #611494
Lesenswert?

Ich habe die write Funktion so gelöst:
vielleicht hift es:

INT8U write_flash(INT32U Start, INT32U Stop, void* dest, void* source, 
INT32U size)
{
    INT32U cpsr;
    MEMMAP = MEMMAP_FLASH;
    cpsr = disableIRQ();    // disable global interrupts
    iap_entry=(IAP) IAP_LOCATION;
    //prepare sector
    command[0] = 50;
    command[1] = Start;
    command[2] = Stop;
    iap_entry(command, result);
        if(result[0])
            return result[0];
    //write sector
    command[0] = 51;
    command[1] = (unsigned int)dest;
    command[2] = (unsigned int)source;
    command[3] = size;
    command[4] = CCLK/1000;
    iap_entry(command, result);
        if(result[0])
            return result[0];

    #if defined(RAM_RUN)
  MEMMAP = MEMMAP_SRAM;                 // map interrupt vectors space 
into SRAM
  #elif defined(ROM_RUN)
  MEMMAP = MEMMAP_FLASH;                // map interrupt vectors space 
into FLASH
  #else
  #error RUN_MODE not defined!
  #endif
    enableIRQ();
    return result[0];
}
Gast #616025
Lesenswert?

> lag tatsächlich am nicht gelöschten sektor. meine sektor-berechnung aus
> der adresse war falsch, sodass ich den falschen sektor gelöscht bzw. mit
> blank-check überprüft habe...
wenn man vorher nicht löscht, kann man trotzdem schreiben, allerdings 
nur die 0-bits ;)
aber du meinst sicher das 'prepare command'

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