The Memory Map results show L1 data being used up...no matter what I do

I ran two nearly identical projects through CCES 2.7.0.0. The only difference was a LOT of memory declarations had "#pragma section ("L2_sram")" before them.  

/* Locals */
#pragma section ("L2_sram")
static bool bExit = FALSE;

The memory map of the project using more L1 memory looked like this:

Please notice that the "MEM_L2_SRAM" "Used words" is 0x10f34.

The memory map of the project using more L2 memory looked like this:

Please notice that the "MEM_L2_SRAM" "Used words" is now 0x120e0, but the values highlighted is green never changes for the L1 data usage.

Do you have any idea why all of the L1 data memory is used, no matter what I do?  Am I looking at the wrong location/data in the memory map XML file?

Alan

  • Hi,

    RESERVE_EXPAND() Command is used in MEM_L1_DATA_A and MEM_L1_DATA_B memory section for heap and stack allocation.

    RESERVE_EXPAND allocate the space left after input sections mapping into stack and heap.

    For an example, if you are placing your heap in 16K L1_Data_a section. Your application has 2K of static/global data to go in this section and you want an 8K heap. The linker will reserve 8K for your heap, then place 2K of static/global data. The RESERVE_EXPAND will then detect there is more usable space in L1_Data_a and expand the size of the heap to 14K.

    Regards,
    Santha kumari.K