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.

.ebss section cannot fit :-!

Hi everybody :-)

I tried to insert 2 arrays of _iq elements in my source code, and each one of these arrays is 2000 elements long...since the compiler considers them as part of .ebss section, they cannot fit in M0SARAM (the dafault section for .ebss, in the cmd file), I tried to move the whole .ebss section from M0SARAM to H0SARAM (which is much larger), by substituting the following line:

.ebss             : > M0SARAM,           PAGE = 1

with the new line

.ebss             : > H0SARAM,           PAGE = 0

The build of the project was successful, but the program couldn't start correctly in my board (it halted in asm('  ESTOP') in USER11_ISR interrupt function, defined in DSP280x_DefaultIsr.c...).

Probably the .ebss section must stay where it is, in M0SARAM, as stated in the original .cmd file...but in this way there is 1kW limit to the size of my variables...

Is there a trick to go around the problem? Or maybe I am doing something wrong...

thankU

samuele

  • samuele,

    There is nothing wrong with moving .ebss from one RAM block to another.  However, you want to make sure you do not start mixing your program and data RAM.  In your code above, you will notice that when you moved the location of .ebss, you moved it from PAGE = 1 to PAGE = 0.

    In the MEMORY section in the CMD file, you want to make sure you move H0SARAM to be defined in PAGE = 1.  You can do this by copy-pasting the line from one page to the other.  Next, in the SECTIONS section in the CMD file, you want to then assign .ebss to H0SARAM but keep it on PAGE = 1.

    Regards,
    Daniel

  • Thank you Daniel!...you are right, I should have noticed that!...thank you again!

    samuele