This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Placement fails for .far object, doesn't fit in L2SRAM - C6678

Hi,

I'm having problems with placement of object 'far' using C6678, the project is not built and I get the following message in the console:

"./configPkg/linker.cmd", line 136: error #10099-D: run placement fails for
   object ".far", size 0x33ab7e (page 0).  Available ranges:
   L2SRAM       size: 0x80000      unused: 0x5d5e4      max hole: 0x5d5e4

What I've done so far:

1 - Edited the platform and changed the Code Memory, Data Memory and Stack Memory to DDR3. The default heap is in DDR3 too.

2 - Added these two lines in the .cfg file:

Program.sectMap[".far "]="DDR3";
Program.sectMap[".fardata "]="DDR3";

3 - Created other linker file (myLinker.cmd) like this:

SECTIONS
{
    .far : load >> DDR3
    .fardata : load >> DDR3
}

After these changes I get the same error message, and linker.cmd file automatically generated by CCS is:

SECTIONS
{
    .text: load >> L2SRAM
    .ti.decompress: load > L2SRAM
    .stack: load > L2SRAM
    GROUP: load > L2SRAM
    {
        .bss:
        .neardata:
        .rodata:
    }
    .cinit: load > L2SRAM
    .pinit: load >> L2SRAM
    .init_array: load > L2SRAM
    .const: load >> L2SRAM
    .data: load >> L2SRAM
    .fardata: load >> L2SRAM
    .switch: load >> L2SRAM
    .sysmem: load > L2SRAM
    .far: load >> L2SRAM
    .args: load > L2SRAM align = 0x4, fill = 0 {_argsize = 0x0; }
    .cio: load >> L2SRAM
    .ti.handler_table: load > L2SRAM
    systemHeap: load >> DDR3
    .far : load >> DDR3
    .fardata : load >> DDR3
    .vecs: load >> L2SRAM
    xdc.meta: load >> L2SRAM, type = COPY

}

Why the linker still has instructions to place .far and .fardata in L2SRAM (yellow background)?

What another solution can I try?

Thanks in advance.

Johannes

  • Johannes

    You are attempting to simultaneously use a RTSC .cfg file, which autogenerates a linker command file (linker.cmd) based on your platform and cfg file, as well as your own linker command file (mylinker.cmd). Please go through http://rtsc.eclipse.org/docs-tip/Memory_Management for an explanation on RTSC configuration and memory management. Please remove myLinker.cmd from your project, clean the project, and rebuild.