Przecież Eclipse to nawet nie jest kompilator. Więc co za różnica?
Tak samo jak wszędzie.
Ja mam tak:
MEMORY
{
rom (rx) : org = 0x00000000, len = 500k
eeprom (rx) : org = 0x0007D000, len = 4k
ram (rwx) : org = 0x40000000, len = 64k
sdram0 (rwx) : org = 0xA0000000, len = 16384k /* External SDRAM Bank0: 16M */
}
__rom_start = ORIGIN(rom);
__rom_size = LENGTH(rom);
__rom_end = __rom_start + __rom_size;
__eeprom_start = ORIGIN(eeprom);
__eeprom_size = LENGTH(eeprom);
__eeprom_end = __eeprom_start + __eeprom_size;
__ram_start = ORIGIN(ram);
__ram_size = LENGTH(ram);
__ram_end = __ram_start + __ram_size;
__sdram0_start = ORIGIN(sdram0);
__sdram0_size = LENGTH(sdram0);
__sdram0_end = __sdram0_start + __sdram0_size;
PROVIDE(__rom_start = __rom_start);
PROVIDE(__rom_size = __rom_size);
PROVIDE(__rom_end = __rom_end);
PROVIDE(__eeprom_start = __eeprom_start);
PROVIDE(__eeprom_size = __eeprom_size);
PROVIDE(__eeprom_end = __eeprom_end);
PROVIDE(__ram_start = __ram_start);
PROVIDE(__ram_size = __ram_size);
PROVIDE(__ram_end = __ram_end);
PROVIDE(__sdram0_start = __sdram0_start);
PROVIDE(__sdram0_size = __sdram0_size);
PROVIDE(__sdram0_end = __sdram0_end);
po za tym już nic więcej nie robiłem.
Po prostu nadaję atrybut tablicom i trafiają one do odpowiedniej sekcji.
Oczywiście te w sekcji sdram będą nieinicjalizowane, a te w sekcji eeprom nie trafią do wsadu procesora (będą jedynie zapisywane i odczytywane przez program).
U Was trzeba będzie jeszcze coś dodać, ale co to nie wiem
