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.

.far section help

Other Parts Discussed in Thread: CODECOMPOSER

Hey all!

    I am currently working on the following system:

DaVinci DM6446 (on a custom board for commercial purposes)
CodeComposer Studio 3.3
Windows XP SP2 32bit
Ashling Opella xds560 emulator``

    I am stuck with the following problem.

    I have been working on an SDR system. It has a module that is responsible for MELP voice compression. In order for the system to work in a streamlined fashion, I need to incur optimizations and a certain memory allocation.

    The MELP code works perfectly in standalone operation. It is when I integrate it into the rest of my code that I start facing the problem that a part of one of my obj files is assigned to a .far section. Due to timing contraints I need this .far section to be in the internal RAM (IRAM). After the assignment of this specific obj file, my .far section exceeds the capacity of the IRAM.

    What I want to know is what the .far section contains and how can I manipulate the .cmd file to allocate this specific part in another memory section

  • Please read this wiki article.  Note that any global data defined as far is placed in the .far section.

    Some sections (such as .bss or .cinit) cannot be split up when allocated to system memory.  However, it is OK to split up the .far section.  Your linker command file probably has a line like this in it right now ...

    .far > IRAM

    That puts the all of the .far section into IRAM.  But only one part of the .far is critical to performance.  The rest of .far can be placed elsewhere.  So, change it to something like this ...

    .far_fast { critical_performance_code.obj(.far) } > IRAM
    .far > SLOW_MEMORY

    The first line creates an output section named .far_fast.  It has one input .far section it; the one from the file critical_performance.obj.   The second line allocates all remaining parts of .far to slower memory.

    Thanks and regards,

    -George