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.

TMS320DM6446: Linker command issue

Part Number: TMS320DM6446

Hi,

I am trying to compile a  project in code composer studio. I did not quite understand how link command works.

The file is as follows

-stack          0x00008000 /* Stack Size */
-heap           0x00008000 /* Heap Size */

MEMORY
{
  DRAM        : origin=0x80000000 length=0x0E000000 /* DDR RAM */
  DRAM_PROG   : origin=0x8E000000 length=0x01000000 /* DDR for program */
  AEMIF       : origin=0x02000000 length=0x01000000 /* AEMIF CS2 region */
}

SECTIONS
{
  .text       > DRAM_PROG
  .const      > DRAM_PROG
  .bss        > DRAM_PROG
  .stack      > DRAM_PROG
  .data       > DRAM_PROG
  .cinit      > DRAM_PROG
  .sysmem     > DRAM_PROG
  .cio        > DRAM_PROG
  .ddr_mem :
  {
    . += 0x0E000000;
  } run = DRAM,type=DSECT, RUN_START(EXTERNAL_RAM_START), RUN_END(EXTERNAL_RAM_END)
  .aemif_mem  > AEMIF,START(EMIFStart)
}

when I build the project compilation is successful but linking is throwing symbol not found for "EMIFStart".

I tried to search for the symbol EMIFStart in workspace but did not find in any libraries.

Kindly help

  • Update : When i build the project in Eabi mode it is built successfully. but when i changed the format to COFF , errors "symbol not found for "EMIFStart" are thrown.

    We have two projects one is getting built in "COFF" and another one in "Eabi" format

     I am not to able to change COFF to Eabi or Eabi to COFF.

    For COFF to Eabi error is rts32e.lib is in COFF format.

    For Eabi to COFF Some symbols sunch as EMIFStart,XTERNAL_RAM_START,XTERNAL_RAM_END are not found

    Kindly help us to integrate both.

  • Hi Sandeep,

      I'm extremely sorry for the late response as I was out of office last week. I will forward your questions to our compiler expert. 

  • Support for the older COFF ABI ended in the TI proprietary Arm compiler many years ago.  What version of the compiler do you use?  

    These lines from the linker command file ...

      .ddr_mem :
      {
        . += 0x0E000000;
      } run = DRAM,type=DSECT, RUN_START(EXTERNAL_RAM_START), RUN_END(EXTERNAL_RAM_END)
      .aemif_mem  > AEMIF,START(EMIFStart)

    ... are unusual.  What overall effect do you intend to implement with these lines?  There is probably a better way to do it.

    Thanks and regards,

    -George