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.

Link fails when linking server codec engine examples after resizing memory

Other Parts Discussed in Thread: OMAP3530

6758.all_x64Pcfg_cmd.txt5037.all_evm3530_tci.txtDear sir

I am using the codec examples environment. (one of the codec, e.g., image_copy). My environment is Linux/ARM/OMAP3530. I am tring to increase DDR2 segment size (on favour of the DDRALGHEAP section). So I edited the all_evm3530.tci file as in the attached file: DDRALGHEAP was reduced to 16M while the DDR2 was increased to 14M). While linking it keep saing: "run placemnt fails for object .far, size 0x756b28 (page 0). Available ranges:

DDR2 size:0x600000

that is the old (pre-edit) value (namely 6M). I looked at the all_x64PCfg.cmd and indeed the MEMORY {} looks OK (with DDR2 set as 14M)

what is the issue?

(I changed the name of the files slightly so I can attach them)1817.Link_Log.txt

also I add to the .tci file the following commands:

bios.setMemDataNoHeapSections(prog, bios.DDR2);

bios.setMemDataHeapSections(prog, bios.DDR2);

 

Thanks Ofer

  • Ofer,
    you have files link.cmd and package/cfg/bin/ti_platforms_evm3530/all_x64P.xdl on your linker command line. Can you check if any of them contains a MEMORY directive? The xdl file is generated and should not contain any MEMORY directives. What is link.cmd, and where is it coming from?

  • Sasha

    link.cmd is empty and all_x64P.xdl includes

    SECTIONS {

    xdc.meta: type = COPY

    }

     

    Ofer

  • Ofer,
    I really don't know of any reason why would linker ignore the MEMORY directive if it's the only one it sees. There is a generated map file in package/cfg/bin/ti_platforms_evm3530/all.x64P.map. Can you check the memory layout in it? If you compare it with the content of the MEMORY directive in the .cmd file, is DDR2 the only memory object that has a different size, or what you are seeing in the memory map is significantly different from the .cmd file?

    You can try to ask the question in the compiler forum. They might have a better idea how to debug this issue.