Cortex M3 , Flash mit Daten vorbelegen

Gast #3278721
Lesenswert?

hi

ich nutze den Flash meines LPC1768 als emulierten EEPROM.
nun möchte ich eine paar Daten an eine bestimmte adresse ablegen die 
auch gleich mitgeflasht werden sollen.

zur Laufzeit komme ich ohne Probleme an die Daten und kann diese auch 
manipulieren.
Nur die "Erstbelegung" funktioniert im moment nicht.

beim AVR ging das relativ entspannt für den EEPROM mit
1
uint8_t foo[16] EEMEM={
2
  [ADRESS  ]  = 0x01,
3
  [ADRESS+1]  = 0x02,   
4
  [ADRESS+2]  = 0x03...
5
};

gibts sowas auch für den ARM im FLASH adressbereich?
oder bleiben nur die
1
const uint8_t array[] __attribute__ ((section("xxx"))) = {};
mit angepastem linkerscript?


IDE ist CoIDE mit GCC 4.7


danke
Gast #3279878
Lesenswert?

hi

weiß nicht ob das so richtig ist ...
bin in sachen linker nicht so fit, habe bisher nur die automatischen 
sachen genutzt.
1
MEMORY
2
{
3
  rom  (rx)   : ORIGIN = 0x00000000, LENGTH = 480K
4
  rom1  (rx)  : ORIGIN = 0x00078000, LENGTH = 32K
5
  ram  (rwx)  : ORIGIN = 0x10000000, LENGTH = 32K
6
  ram1 (rwx)  : ORIGIN = 0x2007C000, LENGTH = 32K
7
}
8

9
SECTIONS 
10
{ 
11
    .eeprom : ALIGN(4);
12
    {    
13
  *(.eeprom)
14
  . = ALIGN(4);
15
    } > rom1   
16
...
17

18

19
in der main dann über: 
20
__attribute__((__section__(".eeprom"),used))

in der .map liegt das array jedoch woanders ...
1
.rom1           0x00016ac0       0x10

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