Hi, I have the following problem: I can't modify the "linker script" to fit the memory map a would. I'm using GNU CCompiler and linker (ld.exe)RedHat (V.3.3.1 for ARM). I've developped a board with a microprocessor LPC2214 and now i'm debugging code. I would map memory as follow: address 0x00000000: code memory; address 0x40000000: internal unitialized data memory; address 0x81000000: external initialized data memory; So, since at 0x81000000 I have an external backupped 8bit Sram i would like to put there only variables that I really need to backup (I have a file called "tamp.o" containing all these vars), leaving at 0x40000000 (internal ram) all the others unitialized data memory. Using the original linker script (flash.ld) all data are within area at 0x40000000. Starting from that script, could someone suggest me the way to map only the "tamp.o" vars at address 0x81000000 ? I can just move most of vars from 0x40000000 to 0x81000000 but i can't split them between "tamp.o" and all the others. Thank you.
Take a look to the example Keil\ARM\GNU\Examples\Memory that comes with the Keil DKARM. It shows you how to split memory. An alternative to GNU is the Keil CARM Compiler. The linker provides user classes which make it very simple to split variables accross modules.