Forum: Compiler & IDEs Varriable im LPC2148 flash ablegen


von Marco (Gast)


Lesenswert?

Hi,
ich versuche auf dem lpc2148 ein paar Varriablen im Flash abzulegen.
Das schreiben ins Flash wollte ich folgendermassen realisieren:

Header:

/* IAP commands and varriables for flash programming */
// IAP start location on flash
#define IAP_LOCATION  0x7FFFFFF1
// contains parameters for IAP command
unsigned long iap_command[5];
// contains results, returned by "Blankcheck sector(s)"
unsigned long iap_result[2];
// typedefinition for IAP entry function
typedef void (*IAP) (unsigned long[],unsigned long[]);
IAP IAP_Entry;

.c File:

void IAP_Write (void)
{
  // setting function pointer
  IAP_Entry = (IAP) IAP_LOCATION;
  // IAP write command for prepare sectors for write
  // set command code
  iap_command[0] = 0x5010;
  // set start sector number
  iap_command[1] = 0x00070000;
  // set stop sector number
  iap_command[2] = 0x00070001;
  // these parameters not in use
  iap_command[3] = 0;
  iap_command[4] = 0;
  // prepare sectors for write
  IAP_Entry(iap_command,iap_result);

  // Copy RAM to Flash
  // set command code
  iap_command[0] = 0x5110;
  // destination flash where data byte to be written
  iap_command[1] = 0x00070000;
  // source RAM address where data bytes are to be read
  iap_command[2] = (unsigned long)&test;
  // number of bytes to be written
  iap_command[3] = 256;
  // set system clock frequency, unit kHz
  iap_command[4] = 60000;
  // prepare sectors for write
  IAP_Entry(iap_command,iap_result);
}

Wobei ich die Varriable unsigned char test im Falsh ablegen wollte.
Ausser stillzustehn macht das Programm allerdings nichtsmehr.
Kann mich jmd auf meine groben Denkfeheler hinweisen und/oder mir einen 
Beispiel code posten?!?

mfg
Marco

von Marco (Gast)


Lesenswert?

Ich habe meine erstere Idee verworfen und nun folgendes aus einem 
unteren Thread abgekuckt:

unsigned char test _attribute_ ((section (".mySection"))) = 48;

mit dem Linker aufruf:

arm-elf-ld -v -S -M -section-start=.mySection=0x00020000

Sollte ich mein Programm jetzt allerdings auf den µC laden macht dieser 
dannach nichtsmehr...
Irgendjemand ne Idee?

mfg
Marco

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.