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.

CC3200 binary max size

Other Parts Discussed in Thread: CC3200

Hi All:

       I am using CC3200 to do development, and the development tool is IAR. but when my binary size exceed 62KB, I saw IAR report below error:

Error[Lp011]: section placement failed
unable to allocate space for sections/blocks with a total estimated minimum size of 0x3c194 bytes (max align 0x400) in <[0x20004000-0x2003ffff]> (total uncommitted
space 0x3bc00).
Error while running Linker

     below are my icf file content, I want to know what's the max binary size I can build on CC3200, and what's the problem in my icf file, Thanks

     NOTE: in my project:  CC3200_ES_1_2_1=0; and macro "Flash" is not defined

//
// Define a memory region that covers the entire 4 GB addressible space of the
// processor.
//
define memory mem with size = 4G;

//
// Define a region for the on-chip flash.
//

define region FLASH = mem:[from 0x01000000 to 0x01010000];
if(CC3200_ES_1_2_1)
{
define region SRAM = mem:[from 0x20000000 to 0x20030000];
}
else
{
//define region SRAM = mem:[from 0x20004000 to 0x20030000];
define region SRAM = mem:[from 0x20004000 to 0x2003FFFF];
}

// Define a block for the heap. The size should be set to something other
// than zero if things in the C library that require the heap are used.
//
//2015-12-09 change to large the heap size = 170KB,original is 96KB
//define block HEAP with alignment = 8, size = 0x00018000 { };
define block HEAP with alignment = 8, size = 0x0002A800 { };

//
// Indicate that the read/write values should be initialized by copying from
// flash.
//

initialize by copy { readwrite };

//
// Indicate that the noinit values should be left alone. This includes the
// stack, which if initialized will destroy the return address from the
// initialization code, causing the processor to branch to zero and fault.
//
do not initialize { section .noinit };

//
// Define Flash=0 in Option->Linker->Config to place code in SRAM or
// Flash=1 to place code in flash
//
if (!isdefinedsymbol(Flash))
{
//
// Place the interrupt vectors at the start of SRAM.
//
place at start of SRAM { readonly section .intvec };


//
// Place the remainder of the read-only items into SRAM.
//
place in SRAM { readonly };


//
// Place all read/write items into SRAM.
//
place in SRAM { readwrite, block HEAP };

}
else
{

//
// Place the interrupt vectors at the start of flash.
//
place at start of FLASH { readonly section .intvec };


//
// Place the remainder of the read-only items into flash.
//
place in FLASH { readonly };


//
// Place all read/write items into SRAM.
//
place in SRAM { readwrite, block HEAP };
}

  • Hi,

    I use CCS not a IAR, but I think your problem is size of heap. You have set 170kB. But CC3200 have only 256kB RAM. And into this RAM you need fit code, static data RAM and your heap. (62kB + 170kB +???kB => out of memory).


    Jan