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.

Code Size too big to fit in the available memory

Hi,

I am using ccs v6 and dsk6713 as hardware. I have attached snapshots of the errors and memory usage. Kindly help me as i am facing insufficient memory issues.

 7607.query.docx

  • Please move your code sections to SDRAM (external memory, i.e EMIF) rather than using internal memory (IRAM).
  • hello,

    thanks for replying, as i am new to ccs so don't know how to transfer my code to SDRAM. Please help me.. Thanks for replying once again 

  • Can you please attach your linker command file (*.cmd) ?
    Will change it for you.
  • /****************************************************************************/
    /* C6713.cmd */
    /* Copyright (c) 2010 Texas Instruments Incorporated */
    /* Author: Rafael de Souza */
    /* */
    /* Description: This file is a sample linker command file that can be */
    /* used for linking programs built with the C compiler and */
    /* running the resulting .out file on an TMS320C6713 */
    /* device. Use it as a guideline. You will want to */
    /* change the memory layout to match your specific C6xxx */
    /* target system. You may want to change the allocation */
    /* scheme according to the size of your program. */
    /* */
    /****************************************************************************/

    MEMORY
    {
    IRAM o = 0x00000000 l = 0x00030000 /* 192kB - Internal RAM */
    L2RAM o = 0x00030000 l = 0x00010000 /* 64kB - Internal RAM/CACHE */
    EMIFCE0 o = 0x80000000 l = 0x10000000 /* SDRAM in 6713 DSK */
    EMIFCE1 o = 0x90000000 l = 0x10000000 /* Flash/CPLD in 6713 DSK */
    EMIFCE2 o = 0xA0000000 l = 0x10000000 /* Daughterboard in 6713 DSK */
    EMIFCE3 o = 0xB0000000 l = 0x10000000 /* Daughterboard in 6713 DSK */
    }

    SECTIONS
    {
    .text > IRAM
    .stack > IRAM
    .bss > IRAM
    .cio > IRAM
    .const > IRAM
    .data > IRAM
    .switch > IRAM
    .sysmem > IRAM
    .far > IRAM
    .args > IRAM
    .ppinfo > IRAM
    .ppdata > IRAM

    /* COFF sections */
    .pinit > IRAM
    .cinit > IRAM

    /* EABI sections */
    .binit > IRAM
    .init_array > IRAM
    .neardata > IRAM
    .fardata > IRAM
    .rodata > IRAM
    .c6xabi.exidx > IRAM
    .c6xabi.extab > IRAM
    }
  • Manoj,

    You can look at your .map file to see what the sizes are for all the sections. Put some of them into SDRAM by changing > IRAM to > EMIFCE0.

    Regards,
    RandyP
  • Thanks for replying randy. Most of my code was in .text, i placed it into EMIFCE0 (SDRAM) , is there anything else that i need to put in SDRAM???
  • SDRAM is slower than IRAM but will get cached by the L1 and L2 caches to help improve speed.

    If you need general help in understanding how to use the C6713, please go to TI.com and search for "c6713 workshop" (no quotes) to find an archived DSP Integration Workshop. It has materials that discuss memory sections and the tools and will help you move forward quickly.

    You can look at your .map file to see what the sizes are for all the sections.

    If you are not comfortable analyzing your project to see what could go where, you can move most everything to SDRAM. The interrupt vector table has to be in internal memory at address 0, as I recall, so there is a special trick for putting that there. You may find out how to do that from the workshop or from examples provided for the DSK6713.

    Regards,
    RandyP