Indeed using NOLODAD solved the problem.
it took me some time to figure out how to use it so here is the linker script on external rams, if someone needs it and don’t like to read the linker tutorial…
<hr />
MEMORY
{
FLASH (RX) : ORIGIN = 0x08040000, LENGTH = 1792K
SRAM (RWX) : ORIGIN = 0x20000000, LENGTH = 192K
CCMRAM (RWX) : ORIGIN = 0x10000000, LENGTH = 64K
NVRAM (RWX) : ORIGIN = 0x40024000, LENGTH = 4K
SDRAM (RW) : ORIGIN = 0xC0000000, LENGTH = 8M
}
_estack = 0x20030000;
SECTIONS
{
.sdram (NOLOAD):
{
*(SD_ram*);
*(SD_ram);
} > SDRAM
.nvram (NOLOAD) :
{
*(NV_ram*);
*(NV_ram);
} > NVRAM
.ccram (NOLOAD) :
{
*(CCM_ram);
} > CCMRAM