Hi,
here is the example:
In linker file I added myROM and myRAM segment:
MEMORY
{
resetvector: org = 0x00000000, len = 0x00000008
init: org = 0x00000020, len = 0x00000FE0
exception_handlers: org = 0x00001000, len = 0x00001000
internal_flash: org = 0x00002000, len = 0x000FD000
myROM: org = 0x000FF000, len = 0x00001000
internal_ram: org = 0x40000000, len = 0x00011000
myRAM: org = 0x40011000, len = 0x00001000
heap : org = 0x40012000, len = 0x00001000
stack : org = 0x40013000, len = 0x00001000
}
Then use this syntax in SECTION:
SECTIONS
{
...
.myRAM BIND(ADDR(myRAM)) LOAD (ADDR(myROM)): {} > myRAM
...
}
And then in *.c file:
#pragma push
#pragma section sdata_type ".myRAM" ".myRAM"
unsigned int my_var1 = 0x11223344;
unsigned int my_var2 = 0xAABBCCDD;
unsigned int my_var3 = 0x55556666;
#pragma pop
The initial values will be copied during startup from myROM to variables in myRAM.
Regards,
Lukas